IPv6 от МТС в OpenWRT 18.06.2 (памятка)

Jun 17, 2019 00:57


Не секрет, что при подключении через 4G (LTE) МТС умеет выдавать IPv6-адреса и даже (страшно сказать) вполне себе маршрутизирует их. Правда, выдает он сиё богатство блоками длиной "/64", что делает применение оных в роутерах несколько проблематичным. Ибо для штатной делегации части адресов на устройства за роутером встроенными средствами протокола/ядра (SLAAC) требуется иметь на внешнем интерфейсе блок длиной не меньше "/60". В противном случае приходится городить костыли в виде NDP-Proxy.

В OpenWRT такие костыли присутствуют "из коробки", но для их активации необходимо засунуть свои грязные ручки непосредственно в конфиги. Потому что через веб-морду сделать соответствующие настройки в случае, когда внешний аплинк не есть Ethernet, не удастся. В моём примере я использую LTE-модем имени Sierra Wireless в режиме Direct IP, в котором он прикидывается сетевой картой, но несколько своеобразной.

Итак, конфиг "/etc/config/dhcp".

Проверить, что в секции "lan" помимо прочего присутствуют строки:
config dhcp 'lan'
option dhcpv6 'relay'
option ndp 'relay'
option ra 'relay'

Эти параметры можно настроить и через веб-морду.

А вот секцию "wan6" целиком нужно уже дописывать только руками:
config dhcp wan6
option dhcpv6 relay
option ra relay
option ndp relay
option master 1

В финале не забыть сделать "/etc/init.d/network restart" на роутере, передёрнуть интерфейсы на клиентах и можно работать через IPv6.

Но! Там есть ещё две засады. Первая. При "холодном" старте роутера демон "odhcp6c" успевает стартовать раньше, чем модем поднимет линк. Соответственно, его надо перезапускать "как только, так сразу". Можно это делать, например, вот таким скриптом в "/etc/hotplug.d/iface/".
#!/bin/sh
[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan6" ] && {
logger "Trying to restart ODHCPd"
/etc/init.d/odhcpd restart
}
exit 0
Со второй засадой я пока не разобрался. Если модем слишком долго "стоит без дела", то при попытке заслать в него ip6-пакет ядро ругается словами "connect: Permission denied". Перезапуск odhcpd, опять же, помогает. Но по какому событию его лучше осуществлять, непонятно. Что интересно, IP6-адрес на интерфейсе после перезапуска не меняется. Но пакеты начинают ходить. Если у кого есть мысли на эту тему, добро пожаловать в комменты.

P.S. Ковырялся исключительно из спортивного интереса. Реальной осмысленной цели в использовании именно IPv6 на сегодняшний день у меня пока нет. Хотя если мой проводной провайдер предложил бы, обязательно ввязался бы в тестирование. Но ему это нафиг не впёрлось.

openwrt, hints, сети, it, интернетное

Previous post Next post
Up