...

четверг, 9 января 2014 г.

[Из песочницы] Настраиваем 6to4 на роутерах Zyxel Keenetic

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

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

Для этого у нас есть интернет центр Zyxel Keenetic Ultra с последней версией операционной системы NDMS:v2.02, которая уже поддерживает Dual Stack и IPv6 туннельный брокер. В интернете существует множество туннельных брокеров как платные, так и бесплатные, список приводить не буду что бы не сочли за рекламу.

Кому интересно как это настраивается добро пожаловать под кат


В KB Zyxel есть Инструкция для веб интерфейса роутера по настройке 6to4 туннеля, но по ней IPv6 через Wi-Fi у меня не заработал (а именно раздача IPv6 на клиента), через LAN порты я этого не проверял. По причине «бедности» этого самого web интерфейса настройку роутера мы будем проводить через cli.


Итак логинимся по telnet на наш роутер и авторизуемся с теме же учетными данными что и в web конфигураторе роутера. Если ничего не меняли в учетке (tag cli, tag http) то должно пустить.

Попадаем в меню конфигурации и начинаем нашу настройку

В начале идем в конфигурацию параметров системы и разрешаем передачу трафика по протоколу ipv6



(config)> <b>system set net.ipv6.conf.all.forwarding 1</b>




Далее создаем и настраиваем наш туннельный интерфейс

(config)> interface TunnelSixInFour0
(config-if)> description 6to4_tunnel - описание туннеля
(config-if)> ip remote xxx.xxx.xxx.xxx - ipv4 адрес сервера с которым устанавливаем туннель
(config-if)> ipv6 address xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx - ipv6 адрес который выдал туннельный брокер, обычно идет с 64 префиксом, но здесь его указывать не нужно
(config-if)> ipv6 prefix xxxx:xxxx:xxxx::/xx - ipv6 префикс который выдал туннельный брокер и который можно выделить вашим клиентам, обычно /48
(config-if)> ipv6 name-servers auto - автоматическое получение IPv6 адреса DNS-сервера который тоже обычно есть у брокера
(config-if)> ipv6 force-default - маршрут по умолчанию через этот интерфейс выглядит как (::/0 | :: | TunnelSixInFour0)
(config-if)> up - включаем интерфейс
(config-if)> exit - выходим из контекста конфигурации интерфейса.




Вот собственно этот конфиг и делает то, что указано в инструкции в KB, но этого не достаточно для работы IPv6 на клиентах.

Теперь нам нужно повесить IPv6 адрес на интерфейсе который звучит как Home (Это бриджовый интерфейс который совмещает в себе правила на Wi-Fi сети и Lan).

делается это следующим образом

(config)> interface Bridge0
(config-if)> ipv6 address auto
(config-if)> exit




кому интересно вот полный конфиг интерфейса

!
interface Bridge0
name Home
description "Home network (Wired and wireless hosts)"
inherit Switch0/VLAN1
include AccessPoint
include AccessPoint_5G
security-level private
ip address xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
ip dhcp client dns-routes
ip dhcp client name-servers
igmp downstream
ipv6 address auto
up
!




Остались последние штрихи — создание подсети, которую мы получили префиксом от провайдера и прикрепление ее к интерфейсу Bridge0

(config)> ipv6 subnet 6to4_prefix - создаем подсеть
(config-subnet)> bind Home - вешаем ее на наш бриджовый интерфейс
(config-subnet)> number 0 - нумерация по порядку (если не напишете, создастся автоматически)
(config-subnet)> mode slaac - включение slaac, анонс сети который работает через ICMPv6-RA
(config-subnet)> exit




можем добавить сюда еще IPv6 DNS-сервера

(config)> ipv6 name-server xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx




Посмотрим поднялся ли наш интерфейс

(config)> show interface TunnelSixInFour0
index: 0
type: TunnelSixInFour
description: 6to4_tunnel
state: up
link: up
connected: yes
mtu: 1480
tx-queue: 0
Core::Configurator: done.




Посмотрим ходит ли через него трафик

(config)> show interface TunnelSixInFour0 stat
rxpackets: 6322
rxbytes: 751914
rxerrors: 0
rxdropped: 0
txpackets: 29599
txbytes: 1364490
txerrors: 2
txdropped: 0
Core::Configurator: done.




Примерно такую картину вы можете увидеть если все хорошо.

Также в веб интерфейсе вкладке Системный монитор -> IPv6 должны появится:

IPv6 адрес оконечника вашего туннеля, висящий на интерфейсе TunnelSixInFour0, с действительностью infinite

IPv6 адреса ваших клиентских устройств

Префикс полученный от брокера

Маршрут в интернет

::/0 с шлюзом :: и интерфейсом TunnelSixInFour0

Маршруты вида

xxxx:xxxx:xxxx::/64 с шлюзом :: и интерфейсом Home к вашим клиентским компьютерам

Сохраним конфигурацию через веб интерфейс или cli

(config)> system config-save




Вот собственно настройка завершена и если на клиентском компьютере есть поддержка ipv6 протокола то

ping -6 ipv6.google.com будет удачным.

Еще конечно можно было бы закрутить гайки ACL, но на данном роутере IPv6 ACL не поддерживаются.

UPD. Уже неделю туннель работает нормально, обрывов не замечено, процессор роутера в загрузке 6%, память 7%, входящего трафика прошло порядка 7 гб (думаю что это Youtube, кстати при просмотре видео тормозов не возникало), единственный нюанс что у меня используется украинский брокер туннеля и яндекс с гуглом определяют мое местонахождение в Киеве, но думаю поменять это у Вас проблем не возникнет.


На этом все, строго не судите первая статья на хабре.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


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

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