NAT для IPv6 (NPTv6)#
Описание#
NPTv6 - разновидность трансляции адресов (NAT) для протокола IPv6. Данная технология описана в спецификации RFC 6296.
Использование NPTv6 может быть полезным при использовании протокола IPv6 и нескольких подключения к провайдерам. Также NPTv6 обычно используется, когда внешний префикс IPv6 является динамическим, так как исключает необходимость настройки трансляции для внутренних узлов при изменении внешнего префикса.
Настройка#
Пример настройки#
В качестве примера рассмотрим следующую конфигурацию сети:
eth0
- внутренний интерфейс (LAN);eth1
- внешний интерфейс (WAN 1) с префиксом2001:db8:e1::/48
и соответствующей маршрутизацией;eth2
- внешний интерфейс (WAN 2) с префиксом2001:db8:e2::/48
и соответствующей маршрутизацией.
В данной конфигурации может возникнуть ряд вопросов. Например, почему при обработке трафика осуществляется выбор в пользу префикса 2001:db8:e1::/48
вместо префикса 2001:db8:e2::/48
? Или что произойдет при подключении к новому провайдеру с другой маршрутизируемой IPv6 подсетью?
Ответом на эти вопросы может стать назначение хостам уникального адреса ULA и настройка трансляции префиксов в соответствующую подсеть при прохождении трафика от хостов через маршрутизатор.
fc00:dead:beef::/48
- внутренняя (LAN) подсеть.2001:db8:e1::/48
- внешняя (WAN 1) подсеть.2001:db8:e2::/48
- внешняя (WAN 2) подсеть.fc00:dead:beef::1/48
- адрес интерфейсаeth0
.2001:db8:e1::1/48
- адрес интерфейсаeth1
.2001:db8:e2::1/48
- адрес интерфейсаeth2
.
Настройка NPTv6 выполняется в секции nat nptv6
.
set nat nptv6 rule 10 source prefix 'fc00:dead:beef::/48'
set nat nptv6 rule 10 outbound-interface 'eth1'
set nat nptv6 rule 10 translation prefix '2001:db8:e1::/48'
set nat nptv6 rule 20 source prefix 'fc00:dead:beef::/48'
set nat nptv6 rule 20 outbound-interface 'eth2'
set nat nptv6 rule 20 translation prefix '2001:db8:e2::/48'
Результатом выполнения команд, представленных выше, является следующие правила межсетевого экрана (ip6tables):
Chain DNPT_HOOK (1 references)
pkts bytes target prot opt in out source destination
0 0 NETMAP all eth1 any anywhere 2001:db8:e1::/48 to:fc00:dead:beef::/48
0 0 NETMAP all eth2 any anywhere 2001:db8:e2::/48 to:fc00:dead:beef::/48
0 0 RETURN all any any anywhere anywhere
Chain SNPT_HOOK (1 references)
pkts bytes target prot opt in out source destination
0 0 NETMAP all any eth1 fc00:dead:beef::/48 anywhere to:2001:db8:e1::/48
0 0 NETMAP all any eth2 fc00:dead:beef::/48 anywhere to:2001:db8:e2::/48
0 0 RETURN all any any anywhere anywhere
Список команд#
Основные настройки#
- • set nat nptv6 rule <rule>#
Создает правило трансляции <rule> типа NPTv6.
- • set nat nptv6 rule <rule> description <text>#
Задает описание <text> для правила трансляции <rule> типа NPTv6.
- • set nat nptv6 rule <rule> outbound-interface <ethN>#
Определяет исходящий интерфейс <ethN> для правила трансляции <rule> типа NPTv6.
- • set nat nptv6 rule <rule> source prefix <h:h:h:h:h:h:h:h/x>#
Задает префикс <h:h:h:h:h:h:h:h/x> источника для правила трансляции <rule> типа NPTv6.
- • set nat nptv6 rule <rule> translation prefix <h:h:h:h:h:h:h:h/x>#
Определяет префикс <h:h:h:h:h:h:h:h/x>, который будет использован для трансляции в правиле <rule> типа NPTv6.
- • set nat nptv6 rule <rule> disable#
Отключает правило фильтрации NPTv6 <rule>. Данная команда не удаляет правило из конфигурации операционной системы. После отключения, правило остается в конфигурации операционной системы.