Тут как-то спрашивали в комментариях в моем унылом бложике про мою настройку OpenWRT для раздачи IPv6 на локальную сеть. Не прошло и пары месяцев, как я все же сподобился набросать статейку про это. Итак, поехали. Спойлер: На самом деле все намного проще, чем кажется.
IPv4 адреса заканчиваются, IPv6 пока уже использовать во всю, вот только к большинству отечественных провайдеров оного пока не завезли. Да и в прицнипе, из-за того, что в некоторых местах IPv6 радикально отличается от IPv4, аргумент многих админов в пользу того, чтобы не настраивать IPv6 — на наш век пока адресов хватит. Что касается меня, то я решил давно сделать минимальную настройку IPv6, частично чтобы хотя бы иметь примерное понимание, как эта штука работает, частично чтобы была возможность, если потребуется, тестить свои приложения.
Говорят, где-то есть провайдеры, которые сразу раздают IPv6 вместе с IPv4. Мой провайдер до этого не дорос, потому в наличии на роутере у меня только мой белый IPv4 адрес, по которому и крутится этот бложик и еще много всего остального для личных нужд. Оный я получаю по DHCP на WAN интерфейсе. Пляски с бубном и настройка PPTP/PPPoE осталась в далеком прошлом, как и локальная сеть с варезом и диски по 75р около метро. Разумеется, сам блог я держу не на роутере, а на сервере внутри локальной сети, куда траффик пробрасывается через nginx и проброс портов.
Как водится, особенно большого времени на настройку, не было, потому я решил пойти по самому простому пути. Так как ждать, пока провайдер расчехлится на полноценный IPv6 — проще состариться, то я решил использовать один из переходных механизмов. Если по-простому, то выбор не велик: либо туннель через miredo/teredo, либо туннель через 6-to-4. Я решил остановиться на 6to4 из-за простоты настройки (никаких настроек) и того факта, что мой диапазон IPv6 адресов будет жестко привязан к моему статическому IPv4 адресу и меняться не будет.
В LUCI, когда мы только только установили OpenWRT на роутер, у нас помимо WAN, LAN, есть еще интерфейс WAN6 с примерно такими вот настройками:
Его-то мы и будем сейчас настраивать. В моем случае это выглядело как-то так:
Если до этого настройки dhcp для lan не трогались, то все после этого должно «просто заработать» и клиенты в локальной сети получат IPv6 адреса. Но тут будет одна небольшая проблема — все компьютеры локальной сети будут видны из интернета, что на этом этапе должно резко включить паранойу. Именно поэтому я добавил этот интерфейс в отдельную firewall зону:
Для этой зоны в настройках firewall я прописал вот такой конфиг:
Для проверки можно использовать либо VPS, у которой есть IPv6 адрес, либо онлайн инструменты вроде этого. После правильной настройки firewall’а IPv6 адрес роутера будет доступен из интернета, а вот все адреса внутри сети — нет. При этом с самих компьютеров сети будет доступ к IPv6 сайтам. Собственно, вот и все, если в двух словах.
Что касается web-сервера, то я предпочел оставить проброс http трафика через роутер, так как там крутиться nginx, пробрасывающий в режиме обратного прокси трафик на несколько виртуальных серверов внутри моей домашней сети. Надо только было прописать IPv6 адрес роутера в DNS и все заработало.
Отдельные приключения были с почтовиком, так как для корректной работы почты нужна обратная PTR запись в DNS. Для IPv4 мне ее сделал по звонку в саппорт провайдер, за что ему очень большое спасибо. А вот с IPv6 такой трюк не пройдет, и, судя по мануалам в интернете, это надо поднимать и настраивать BIND, с которым потом еще долго танцеть сеншуал бачату, прежде чем все это хозяйство заработает. Пока же я отрубил ipv6 как протокол в почтовике до лучших времен.
P.S. Для брутальных мужиков с красными глазами, кто ненавидит графический интерфейс и предпочитает только текстовые конфиги, консоль (и хардкор), вот куски конфигов OpenWRT и места, куда прописать эти заклинания, чтобы все заработало:
/etc/config/network
config interface 'wan6'
option proto '6to4'
/etc/config/firewall:
config zone
option name 'IPV6'
option input 'ACCEPT'
option forward 'REJECT'
option output 'ACCEPT'
option network 'wan6'
config forwarding
option dest 'IPV6'
option src 'lan'
Спасибо!
Но я так понимаю, что это будет работать при наличии статического белого ип-адреса, т.к. IPv6-адрес формируется из IPv4-адреса?
В случае белого динамического IPv4-адреса синхронно с ним будет меняться и IPv6-адрес с выделенной подсетью?
PS: Про PTR-запись для почтовика: https://6to4.nro.net/
> Но я так понимаю, что это будет работать при наличии статического белого ип-адреса, т.к. IPv6-адрес формируется из IPv4-адреса? В случае белого динамического IPv4-адреса синхронно с ним будет меняться и IPv6-адрес с выделенной подсетью?
Да, именно так. Либо искать брокера, который даст статический IPv6. Но мне такие не попадались (хотя плотно я и не искал)
> PS: Про PTR-запись для почтовика: https://6to4.nro.net/
Да, спасибо, как дойдут руки попробую все же настроить.
> Либо искать брокера, который даст статический IPv6.
ipv6.he.net (он-же tunnelbroker.net)
ipv6.ip4market.ru (он-же tunnelbroker.ru)