That's all fine and dandy and I do realize the need for an extended IP address pool, but if it's starting to affect performance I say fuck IPv6.
Sadly, modern GNU/Linux systems prefer IPv6 addresses over IPv4 when being presented with a choice. I honestly don't see why the fuck IPv6 should be preferred right now as it's bound to be a lot slower on a lot of networks, for the time being at least.
Case in point: Debian's apt-get update over IPv4 and IPv6:
root@box:~# host security.debian.org
security.debian.org has address 195.20.242.89
security.debian.org has address 212.211.132.32
security.debian.org has address 212.211.132.250
security.debian.org has IPv6 address 2001:a78:5:1:216:35ff:fe7f:6ceb
security.debian.org has IPv6 address 2001:8d8:580:400:6564:a62:0:2
security.debian.org has IPv6 address 2001:a78:5:0:216:35ff:fe7f:be4f
security.debian.org mail is handled by 10 chopin.debian.org.
IPv6:
root@box:~# time apt-get update
[...]
real 1m18.222s
user 0m7.472s
sys 0m6.948s
IPv4:root@box:~# time apt-get update
[...]
real 0m13.481s
user 0m7.728s
sys 0m5.332s
We could just add static ipv4 lines in /etc/hosts, but that's kinda defeating the purpose as we don't want to disable IPv6 altogether.
So, how do we tell the system to prefer IPv4 addresses over IPv6?
It's rather simple, actually: we need to have a look at getaddrinfo(3)'s configuration file; /etc/gai.conf.Locate this line and uncomment it:
#precedence ::ffff:0:0/96 100
There ya go, IPv4 is preferred now.
This works as that's the special address range to help in the transition from 4 to 6; every IPv4 address can be written as an IPv6 one using that form.
(See http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses for more info on that one.)
Anyways, the format is ::ffff:0:0/96 which means that the ipv4 ip address 192.168.18.234/32 will be written as 0:0:ffff:192.168.18.234/128 and will match that line in gai.conf.
No comments:
Post a Comment