Технології переходу з IPv4 до IPv6

Див. також:

Технології переходу можна встановити за допомогою таких пакунків:

Див. також:

Тунелі 6in4 зазвичай надаються сторонніми провайдерами тунелів, такими як HE.net.

:!: Для використання цього протоколу необхідно встановити пакунок 6in4.

:!: 6in4 вимагає наявності публічної IPv4-адреси. Клієнти за CGNAT не підтримуються.

Наведено приклад конфігурації статичного тунелю для брокера Hurricane Electric (he.net). Параметр `ipaddr` вказує локальну IPv4-адресу, `peeraddr` — адресу брокера, а `ip6addr` — локальну IPv6-адресу, маршрутизовану через тунель.

# /etc/config/network
config interface 'wan6'
        option proto        '6in4'
        option ipaddr       '178.24.115.19'
        option peeraddr     '216.66.80.30'
        option ip6addr      '2001:0DB8:1f0a:1359::2/64'

Наведено приклад конфігурації динамічного тунелю для брокера HE.net з увімкненим оновленням IP. Локальна IPv4-адреса визначається автоматично. Опції `tunnelid`, `username` і `updatekey` використовуються для оновлення IP.

# /etc/config/network
config interface 'wan6'
        option proto     '6in4'
        option mtu       '1424'                      # MTU тунелю IPv6 (необов’язково)
        option peeraddr  '216.66.80.30'              # Кінцева IPv4-адреса тунелю
        option ip6addr   '2001:0db8:1f0a:1359::2/64' # IPv6-адреса тунелю
        option ip6prefix '2001:db8:1234::/48'        # Ваш маршрутизований префікс (обов’язково)
        # нижченаведені опції застосовуються лише для тунелів HE.net
        option tunnelid  '12345'                     # ID тунелю HE.net
        option username  'username'                  # Ім’я користувача HE.net (не User ID)
        option updatekey 'updatekey'                 # Ключ оновлення HE.net (замість пароля)

Дивіться нижче для додаткових опцій конфігурації.

У типовій конфігурації тунелю (наприклад, HE.net) ви отримаєте дві різні IPv6-адреси/префікси:

  • ip6addr — адреса кінцевої точки тунелю, наприклад `2001:DB8:2222:EFGH::2/64`. Вона використовується лише для з’єднання з іншою стороною тунелю (...::1).
  • ip6prefix — маршрутизований префікс, зазвичай `/48` або `/64`, наприклад `2001:DB8:1112::/48`. Клієнти вашої локальної мережі отримають адреси з цього префікса. Ширший префікс дозволяє делегування IPv6 для кількох підмереж.

Брандмауер

Деяким користувачам необхідно додати правила брандмауера для пропуску трафіку 6in4 до кінцевої точки тунелю. Потрібно встановити пакунок iptables-mod-ipopt для перевірки відповідності за довжиною.

# /etc/config/firewall
config rule
        option name      'Allow-protocol-41'
        option src       'wan'
        option proto     '41'
        option target    'ACCEPT'
 
config rule
        option name      'Allow-protocol-59'
        option src       'wan'
        option proto     '59'
        option target    'ACCEPT'
        option extra     '-m length --length 40'

Маршрут за замовчуванням

Встановлення маршруту за замовчуванням з перекриттям `sourcefilter`:

# /etc/config/network
config route6
        option interface 'wan6'
        option target    '::/0'
Назва Тип Обов’язково Типово Опис
`ipaddr` IPv4-адреса ні Поточна WAN-адреса Локальна кінцева IPv4-адреса
`peeraddr` IPv4-адреса так (немає) Віддалена кінцева IPv4-адреса
`ip6addr` IPv6-адреса (CIDR) так (немає) Локальна IPv6-адреса тунельного інтерфейсу
`ip6prefix` IPv6-префікс ні (немає) Маршрутизований IPv6-префікс для внутрішніх інтерфейсів
`tunlink` Логічний інтерфейс ні (немає) Базовий інтерфейс тунелю (наприклад, WAN)
`defaultroute` булевий ні `1` Створювати маршрут за замовчуванням для IPv6 через тунель
`ttl` ціле число ні `64` TTL для тунельного інтерфейсу
`tos` рядок ні (немає) Тип сервісу (ToS), наприклад “inherit” або hex-значення
`mtu` ціле число ні `1280` MTU для тунельного інтерфейсу
`tunnelid` ціле число ні (немає) Глобальний ID тунелю HE.net
`username` рядок ні (немає) Ім’я користувача HE.net (не ID), використовується для оновлення
`password` рядок ні (немає) Пароль HE.net, застарілий
`updatekey` рядок ні (немає) Ключ оновлення HE.net, замінює пароль з 2014-02
`metric` ціле число ні `0` Метричне значення маршруту за замовчуванням

:!: Для цього типу протоколу не потрібно вказувати параметр `device` в розділі інтерфейсу. Назва інтерфейсу утворюється з назви секції, наприклад: `config interface sixbone` → `6in4-sixbone`.

:!: Хоча `ip6prefix` не є обов’язковим, параметр `sourcefilter` увімкнений за замовчуванням і блокує переадресацію пакетів без `ip6prefix`.

6rd — це механізм тунелювання на основі 6to4. На відміну від інших механізмів, 6rd зазвичай надається самим інтернет-провайдером.

:!: Для використання цього протоколу потрібно встановити пакунок 6rd.

:!: Налаштування 6rd зазвичай визначається автоматично. Достатньо встановити пакунок 6rd і перезавантажити маршрутизатор.

:!: Щоб автоматично налаштувати 6rd через DHCP, потрібно створити інтерфейс з `option auto 0` і вказати його ім’я як параметр `iface6rd`. Також потрібно додати цей інтерфейс до відповідної зони файрволу у файлі `/etc/config/firewall`.

# /etc/config/network
config interface 'wan6'
        option proto '6rd'
        option peeraddr '77.174.0.2'
        option ip6prefix '2001:838:ad00::'
        option ip6prefixlen '40'
        option ip4prefixlen '16'

Щоб налагодити 6rd через DHCP, увімкніть логування DHCP-клієнта, перезавантажте маршрутизатор і перегляньте логи:

# logread -e ip6rd
ip6rd=16 40 2001:0838:ad00:0000:0000:0000:0000:0000 77.174.0.2

Якщо цей рядок відсутній, потрібно отримати правильні значення `peeraddr`, `ip6prefix`, `ip6prefixlen` та `ip4prefixlen` від вашого провайдера. Наведені або отримані значення можна використовувати для ручного налаштування тунелю 6rd. Після цього видаліть або закоментуйте рядок `iface6rd` у розділі `wan`.

:!: Якщо ви використовуєте інше ім’я інтерфейсу, відмінне від `wan6`, не забудьте додати цю мережу до зони `wan` у файрволі.

Нижче наведені опції потрібні лише для ручного налаштування 6rd.

Назва Тип Обов’язково Типово Опис
`peeraddr` IPv4-адреса так ні Шлюз 6rd
`ipaddr` IPv4-адреса ні Поточна WAN IPv4 Локальна кінцева точка IPv4
`ip6prefix` IPv6-префікс (без довжини) так ні IPv6-префікс 6rd
`ip6prefixlen` Довжина IPv6-префікса так ні Довжина IPv6-префікса 6rd
`ip4prefixlen` Довжина спільного IPv4-префікса ні 0 Кількість бітів з IPv4, які використовуються
`defaultroute` булевий ні `1` Чи створювати маршрут за замовчуванням через тунель
`ttl` ціле число ні `64` TTL для інтерфейсу тунелю
`tos` рядок ні (немає) Тип сервісу: “inherit” або hex-значення
`mtu` ціле число ні `1280` MTU для тунельного інтерфейсу
`iface6rd` логічний інтерфейс ні (немає) Шаблон логічного інтерфейсу для автоналаштування
`mtu6rd` ціле число ні системне значення MTU для інтерфейсу 6rd
`zone6rd` зона файрволу ні системна зона Зона файрволу для 6rd-інтерфейсу

:!: Цей тип протоколу не потребує параметру `device` в секції інтерфейсу. Ім’я інтерфейсу формується з назви секції, наприклад: `config interface wan6` → `6rd-wan6`.

:!: Деякі провайдери надають кількість байтів з вашої IPv4-адреси, які використовуються для побудови IPv6-адреси. `ip4prefixlen` очікує вказання кількості префіксних бітів IPv4. Наприклад, якщо провайдер вказує 14 біт, введіть 18 (32 - 14).

Це ще один механізм переходу до IPv6, що використовується деякими інтернет-провайдерами. Він ґрунтується на тунелі L2TPv2.

:!: Для використання цього протоколу потрібно встановити пакунок xl2tpd. Він обробляє як тунель L2TP, так і PPP-сесію.

Загальний опис процесу:

  1. Створюється тунель L2TP, інкапсульований у UDP над IPv4.
  2. Усередині тунелю встановлюється PPP-сесія.
  3. За допомогою IPv6CP (див. RFC 5072) погоджуються локальні IPv6-адреси.
  4. Отримується IPv6-префікс через DHCPv6.

Цей приклад базується на досвіді роботи з SFR (FTTH Франція), проте може застосовуватись і до інших провайдерів. У випадку SFR для кроків 1 і 2 потрібна аутентифікація. Пароль L2TP жорстко закодований. Пароль PPP не зафіксований, але передається у відкритому вигляді, тому його легко перехопити.

# /etc/config/network
config interface 6pe
        option proto l2tpv2
        option server <адреса LNS>
        option username '<ім’я PPP>'
        option password '<пароль PPP>'
        option keepalive '6'
        option ipv6 '1'
 
config interface 'wan6'
        option device '@6pe'
        option proto 'dhcpv6'

Для аутентифікації на рівні L2TP (до PPP):

# /etc/xl2tpd/xl2tp-secrets
* * my_l2tp_password

Після цього, виконання `service network reload` або `ifup wan6` має призвести до повноцінної IPv6-конфігурації. Для налагодження дивіться `logread`, `ifstatus 6pe` та `ifstatus wan6`.

Більшість параметрів подібні до протоколу `ppp`.

Назва Тип Обов’язково Типово Опис
`server` рядок так (немає) Сервер L2TP (може бути IP або hostname, порт — через `:`)
`username` рядок ні (немає) Ім’я користувача для PAP/CHAP
`password` рядок так, якщо вказано username (немає) Пароль для PAP/CHAP
`ipv6` булевий ні `0` Увімкнути IPv6 на лінії PPP (IPv6CP)
`mtu` ціле число ні значення за замовчуванням pppd Максимальний розмір передаваного пакета
`keepalive` рядок ні (немає) Кількість спроб до втрати зв'язку (через 5 сек кожна)
`checkup_interval` ціле число ні (немає) Інтервал перевірки стани інтерфейсу після спроби підключення
`pppd_options` рядок ні (немає) Додаткові параметри для `pppd`

Фізичний інтерфейс буде називатись `l2tp-<назва логічного інтерфейсу>`.

6to4 — це найпростіший механізм тунелювання IPv6, що базується на публічних шлюзах.

:!: Для використання потрібно встановити пакунок 6to4.

# /etc/config/network
config interface 'wan6'
        option proto '6to4'
 
# /etc/config/firewall
config rule
        option target 'ACCEPT' 
        option name '6to4' 
        option src 'wan' 
        option proto '41'

:!: Якщо ім’я вашого тунельного інтерфейсу відрізняється від `wan6`, не забудьте додати його до зони `wan`.

Назва Тип Обов’язково Типово Опис
`ipaddr` IPv4-адреса ні Поточна WAN-адреса Локальна кінцева IPv4-адреса
`defaultroute` булевий ні `1` Створювати маршрут IPv6 за замовчуванням через тунель
`ttl` ціле число ні `64` TTL для тунельного інтерфейсу
`tos` рядок ні (немає) Тип сервісу: “inherit” або hex-значення
`mtu` ціле число ні `1280` MTU тунельного інтерфейсу
`metric` ціле число ні `0` Метричне значення маршруту за замовчуванням

:!: Цей протокол не потребує параметра `device`. Ім’я інтерфейсу формується з назви секції: `config interface wan6` → `6to4-wan6`.

ds-lite — це механізм переходу, який використовують інтернет-провайдери для підтримки застарілих IPv4-з'єднань через нативне IPv6-з'єднання.

:!: Для використання цього протоколу потрібно встановити пакунок ds-lite.

:!: Конфігурація зазвичай визначається автоматично, і ручне налаштування не потрібне. Достатньо встановити пакунок ds-lite і перезапустити мережеві інтерфейси (аналогічно зміні конфігурації).

# /etc/config/network
config interface 'wan6'
        option device 'eth1'
        option proto 'dhcpv6'
 
config interface 'wan'
        option proto 'dslite'
        option peeraddr '2001:db80::1' # AFTR-адреса від вашого провайдера

:!: Якщо ви використовуєте інше ім’я тунельного інтерфейсу, відмінне від `wan`, не забудьте додати його до зони `wan` у файрволі.

Див. нижче розширені параметри конфігурації.

Назва Тип Обов’язково Типово Опис
`peeraddr` IPv6-адреса так ні AFTR-адреса DS-Lite, яку надає провайдер
`ip6addr` IPv6-адреса ні Поточна WAN IPv6-адреса Локальна кінцева IPv6-адреса
`tunlink` Логічний інтерфейс ні Поточний WAN-інтерфейс Базовий інтерфейс тунелю
`defaultroute` булевий ні `1` Чи створювати маршрут IPv6 за замовчуванням через тунель
`ttl` ціле число ні `64` TTL для тунельного інтерфейсу
`mtu` ціле число ні `1280` MTU тунельного інтерфейсу

:!: Для роботи ds-lite потрібно вимкнути NAT для IPv4. Необхідно відповідним чином налаштувати файл `/etc/config/firewall`.

:!: Цей тип протоколу не потребує параметра `device` у секції інтерфейсу. Ім’я інтерфейсу формується на основі назви секції, наприклад: `config interface wan` → `dslite-wan`.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/06/06 09:44
  • by vazaz