03.08.2011

Ubuntu server 11.04 IPv6

Конфигурируем этот сервер, интерфейс eth0.
Практически все делается через утилиту ip.

Исходное состояние:

user@u-server:/home$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr d0:27:88:3e:20:65
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::d227:88ff:fe3e:2065/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208114 errors:0 dropped:280 overruns:0 frame:0
TX packets:11549 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13043217 (13.0 MB) TX bytes:2217923 (2.2 MB)
Interrupt:44 Base address:0x6000

— то есть link-local адрес уже присутствует.

Добавляем IPv6-адрес
sudo ip -6 addr add 2000:0db8:0:a::5/64 dev eth0

Проверяем через ту же ip:

user@u-server:/home$ sudo ip -6 addr show
1: lo: mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: eth0: mtu 1500 qlen 1000
inet6 2001:0db8:0:a::5/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::d227:88ff:fe3e:2065/64 scope link
valid_lft forever preferred_lft forever

— то есть адрес появился.

Теперь добавляем адрес шлюза 2001:0db8:0:a::100

Исходное состояние:
user@u-server:/home$ sudo ip -6 route show
2001:0db8:0:a::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256

Добавляем:

sudo ip -6 route add default via 2001:0db8:0:a::100

И сразу же проверяем:

user@u-server:/home$ sudo ip -6 route show
2001:0db8:0:a::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2001:0db8:0:a::100 dev eth0 metric 1024

Проверяем дальше:

usr@u-server:/home$ ping6 ipv6.google.com
PING ipv6.google.com(bw-in-x6a.1e100.net) 56 data bytes
64 bytes from bw-in-x6a.1e100.net: icmp_seq=1 ttl=57 time=49.9 ms
64 bytes from bw-in-x6a.1e100.net: icmp_seq=2 ttl=57 time=44.4 ms
64 bytes from bw-in-x6a.1e100.net: icmp_seq=3 ttl=57 time=44.4 ms
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3004ms
rtt min/avg/max/mdev = 44.401/46.272/49.984/2.630 ms

Ура, работает!
Далее проверяем через алфавитно-цифровой браузер w3m с использованием специально подготовленной странички:
(примечание: в BSD есть такой же, называется lynx)

user@u-server:/home$ w3m http://ip.v6net.ru/lynx

Ура, и здесь работает!

Вносим изменения в конфигурационный файл, чтобы при перезагрузке все заработало:

Редактируем /etc/network/interfaces и добавляем:

iface eth0 inet6 static
pre-up modprobe ipv6
address 2001:0ви8:0:a::5
netmask 64
gateway 2001:0ви8:0:a::100

При перезагрузке прошло сообщение, что не видно роутера, то есть сервер не получил RA. Но в данной конфигурации это и не нужно, так как адрес шлюза прописан статически. Включил на роутере RA — и перезагрузка прошла чисто.


  *** Via IPv4 ***