Recently I’ve been having issues with Linode Manager repeatedly logging me out every few requests. I figured this was related to ipv4/ipv6 switching, because sometimes the logout would also trigger a new IP whitelist request, which would sometimes be ipv4, and sometimes be ipv6.
After a little googling, I found this twitter conversation:
Turns out I’m not the only one experiencing this issue. So I decided to set up
dnsmasq
as one of the replies mentioned, and force Linode to a single ipv4
address.
Note that these instructions are for OSX (and were tested on Yosemite, 10.10).
First, I installed dnsmasq
via Homebrew:
brew install dnsmasq
Then, I followed the homebrew instructions to install dnsmasq
as a service to
start on startup:
sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons
sudo chown root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Now, before we actually start the service, let’s get our resolver in place.
OSX allows us to define resolve data for specific addresses using files in
/etc/resolver/
. Here is my /etc/resolver/manager.linode.com
:
nameserver 127.0.0.1
Basically, we’re telling the operating system to use our local DNS server
(provided by dnsmasq
) for lookups for manager.linode.com
.
We also need to configure dnsmasq
to force manager.linode.com
to a specific
address. First, we need an IPv4 address to work with:
# dscacheutil -q host -a name manager.linode.com
name: manager.linode.com
ipv6_address: 2600:3c00::14
ipv6_address: 2600:3c00::34
ipv6_address: 2600:3c00::24
name: manager.linode.com
ip_address: 69.164.200.204
ip_address: 72.14.191.204
ip_address: 72.14.180.204
Then, copy the example configuration into place:
cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
and edit /usr/local/etc/dnsmasq.conf
, adding this line:
address=/manager.linode.com/72.14.180.204
Now, start dnsmasq
:
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Assuming you did everything right, you should only see one address when you query again:
dscacheutil -q host -a name manager.linode.com
name: manager.linode.com
ip_address: 72.14.180.204
I haven’t done much on Linode since implementing this fix, but haven’t had it log me out erroneously once yet.
If you have improvements or run into issues, please leave a comment below!