Цей документ описує процес налаштування локальної IPv6-мережі на основі ULA (Unique Local IPv6 Address) з автоматичною конфігурацією адрес через SLAAC та виходом у глобальний інтернет за допомогою NAT66 (Masquerade) на маршрутизаторах MikroTik під управлінням RouterOS v7.


1. Концепція та передумови

Чому ULA + NAT66?

  1. Обмеження SLAAC (RFC 4862): Стандарт SLAAC вимагає префікс /64 для автоматичного призначення IPv6-адрес пристроям у локальній мережі. Якщо провайдер надає динамічний префікс або префікс, менший за /64 (наприклад, /68), клієнтські ОС (Linux, Android, Windows) ігнорують Router Advertisements.
  2. Незалежність від провайдера: Використання ULA (fd00::/8) гарантує стабільну внутрішню адресацію локальної мережі, яка не змінюється при зміні провайдера або перезавантаженні тунелів.
  3. Прозорий вихід в Інтернет: Завдяки IPv6 NAT (NAT66 / Masquerade) локальні пристрої отримують вихід у глобальну мережу IPv6 через зовнішній IPv6-інтерфейс MikroTik.

2. Покрокове налаштування MikroTik (RouterOS v7)

Крок 1. Призначення ULA-адреси на внутрішній інтерфейс

Додаємо ULA-адресу /64 на локальний міст (bridge_lan). Параметр advertise=no вказується для того, щоб керувати оголошенням через окремий блок ND.

/ipv6/address/add address=fd00:1:1::1/64 interface=bridge_lan advertise=no

Крок 2. Налаштування Neighbor Discovery (ND / SLAAC)

Налаштовуємо роутер для оголошення ULA-префікса /64 пристроям у локальній мережі та задаємо час життя маршруту (ra-lifetime).

# Налаштування параметрів ND для bridge_lan
/ipv6/nd/set [find interface=bridge_lan] advertise-mac-address=yes managed-address-configuration=no other-configuration=yes ra-lifetime=30m disabled=no

# Додавання префікса для автоматичного SLAAC
/ipv6/nd/prefix/add interface=bridge_lan prefix=fd00:1:1::/64 autonomous=yes

Крок 3. Дозвіл пересилки трафіку у Firewall Filter

За замовчуванням IPv6 Firewall у RouterOS блокує транзитний трафік. Дозволяємо пересилку пакетів з внутрішньої підмережі ULA та ICMPv6 трафік.

# Дозволяємо ICMPv6 (необхідно для SLAAC, ND та Ping)
/ipv6/firewall/filter/add chain=forward action=accept protocol=icmpv6 place-before=0

# Дозволяємо пересилку для локальної ULA підмережі
/ipv6/firewall/filter/add chain=forward action=accept src-address=fd00:1:1::/64 place-before=1

Крок 4. Налаштування IPv6 NAT (NAT66 / Masquerade)

Створюємо правило трансляції мережевих адрес (srcnat) для маскування ULA-адрес при виході в глобальний IPv6-інтернет.

/ipv6/firewall/nat/add chain=srcnat action=masquerade src-address=fd00:1:1::/64

3. Налаштування та перевірка на Linux-клієнті (pi-tiny)

Крок 1. Налаштування NetworkManager

Впевніться, що інтерфейс налаштовано на автоматичне отримання IPv6 через SLAAC/RA.

nmcli connection modify "Cable" ipv6.method auto
nmcli connection up "Cable"

Крок 2. Перевірка отримання IPv6 ULA-адреси та маршрутів

Виконайте команду перевірки IP-адрес:

ip -6 addr show dev end0

Очікуваний результат: наявність адреси з префіксом fd00:1:1::/64 зі статусом scope global dynamic.

Перевірте маршрутизацію IPv6:

ip -6 route show

Очікуваний результат: наявність default-маршруту через fe80-адресу MikroTik: default via fe80::... dev end0 proto ra metric ...

Крок 3. Перевірка зв'язку з Інтернетом

Перевірте доступність зовнішніх IPv6 ресурсів (наприклад, Cloudflare DNS):

ping -6 -c 4 2606:4700:4700::1111

4. Підсумкова схема адресації та трафіку

+-------------------------------------------------------------------+
|                        Глобальний Інтернет                        |
|                     (IPv6 Global / Cloudflare)                    |
+-------------------------------------------------------------------+
                                  ^
                                  | Global IPv6 Traffic
                                  v
+-------------------------------------------------------------------+
|                          MikroTik Router                          |
|  - External IPv6 (WAN)                                            |
|  - Internal ULA Gateway: fd00:1:1::1/64                           |
|  - NAT66 Rule: masquerade src-address=fd00:1:1::/64               |
+-------------------------------------------------------------------+
                                  ^
                                  | SLAAC / RA (fd00:1:1::/64)
                                  v
+-------------------------------------------------------------------+
|                         Локальна Мережа                           |
|  - pi-tiny (Linux): fd00:1:1:0:3680:34a4:260a:2cb2/64             |
|  - Інші пристрої офісу (SLAAC Auto-configuration)                 |
+-------------------------------------------------------------------+

5. Подальші кроки (Об'єднання офісів)

Після успішного налаштування ULA та NAT66 локальна мережа офісу повністю працездатна. Наступним етапом є інтеграція меш-мережі Yggdrasil для зв'язку ULA-підмереж між різними офісами (маршрутизація fd00:1:X::/64 через тунель Yggdrasil).