Настраиваем 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, кстати при просмотре видео тормозов не возникало), единственный нюанс что у меня используется украинский брокер туннеля и яндекс с гуглом определяют мое местонахождение в Киеве, но думаю поменять это у Вас проблем не возникнет.

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

ссылка на оригинал статьи http://habrahabr.ru/post/208568/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *