10 нояб. 2009 г.

Vyatta и IPv6

Адреса IPv4 уже в обозримом будущем закончатся, поэтому мне весьма закономерно захотелось посмотреть на новую версию протокола, IPv6. К сожалению, сейчас почти никто из провайдеров не предоставляет его напрямую, однако способ его получить все таки есть. Ряд провайдеров предоставлют доступ поверх существующего IPv4-соединения через туннель.

В качестве такого провайдера мной был выбран Hurricane Electric (he.net). Для получения доступа достаточно зарегистрироваться на их сайте tunnelbroket.net. В комплект кроме туннеля входят также маршрутизируемая подсеть (/64 или /48) и возможность указать сервера имен для обратных зон.

При создании туннеля можно посмотреть примеры конфигураций для многих систем (Linux, Windows, Cisco IOS, JunOS и еще нескольких), но вот для Vyatta там ничего не было.

Настраиваем Vyatta для работы с Hurricane Electric

Тем не менее, ничего сложного настройка собой не представляет. Для инкапсуляции IPv6 в IPv4 у них применяется протокол SIT (Simple Internet Transition), который Vyatta поддерживает. Набор команд будет примерно таким:

configure                            # Входим в режим конфигурации
edit interfaces tunnel tun0          # Создаем новый интерфейс туннеля
set encapsulation sit                # Указываем протокол инкапсуляции SIT
set local-ip <IPv4-адрес>            # Адрес интерфейса, который смотрит в интернет
set remote-ip <IPv4-адрес>           # Адрес сервера доступа
set address <IPv6-адрес>/64          # Адрес интерфейса туннеля
set description "IPv6 tunnel"        # Описание, не является обязательным
exit
# Теперь укажем маршрут по умолчанию. ::/0 это аналог 0.0.0.0/0 в IPv4
set protocols static interface-route6 ::/0 next-hop-interface tun0
commit                               # Применяем изменения

Адрес сервера доступа и адрес нашей подсети скажут при регистрации. Возможно, непривычная запись «::» требует пояснений. Таким способом в IPv6 можно обозначить две или более группы нулей. Например, 2001:0470:aaaa:0bbb:0000:0000:0000:0001 может быть сокращен до 2001:470:aaaa:bbb::1. Как видно, незначащие нули тоже можно не писать. Посмотрим на получившуюся конфигурацию:

dmbaturin@rekki# show interfaces tunnel tun0 
 address 2001:470:xxxx:xxx::2/64
 description "Hurricane Electric IPv6 tunnel"
 encapsulation sit
 local-ip x.x.x.x
 remote-ip y.y.y.y
dmbaturin@rekki# show protocols static interface-route6 
 ::/0 {
     next-hop-interface tun0 {
     }
 }

Теперь осталось проверить, работает ли наше соединение. Для диагностики можно использовать аналоги привычных ping и traceroute для IPv6. Они называются ping6 и traceroute6 соответственно. Для проверки доступности с другой стороны можно воспользоваться looking glass провайдера, или любым другим аналогичным общедоступным сервером.

dmbaturin@rekki# ping6 he.net
PING he.net(he.net) 56 data bytes
64 bytes from he.net: icmp_seq=1 ttl=56 time=281 ms
64 bytes from he.net: icmp_seq=2 ttl=56 time=283 ms

dmbaturin@rekki# traceroute6 he.net
traceroute to he.net (2001:470:0:76::2), 30 hops max, 40 byte packets
 1  xxxxxx-1.tunnel.tserv6.fra1.ipv6.he.net (2001:470:xxxx:xxx::1)  144.294 ms  147.316 ms  151.028 ms
 2  gige-g2-4.core1.fra1.he.net (2001:470:0:69::1)  151.060 ms  151.086 ms  151.107 ms
 3  10gigabitethernet1-4.core1.ams1.he.net (2001:470:0:47::1)  159.030 ms  159.062 ms  159.107 ms
 4  10gigabitethernet1-4.core1.lon1.he.net (2001:470:0:3f::1)  167.319 ms  167.350 ms  167.357 ms
 5  2001:470:0:128::1 (2001:470:0:128::1)  238.403 ms 10gigabitethernet2-3.core1.nyc4.he.net (2001:470:0:3e::1)  238.100 ms  238.132 ms

Как видно, соединение проходит. Не желаете тоже прикоснуться к будущему Интернета?

Послесловие

После моего письма Hurricane Electric включили этот пример в свой генератор конфигураций и в тему на форуме. Как побочный эффект, может быть теперь больше людей узнают о Vyatta.

Комментариев нет:

Отправить комментарий