image
Речь пойдёт о настройке работы сервера по IPv6.

Настройку мы будем рассматривать на примере CentOS 5.10.

  • 1. Для начала нужно убедиться, что у вас есть /etc/sysconfig/network-scripts/network-functions-ipv6 сценарий.
    [root@host ~]# ls -l /etc/sysconfig/network-scripts/network-functions-ipv6
    -rw-r--r-- 1 root root 39863 May 14  2013 /etc/sysconfig/network-scripts/network-functions-ipv6
    [root@host ~]#
    

    Если всё в порядке, проверяем загружается ли модуль net-pf-10
    [root@host ~]# modprobe -c | grep net-pf-10
    alias net-pf-10-proto-0-type-6 dccp_ipv6
    alias net-pf-10-proto-33-type-6 dccp_ipv6
    alias net-pf-10 ipv6
    [root@host ~]#
    

    Если система не обнаружит его, вы получите следующий вывод:
    [root@host ~]# modprobe -c | grep net-pf-10
    alias net-pf-10 off
    [root@host ~]#
    

    Для его включения необходимо отредактировать /etc/sysconfig/network. Как именно — описано в след. пункте.
  • 2. Добавляем или изменяем в /etc/sysconfig/network строчку на NETWORKING_IPV6=yes. Добавляем шлюз по умолчанию IPV6_DEFAULTGW=«IPv6_шлюз»
    Далее открываем /etc/sysconfig/network-scripts/ifcfg-eth0 и вставляем две простые строчки IPV6INIT=yes и IPV6ADDR=«IPv6/48(маска)». Если у вас несколько IPv6, то можно добавить IPV6ADDR_SECONDARIES=«IPv6_1/48 IPv6_2/128 IPv6_3»
    И делаем перезагрузку сети, такой командой /etc/init.d/network restart
  • 3. Теперь ваш сервер должен уметь «общаться» по IPv6, проверим это следующим способом:
    [root@host ~]# ping6 ipv6.google.com
    PING ipv6.google.com(2a00:1450:4010:c02::8a) 56 data bytes
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=0 ttl=55 time=53.4 ms
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=1 ttl=55 time=49.9 ms
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=2 ttl=55 time=52.7 ms
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=3 ttl=55 time=53.1 ms
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=4 ttl=55 time=49.8 ms
    64 bytes from 2a00:1450:4010:c02::8a: icmp_seq=5 ttl=55 time=52.7 ms
    
    --- ipv6.google.com ping statistics ---
    28 packets transmitted, 28 received, 0% packet loss, time 27006ms
    rtt min/avg/max/mdev = 49.824/51.906/53.422/1.319 ms, pipe 2
    [root@host ~]#
    


Первая часть наших работ закончена. Дело осталось за малым, а точнее научить «слушать» nginx и httpd IPv6.

  • 1. По умолчанию IPv6 файрвол закрывает для прослушивания IPv6 на nginx или httpd, в зависимости от того, что у вас на фронтенде.
    Для открытия 80 и 443 портов, нужно в /etc/sysconfig/ip6tables
    Добавить:
    -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT

    Если перед этими строками стоит
    -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited, то её необходимо удалить.
    Далее перезагружаем сервис service ip6tables restart
  • 2.Переходим к конфигурированию хостов nginx и httpd.
    У меня nginx висит на 80 порту, а httpd на 81
    Конфиг nginx должен быть следующего вида:
    server {
    		server_name домен.ру;
    		listen IPv4;
    		listen [IPv6];
                    
                   ..................
    }
    

    Причём IPv6 указывается в [ ]

    Конфиг httpd следующий:
    <VirtualHost IPv4:81 [IPv6]:81>
    	ServerName домен.ру
    
           ......................
    </VirtualHost>
    


На этом наши настройки закончены, проделав эти несложные манипуляции, вы продвигаете свой сервер в будущее, дерзайте, так как будущее интернета за IPv6.

Использованы материалы:
1. www.allthingsdigital.nl/2011/02/27/configuring-red-hat-enterprise-linux-5-or-centos-5-for-ipv6
2. knowledgelayer.softlayer.com/procedure/add-ipv6-redhat-and-centos-systems
3. habrahabr.ru/post/94819