IPv6 + PPPoE + Mikrotik
С сегодняшнего дня у моего провайдера интернетов внедрили IPv6, работающий на базе Dual Stack PPPoE, соответственно поднимать дополнительное соединение нет смысла. Ниже описан небольшой гайд для настройки Микротика, так как простого гайда я толком не нашёл. В самом конце есть TL:DR для тех, кому не хочется читать стену текста, а сделать надо.
Для начала нужно включить поддержку IPv6 в микротике, для этого подключаемся к нему через Winbox, и открываем меню Systems -> Packages. В списке пакетов будет виден ipv6, но он по умолчанию выключен. Для того чтобы включить его — выбираем пакет, нажимаем на Enable и перезагружаем микротик.
Теперь собственно к настройке. Сначала настроим DHCPv6 клиент. Снова подключаемся через Winbox. Открываем меню IPv6, которое появится под привычным меню IP, выбираем DHCP Client и нажимаем на +. Далее указываем следующие настройки:
1. Interface — то, что смотрит у нас в интернет, в моем случае это pppoe-клиент
2. Request — выбираем prefix
3. Pool Name — пишем что-то понятное для себя
4. Pool Prefix Length — 64
5. Устанавливаем галочки Use Peer DNS и Add Default Route
Затем настраиваем Adverising префикса в локальную сеть. Для этого открываем меню IPv6 -> Adresses и создаем новую запись:
- Пишем в Address — ::/64
- From Pool — то, что мы написали в Pool Name в DHCPv6 клиенте
- Interface — то, что у нас смотрит в локальную сеть, у меня это bridge интерфейс
- Устанавливаем на галочку Advertise
Жмем на Apply. Address должен поменяться на то, что выдаст нам провайдер. Если этого не произошло — попробуйте выключить и включить обратно pppoe интерфейс.
После этого можно уже сидеть в IPv6 интернете, но имеет смысл настроить хоть какой-то Firewall.
Следующий список команд вводится в терминал Mikrotik, в Winbox’e он открывается через меню New Terminal (Вместо “PPPOE-client” выставьте имя интерфейса, который у вас смотрит в интернеты):
/ipv6 firewall filter
add chain=input action=drop connection-state=invalid
add chain=input action=accept connection-state=established,related in-interface=PPPOE-client
add chain=forward action=accept connection-state=established,related in-interface=PPPOE-client out-interface=bridge-local
add chain=input action=accept protocol=icmpv6
add chain=forward action=accept protocol=icmpv6
add chain=input action=accept protocol=udp in-interface=PPPOE-client dst-port=546
add chain=forward action=accept in-interface=bridge-local out-interface=PPPOE-client
add chain=input action=drop
Все, теперь можно попробовать открыть ipv6.google.com и радоваться жизни.
TL:DR
Открываем System → Packages. Если пакет ipv6 есть в списке — включаем его и перезагружаем роутер.
Открываем IPv6 → DHCP Client и создаем новую запись:
- Interface — то, что смотрит у нас в интернет, в моем случае это pppoe-клиент
- Request — выбираем prefix
- Pool Name — пишем что-то понятное для себя
- Pool Prefix Length — 64
- Устанавливаем галочки Use Peer DNS и Add Default Route
Открываем IPv6 → Addresses и создаем новую запись:
- Пишем в Address — ::/64
- From Pool — то, что мы написали в Pool Name в DHCPv6 клиенте
- Interface — то, что у нас смотрит в локальную сеть, у меня это bridge интерфейс
- Устанавливаем на галочку Advertise
Открываем Терминал и вводим:
/ipv6 firewall filter
add chain=input action=drop connection-state=invalid
add chain=input action=accept connection-state=established,related in-interface=PPPOE-client
add chain=forward action=accept connection-state=established,related in-interface=PPPOE-client out-interface=bridge-local
add chain=input action=accept protocol=icmpv6
add chain=forward action=accept protocol=icmpv6
add chain=input action=accept protocol=udp in-interface=PPPOE-client dst-port=546
add chain=forward action=accept in-interface=bridge-local out-interface=PPPOE-client
add chain=input action=drop