TAYGA Настройка NAT64 IPv6

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

TAYGA Настройка NAT64 IPv6

Сообщение Артём Мамзиков »

Не путать с taiga

Простой и понятный NAT64 для Linux
TAYGA - это реализация NAT64 без сохранения состояния вне ядра для Linux, которая использует драйвер TUN для обмена пакетами IPv4 и IPv6 с ядром. Он предназначен для предоставления высококачественного сервиса NAT64 для сетей, в которых выделенное оборудование NAT64 было бы излишним.
TAYGA не нуждается в исправлениях ядра или дополнительных модулях и совместима со всеми ядрами версий 2.4 и 2.6.
NAT64 без сохранения состояния в пользовательском пространстве

Оф. сайт ТАЙГА
Пакет в Debian

ТАЙГА — это:
* Быстрый — может заполнить гигабитный Ethernet на скромном оборудовании ПК
* Гибкость — выполняет динамическое сопоставление для обработки любой схемы адресации сайта
* Безопасно — работает вне ядра как непривилегированный процесс.
* Совместимость — работает со всеми ядрами Linux 2.4 и 2.6
* Простой — требуется всего лишь файл конфигурации из пяти строк (в некоторых случаях из трех строк)
* Простота установки — не требуется никаких исправлений ядра или внешних зависимостей.
* Бесплатно — под лицензией GPLv2
Последняя версия TAYGA — версия 0.9.2, выпущенная 10.06.2011. В этой версии исправлены некоторые неясные ошибки фрагментации и MTU, а также добавлено решение для ошибки в ядрах Linux старше 2.6.34, которая могла приводить к отбрасыванию некоторых транслированных пакетов подсистемой netfilter "conntrack". (Более подробную информацию см. в ошибке Launchpad 788637. )


Супер-быстрый старт
Вам нужно будет выбрать неиспользуемый /96 из диапазона адресов IPv6 вашего сайта, который будет использоваться в качестве префикса NAT64.
Вам также понадобится блок неиспользуемых адресов IPv4 для пула динамических адресов. TAYGA назначит адреса IPv4 из этого пула хостам IPv6, которым требуется служба NAT64.
Динамический пул может быть выбран из частного адресного пространства IPv4 (10.xxx, 192.168.xx и т. д.) и может быть любого размера, хотя он должен быть достаточно большим, чтобы содержать один адрес IPv4 для каждого хоста IPv6, которому необходимо использовать NAT64.

TAYGA также необходим собственный адрес IPv4, но его можно взять из динамического пула адресов.
Установка из исходного кода

Код: Выделить всё

./configure && make && make install
Создание дирикторий

Код: Выделить всё

mkdir -p /var/db/tayga
Создание файла конфигурации

Код: Выделить всё

cat >/usr/local/etc/tayga.conf <<EOD
tun-device nat64
ipv4-addr 192.168.255.1       # это IPv4-адрес TAYGA, а не адрес вашего маршрутизатора) 
prefix 2001:db8:1:ffff::/96   # замените на неиспользуемый префикс /96 из диапазона адресов вашего сайта)
dynamic-pool 192.168.255.0/24
data-dir /var/db/tayga
EOD
Создать TUN сетевой интерфейс

Код: Выделить всё

tayga --mktun
Включение виртуального сетевого интерфейса (может включится при запуске tayga и отключится при завершении процесса tayga)

Код: Выделить всё

ip link set nat64 up
Задаем IPv4 адрес на виртуальный интерфейс (замените на IPv4-адрес вашего маршрутизатора)

Код: Выделить всё

ip addr add 192.168.0.1 dev nat64
Пример удаления
ip addr del 192.168.0.1 dev nat64
Задаем IPv6 адрес на виртуальный интерфейс (замените на IPv6-адрес вашего маршрутизатора)

Код: Выделить всё

ip addr add 2001:db8:1::1 dev nat64
Если нужно удалить виртуальное подключение
Отключаем
ip link set nat64 down
Удаляем
ip link delete nat64

Просмотр сетевых подключений

Код: Выделить всё

ip addr show
Добавить маршруты

Код: Выделить всё

ip route add 192.168.255.0/24 dev nat64

Код: Выделить всё

ip route add 2001:db8:1:ffff::/96 dev nat64
Запускаем Проверяем

Код: Выделить всё

ping6 2001:db8:1:ffff::192.168.255.1

Код: Выделить всё

ping6 2001:db8:1:ffff::192.168.0.1

Код: Выделить всё

ping6 2001:db8:1:ffff::8.8.8.8
мы хотим достичь 8.8.8.8 через NAT64.
Использование IPv4 в качестве суффикса сделает эту работу: 64:ff9b::8.8.8.8.
Конечно, IPv6 обычно закодирован в шестнадцатеричном формате, но такой синтаксис разрешен.
Как только шлюз увидит адрес, содержащий настроенный префикс NAT64, он начнет трансляцию в IPv4.

Код: Выделить всё

ping -6 github.com
Если команда ping6 выполнена успешно, TAYGA работает.
Теперь вам нужно настроить правила NAT44 в iptables или где-то еще в вашей сети, чтобы динамические пулы адресов могли достичь остальной части Интернета.

Наконец, настройте iptables для NAT4:
iptables -t nat -A POSTROUTING -o nat64 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -j MASQUERADE
Чтобы включить маршрутизацию между IPv4 и IPv6, добавьте правила iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


Полную документацию по настройке и работе TAYGA можно найти на страницах руководства и в файле README, прилагаемых к дистрибутиву.

Исходный код: tayga-0.9.2.tar.bz2
README-0.9.2
README-0.9.2
Показать
**************************************************** ****************************
README для TAYGA v0.9.2
**************************************************** ****************************

Последнее обновление 2010-12-12

--------
Обзор
--------

TAYGA — это реализация NAT64 без сохранения состояния ядра для Linux. Она использует
драйвер TUN для обмена пакетами с ядром, который является тем же драйвером
используется OpenVPN и QEMU/KVM. TAYGA не требует исправлений ядра или out-of-tree
модулей и совместим со всеми ядрами 2.4 и 2.6.

Если вы нетерпеливы и знаете, что такое NAT64 без сохранения состояния, вы можете сразу перейти к
Раздел «Установка и базовая настройка».

-------------------------------
NAT64 без сохранения состояния против NAT64 с сохранением состояния
-------------------------------

Большинству людей знакома технология NAT с отслеживанием состояния, которая позволяет выполнять сопоставление адресов N:1.
путем отслеживания сеансов TCP и UDP и перезаписи номеров портов в каждом пакете.
Чаще всего это используется для перевода сеансов из нескольких «внутренних»
хостов (которые пронумерованы частными адресами IPv4) на единую глобальную
Адрес IPv4 на «внешнем» интерфейсе устройства NAT.

Stateless NAT не отслеживает сеансы и не перезаписывает номера портов.
просто выполняет замену IP-адресов 1:1 с использованием таблицы сопоставления
предоставленный администратором сети.

Например, организация, чья глобальное распределение адресов было 198.51.100.0/24,
но чьи хосты использовали адреса в 192.0.2.0/24 могут использовать NAT без сохранения состояния
для перезаписи 192.0.2.1 в 198.51.100.1, 192.0.2.35 в 198.51.100.35 и т.д. в исходящем направлении,
и наоборот в направлении входящего. Это обычно делается, когда организация переходит к новому интернет-провайдеру
и получает новый делегированный адрес IPv4 такого же размера, как и их старая делегация,
но не хочет менять свою нумерацию сеть.

TAYGA и другие трансляторы NAT64 без сохранения состояния работают таким образом.
Когда перевод пакетов между IPv4 и IPv6, источником и местом назначения
Адреса в заголовках пакетов заменяются с использованием сопоставления 1:1.
Это означает, что для обмена пакетами через NAT64 каждый хост IPv4 должен
быть представлено уникальным адресом IPv6, и каждый хост IPv6 должен быть
представлено уникальным адресом IPv4. Как выполняется это сопоставление,
обсуждается в следующих разделах.

В ситуациях, когда требуется NAT64 с отслеживанием состояния, можно использовать TAYGA
сочетание с IPv4 NAT с отслеживанием состояния, например, с целью iptables MASQUERADE.
Это дает администратору гораздо больше гибкости, чем при отслеживании состояния.
NAT были реализованы непосредственно в TAYGA.

----------------------
Сопоставление IPv4 с IPv6
----------------------

TAYGA сопоставляет адреса IPv4 с сетью IPv6 в соответствии с RFC 6052.
Это утверждает, что 32-битный адрес IPv4 должен быть добавлен к назначенному адресу IPv6
префикс, который мы называем префиксом NAT64, и полученный адрес IPv6 может быть
используется для связи с хостом IPv4 через NAT64.

Префикс NAT64 должен быть назначен из глобального адреса IPv6 сайта.
Выделение.
Например, если сайту выделено 2001:db8:1::/48, префикс 2001:db8:1:ffff::/96 можно было бы зарезервировать для NAT64.
(Есть несколько вариантов для длины префикса NAT64, но рекомендуется /96.) Хост IPv4
Затем к 198.51.100.10 можно будет получить доступ через NAT64, используя адрес
2001:db8:1:ffff::c633:640a.
Удобно, что можно использовать синтаксис 2001:db8:1:ffff::198.51.100.10 вместо этого.

RFC 6052 также определяет общеизвестный префикс 64:ff9b::/96, который может использоваться для
Служба NAT64 вместо выделения префикса из IPv6-адреса сайта блок.
Однако это связано с несколькими ограничениями, в первую очередь, с тем, что хосты
с частными адресами IPv4 (10.xxx, 192.168.xx и т.д.) доступ невозможен
через NAT64. Для получения дополнительной информации см. RFC 6052.

Если служба NAT64 необходима только для нескольких хостов, а не для всего IPv4
адресное пространство, TAYGA может быть настроено без префикса NAT64, и адрес
Карты могут назначаться на основе принципа «хост-хост».

----------------------
Сопоставление IPv6 с IPv4
----------------------

Будучи NAT без сохранения состояния, TAYGA требует назначения уникального адреса IPv4.
к каждому хосту IPv6, которому требуется служба NAT64. Это назначение может быть выполнено
статически администратором сети или динамически TAYGA из пула
адресов IPv4, предназначенных для этой цели.

Статическое сопоставление адресов желательно для серверов или других хостов, требующих
известный адрес. Статически сопоставленные адреса могут быть введены в DNS, например
пример.

Динамическое сопоставление адресов позволяет TAYGA назначать адреса IPv4 хостам IPv6 в качестве они нужны.
По умолчанию эти назначения гарантированно останутся
можно использовать в течение двух часов после последнего увиденного пакета, но они сохраняются
на срок до двух недель, пока пул адресов не опустеет.
Назначения записываются на диск, поэтому они сохраняются после перезапуска TAYGA.
демон, позволяющий существующим сеансам TCP и UDP продолжаться без прерывания.

(Конечно, TAYGA также поддерживает архитектуру адресации, описанную в RFC)
6052, в котором хосты IPv6 нумеруются с помощью «адресов IPv6, транслируемых в IPv4»
(вырезано из префикса NAT64.)

----------------------------------
Установка и базовая конфигурация
----------------------------------

TAYGA использует систему GNU Automake/Autoconf, для которой требуется `configure`
Скрипт, который необходимо запустить для генерации Makefile перед сборкой. --prefix
и/или параметры --sysconfdir можно указать в скрипте конфигурации для
укажите путь установки верхнего уровня и каталог файла tayga.conf, соответственно.

После распаковки дистрибутивного файла tar.bz2 запустите:

Код: Выделить всё

./configure && make && make install
Это установит исполняемый файл tayga в /usr/local/sbin/tayga
пример файл конфигурации в /usr/local/etc/tayga.conf.example.

Далее, если вы хотите, чтобы динамические карты сохранялись между перезапусками TAYGA,
создайте каталог для хранения файла dynamic.map:

Код: Выделить всё

mkdir -p /var/db/stretch
Теперь создайте свой сайт-специфичный файл конфигурации tayga.conf. Установленный
Файл tayga.conf.example можно скопировать в tayga.conf и изменить в соответствии с вашими требованиями.
сайт. Вот пример минимальной конфигурации:

Код: Выделить всё

mcedit /usr/local/etc/tayga.conf

Код: Выделить всё

  tun-device nat64
  ipv4-addr 192.168.255.1
  prefix 2001:db8:1:ffff::/96 # заменить на префикс из
                                           # диапазон адресов вашего сайта
  dynamic-pool 192.168.255.0/24
  data-dir /var/db/tayga # пропустите, если вам не нужна постоянная
                                     # динамические карты адресов
Перед запуском демона TAYGA необходимо настроить маршрутизацию в вашей системе.
для изменения для отправки пакетов IPv4 и IPv6 в TAYGA.
Сначала создайте TUN сетевой интерфейс:

Код: Выделить всё

tayga --mktun
Если TAYGA выводит какие-либо ошибки, вам необходимо исправить файл конфигурации перед продолжением.
В противном случае новый интерфейс nat64 может быть настроен и
В вашу систему можно добавить соответствующие маршруты:

# ip link set nat64 up
# ip addr add 2001:db8:1::1 dev nat64 # замените на адрес вашего маршрутизатора
# ip addr add 192.168.0.1 dev nat64 # замените на адрес вашего маршрутизатора
# ip route add 2001:db8:1:ffff::/96 dev nat64 # из tayga.conf
# ip route add 192.168.255.0/24 dev nat64 # из tayga.conf

Настоятельно рекомендуется защитить ваш префикс NAT64 от внешнего доступа с помощью брандмауэра:
Разрешить
# ip6tables -A FORWARD -s 2001:db8:1::/48 -d 2001:db8:1:ffff::/96 -j ACCEPT
Блокировать
# ip6tables -A FORWARD -d 2001:db8:1:ffff::/96 -j DROP

На этом этапе вы можете запустить процесс тайги: Проверьте системный журнал (/var/log/syslog или /var/log/messages) на предмет статуса информации.

Если у вас возникли трудности с настройкой TAYGA, используйте опцию -d для запуска
процесс tayga на переднем плане и отправка всех сообщений журнала на стандартный вывод:

Код: Выделить всё

tayga -d
DNS64
ISC BIND поддерживает DNS64 с версии 9.8 и является лучшим вариантом для служб DNS64.
Другой вариант — Totd , хотя он не обновлялся несколько лет.

А как насчет NAT с отслеживанием состояния?
TAYGA никогда не сможет предложить ту же мощь и гибкость, что и iptables и зрелые коммерческие реализации NAT44, поэтому вместо этого TAYGA преобразует IPv6 в IPv4 максимально прозрачным образом, позволяя использовать существующие инструменты, работающие только с IPv4, для дальнейшей манипуляции сеансами, проходящими через него.

Другими словами, если вам нужен NAT64 с отслеживанием состояния, направьте путь IPv4 TAYGA через NAT44 с отслеживанием состояния.

Контакт
С автором, Натаном Лучански, можно связаться по адресу lutchann@litech.org .
Часто задаваемые вопросы
Показать
Предварительная установка
1.1. Чем именно занимается TAYGA?
TAYGA — это демон, который выполняет трансляцию пакетов между IPv4 и IPv6. Официально это называется «Stateless IP/ICMP Translation (SIIT)» и описано в draft-ietf-behave-v6v4-xlate . Неофициально это известно как NAT64, но сравнение с традиционной трансляцией сетевых адресов (NAT) может вызвать путаницу.

ТАЙГА не является :

маршрутизатор
инструмент туннелирования или VPN
брандмауэр или мера безопасности любого рода
DNS-транслятор ( для этого используйте TOTD или другой DNS64)
способ «получить доступ» к Интернету IPv6 (см. следующие два вопроса)
1.2. Могу ли я использовать TAYGA для подключения моих хостов IPv6 к Интернету IPv6?
TAYGA обрабатывает только трансляцию в IPv4 и обратно. Его нельзя использовать для создания соединения между сайтом с поддержкой IPv6 и серверами IPv6 в более широком Интернете.

Интернет IPv6, концептуально, является отдельной глобальной сетью от Интернета IPv4. Вашей организации необходимо установить восходящий канал к Интернету IPv6, который будет работать параллельно с вашим существующим восходящим каналом IPv4.

К счастью, нет необходимости приобретать отдельную физическую инфраструктуру. Если ваш провайдер восходящего потока изначально поддерживает IPv6, вы можете попросить его включить IPv6 на вашем существующем соединении IPv4, и оба протокола смогут использовать одну и ту же линию. Если ваш провайдер восходящего потока не поддерживает IPv6, вы можете создать туннель IPv6-in-IPv4 (похожий на VPN) к бесплатному брокеру туннелей, такому как Hurricane Electric или SixXS .

1.3. Я не хочу развертывать IPv6 в своей внутренней сети; я просто хочу включить IPv6 на своем пограничном маршрутизаторе и использовать NAT, чтобы предоставить моим внутренним клиентам доступ к Интернету IPv6. Может ли TAYGA сделать это?
Нет. То, что вы ищете, на самом деле не существует.

Некоторые сетевые «эксперты» утверждают, что организациям нет необходимости переводить свои внутренние сети на IPv6, и предполагают, что можно использовать NAT для предоставления клиентам IPv4-only доступа к Интернету IPv6. Эти эксперты обычно отказываются описывать технические средства того, как это можно сделать, вместо этого советуя читателям подождать, пока поставщики оборудования предложат решение.

Технически невозможно, чтобы система трансляции, работающая исключительно на уровне IP, позволяла хостам IPv4 устанавливать соединения с любым произвольным сервером IPv6. Такая система должна была бы представлять каждый сервер IPv6 в Интернете с уникальным адресом IPv4, что явно невыполнимо, учитывая размер адресного пространства IPv6.

Несколько лет назад IETF попыталась стандартизировать систему под названием NAT-PT, которая использовала функцию трансляции DNS для назначения временных адресов IPv4 серверам IPv6, создавая видимость полной двунаправленной связи между IPv4 и IPv6. Возможно, именно этот стандарт имели в виду эксперты выше. Однако было обнаружено, что NAT-PT имеет фундаментальные недостатки и слишком хрупкий для использования в производственной среде, поэтому IETF объявила его устаревшим в 2007 году.

Единственный известный метод надежного предоставления клиентам, использующим только IPv4, доступа к Интернету IPv6 — это использование прокси-серверов уровня приложений, например Squid для трафика HTTP.

Установка
2.1. В какие дистрибутивы включена TAYGA?
TAYGA 0.9.1 была добавлена ​​в репозиторий Debian для тестирования 10 апреля 2011 г.

Если вы являетесь ответственным за поддержку дистрибутива и вам нужна помощь в упаковке TAYGA, отправьте электронное письмо по адресу .

2.2. Безопасна ли 64-битная версия TAYGA?
Безопасна ли она с прямым и обратным порядком байтов?
Да.

Конфигурация и запуск
3.1. Зачем TAYGA нужны собственные адреса IPv4 и IPv6?
Когда TAYGA не может преобразовать пакет (например, если адрес назначения недействителен), он должен отправить ICMP-ошибку отправителю пакета. TAYGA помещает свой собственный IP-адрес в поле исходного адреса пакета ICMP-ошибки, чтобы определить, что ошибка была сгенерирована TAYGA.

В диагностических целях TAYGA также будет отвечать на эхо-запросы ICMP (ping), отправленные на его IP-адреса.

3.2. Может ли TAYGA использовать те же IP-адреса, что и хост, на котором он работает?
Это крайне не рекомендуется. Известно, что хосты Linux ведут себя плохо при наличии дублирующих назначений IP-адресов. Если вы гуру сетей Linux, вы можете заставить это работать, но в противном случае это приглашение к странным проблемам, некоторые из которых могут быть не очевидны сразу.

3.3. Какие адреса следует назначить интерфейсу TUN nat64?
Вы можете использовать любые адреса, назначенные другим сетевым интерфейсам вашего маршрутизатора, или использовать новые адреса, выделенные вами специально для этой цели.

Обратите внимание, что если вы используете адреса из другого интерфейса, вам НЕ НУЖНО добавлять длину префикса к адресу при его настройке на интерфейсе nat64.

Пример правильной конфигурации:
# ip addr add 192.168.0.1 dev nat64
# ip addr add 2001:db8:1::1 dev nat64

Пример неправильной конфигурации:
# ip addr add 192.168.0.1/24 dev nat64
# ip addr add 2001:db8:1::1/64 dev nat64

3.4. Я вообще не настраивал адреса на интерфейсе nat64 и вроде бы все работает. Это нормально?
Если вы не настроите адреса на вашем интерфейсе nat64, вы можете столкнуться с тонкими проблемами с ошибками ICMP.
Если хост Linux должен выдать ошибку ICMP из интерфейса nat64, он произвольно выберет исходный адрес из другого интерфейса или может полностью подавить ошибку. Это может вызвать проблемы с обнаружением MTU пути, среди прочих проблем.

Явная настройка адреса IPv4 и адреса IPv6 на интерфейсе nat64 — лучший способ обеспечить надлежащую функциональность ICMP.
Заметки по сборке для WRT54 и аналогичных маршрутизаторов под управлением Tomato
Заметки по сборке для WRT54 и аналогичных маршрутизаторов под управлением Tomato
Показать
Сборка TAYGA для TomatoUSB
Стивен Уолтер предоставил приведенные ниже инструкции по сборке TAYGA для прошивки TomatoUSB для домашних маршрутизаторов на базе WRT54.

Я начал с прошивки Tomato USB с включенными IPv6 и JFFS.
Начнем с того, что я скачал репозиторий git для Tomato, так как он
содержит необходимую цепочку инструментов кросс-компилятора MIPS.

Прочитайте tools/README в исходном дереве томата и следуйте инструкциям
инструкции по размещению инструментария компилятора в $PATH. Вы можете перейти
вперед и построить Помидор, как указано; единственная часть, которая действительно
необходимо собрать модуль ядра tun.o. Он собран
по умолчанию, но не включен в образ флэш. В качестве альтернативы вы можете
используйте образ прошивки, который поддерживает OpenVPN. Для сборки TAYGA настройте
это примерно так:

Код: Выделить всё

CC=mipsel-linux-uclibc-gcc ./configure --host=mipsel-linux-uclibc \
          --build=i686-linux-gnu-pc
Вы можете собрать его с помощью обычной команды «make», а затем скопировать двоичный файл в /jffs на вашем маршрутизаторе.
Вы можете захотеть удалить его с помощью mipsel-linux-uclibc-strip сначала.
Затем скопируйте tun.o также в /jffs, если необходимо.
Создайте /jffs/tayga.conf так же, как и для любого другого Linux система.

Из оболочки маршрутизатора:

Код: Выделить всё

cd /jffs

Код: Выделить всё

insmod ./tun.o

Код: Выделить всё

./tayga -c tayga.conf --mktun
настройте свое устройство tun, используйте "ip", как и в любой другой системе Linux

Код: Выделить всё

./tayga -c tayga.conf
На данный момент тайга запущена и функциональна. Вы можете обнаружить, как я сделал, что правила брандмауэра по умолчанию не позволяют ему быть очень полезно.
Я добавил эти правила в свой iptables:

Код: Выделить всё

iptables -A FORWARD -i nat64 -j ACCEPT

Код: Выделить всё

iptables -A FORWARD -o nat64 -j ACCEPT
ip6tables также должен разрешить пересылку, но это не было сделано уже отклонено в моей системе.
Файл конфигурации с описанием

Код: Выделить всё

# Обязательный параметр. виртуальное сетевое устройство. любое имя, но рекомендуется nat64.
tun-device nat64

# IPv4-адрес TAYGA, Обязательный параметр который будет использоваться для трансляции.
# требуется свой собственный адрес, а не адрес вашего маршрутизатора, может находиться в пределах выделенного для TAYGA динамического пула / dynamic-pool адресов.
# действует как маршрутизатор IPv4 и IPv6 и должен иметь возможность отправлять сообщения ICMP(ping)
ipv4-addr 192.168.255.1

# Префикс NAT64. Адресное пространство IPv4 отображается в адресное пространство IPv6 путем добавления этого префикса к адресу IPv4.
# В большинстве случаев рекомендуется использовать префикс /96, но поддерживаются все длины, указанные в RFC 6052.
# prefix выбрать неиспользуемый /96 из диапазона адресов IPv6 вашего сайта, который будет использоваться в качестве префикса NAT64
# префикс для NAT64 (по умолчанию используется 64:ff9b::/96) заменить на префикс из  диапазон адресов вашего сайта
# можем использовать любой другой префикс, но в целом вам следует придерживаться этого 64:ff9b::/96
# Это должен быть префикс, выбранный из адресного пространства IPv6 вашей сети, или префикс 64:ff9b::/96.
# Обратите внимание, что использование префикса 64:ff9b::/96 запрещает узлам IPv6 связываться с узлами IPv4, имеющими частные (RFC1918) адреса, в соответствии с RFC 6052.
# не нужно указывать, если все необходимые сопоставления адресов перечислены в директивах map
prefix 64:ff9b::/96
#prefix 2001:db8:1:ffff::/96
#prefix 2b06:1301:4210:17eb::/96
#prefix 2b0e:8086:f:1::/96

# IPv6-адрес TAYGA
# Не является обязательным, если указан префикс NAT64
# Обязателен, если используется префикс NAT64 64:ff9b::/96, а ipv4-addr является частным (RFC1918) адресом.
# IPv6-адрес TAYGA требуется свой собственный адрес, а не адрес вашего маршрутизатора, потому что он действует как маршрутизатор IPv4 и IPv6 и должен иметь возможность отправлять сообщения ICMP(ping)
#ipv6-addr 2001:db8:feee::3


# блок неиспользуемых адресов IPv4 для пула динамических адресов. TAYGA назначит адреса IPv4 из этого пула хостам IPv6, которым требуется служба NAT64
# Динамический пул может быть выбран из частного адресного пространства IPv4 (10.xxx, 192.168.xx и т. д.) и может быть любого размера,
# хотя он должен быть достаточно большим, чтобы содержать один адрес IPv4 для каждого хоста IPv6, которому необходимо использовать NAT64.
# TAYGA также необходим собственный адрес IPv4, но его можно взять из динамического пула адресов
# действительны в течение 124 минут после обнаружения последнего соответствующего пакета.
dynamic-pool 192.168.255.0/24

# чтобы динамические карты адресов сохранялись между перезапусками TAYGA, каталог для хранения файла dynamic.map
data-dir /opt/var/db/tayga

# map Устанавливает карту связи с одним хостом. Если хост IPv6 должен быть постоянно доступен по определенному адресу IPv4,
# добавьте директиву map для данного хоста. Хосты IPv6, с адресом, преобразуемым в IPv4, не нуждаются в данной директиве.
# IPv4-адреса, указанные в директиве `map’, могут без конфликтов использовать адреса из указанного диапазона динамического пула.


# IPv6 ::  128(бит) = IPv4 0.0.0.0
# IPv6 ::1 128(бит) = IPv4 127.0.0.0/8 localhost
# Формат: 0000:0000:0000:0000:0000:0000:0000:0001 (сокращенно ::1) Маска подсети: /128
# IPv6 ::xx.xx.xx.xx 96(бит) = Нижние 32 бита это адрес IPv4.
# IPv6 ::ffff:..xx.xx.xx.xx 96(бит) = Нижние 32 бита это адрес IPv4.
# IPv6 64:ff9b:: 96(бит) = Зарезервирован для доступа из подсети IPv6 к публичной сети IPv4 через механизм трансляции NAT64
# IPv6 2001:: 32(бит) = Зарезервирован для туннелей Teredo
# IPv6 2001:db8:: 32(бит) = Зарезервирован для примеров в документации
# IPv6 2002:: 16(бит) Зарезервирован для туннелей 6to4
# IPv6 fe80:: — febf::<>10(бит)>link-local = Аналог 169.254.0.0/16 в IPv4
# IPv6 fec0:: — feff:: 10(бит) site-local = устаревший Аналог внутренних сетей 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16
# IPv6 fc00:: 7(бит) Unique Local Unicast = Аналог внутренних сетей 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16
# IPv6 ff00:: 8(бит) Multicast

Пример какой софт используется
Для того, чтобы организовать вашу собственную сеть, которая использует только IPv6 протокол, нам необходимо обеспечить:

преобразование записей DNS для IPv4 (типа A) в записи для IPv6 (AAAA);
трансляцию адресов из IPv4 в IPv6 (NAT64):
рассылку анонсов маршрутизатора в LAN.
Обеспечить преобразование записей DNS можно с помощью:

Bind 9;
Unbound;
публичных DNS64 серверов, но при этом имеются ограничения на варианты настройки и места размещения NAT64.
Трансляцию адресов NAT64 могут обеспечить:

Jool;
TAYGA.
TAYGA проще в установке, но при этом могут возникнуть проблемы с производительностью при большом количестве соединений. Jool требует установку модуля ядра, но при этом имеет хорошую производительность.

Рассылку объявлений маршрутизатора можно выполнить, например, с помощью сервиса radvd.
Более подробно в 3 сообщении ниже
количество слов: 1200
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

TAYGA Настройка NAT64 IPv6

Сообщение Артём Мамзиков »

ПРИМЕР НАСТРОЙКИ Источник

Настройка NAT64 на Debian с использованием unbound и TAYGA

Некоторые из моих сетей настроены только для IPv6. Это приводит к серьезной проблеме: совместимости. Многие службы все еще работают только с IPv4. С помощью сети только с IPv6 вы не можете получить доступ ни к одной из них изначально. С другой стороны, сеть только с IPv6 снижает общую сложность, когда дело доходит до администрирования.

Все мои хосты поддерживают как минимум IPv6. Большинству из них не требуется адрес IPv4. Только несколько, например, устройства IoT или публичные серверы, такие как почта или обратный прокси, (также) доступны по IPv4.

Стандартные исходные пакеты Debian доступны через IPv6. Поэтому мы можем легко устанавливать и обновлять пакеты из официальных источников. К сожалению, некоторые хосты требуют сторонних источников пакетов или исходящих соединений IPv4. Хорошим примером этого является WordPress. Виртуальная машина, на которой размещен мой блог, доступна только через IPv6. Обратный прокси-сервер обеспечивает доступность через IPv4. Сам WordPress отлично работает в этой настройке. Но wordpress.org недоступен через IPv6. Это означает, что проверки обновлений и каталог плагинов недоступны.

Для решения этой проблемы мы можем использовать NAT64. Это позволяет кодировать IPv4-адрес в IPv6-адрес. Маршрутизатор обрабатывает процесс преобразования из IPv6 в IPv4 и IPv4 NAT.

Как это работает?
Нам нужен специальный префикс для трансляции. Известный префикс для NAT64 — 64:ff9b::/96. Мы можем использовать любой другой префикс, но в целом вам следует придерживаться этого. Предположим, мы хотим достичь 8.8.8.8 через NAT64. Использование IPv4 в качестве суффикса сделает эту работу: 64:ff9b::8.8.8.8. Конечно, IPv6 обычно закодирован в шестнадцатеричном формате, но такой синтаксис разрешен. Как только шлюз увидит адрес, содержащий настроенный префикс NAT64, он начнет трансляцию в IPv4. В этой статье я собираюсь использовать TAYGA для трансляции.

Хосты, поддерживающие только IPv6, не будут выполнять эту трансляцию самостоятельно. Вместо этого DNS-сервер должен ответить на запрос AAAA соответствующим адресом NAT64 (если для запрашиваемого домена нет доступного адреса IPv6). DNS-серверы не будут делать этого из коробки, поскольку префикс NAT64 может меняться, а предпочтение NAT64 вместо собственного IPv4 может вызвать проблемы с производительностью. Я собираюсь настроить выделенный DNS64 с помощью unbound.

Существуют публичные DNS64-серверы. Google предлагает службу DNS64, которую вы можете использовать. По состоянию на 2022 год github.com по-прежнему поддерживает только IPv4. Запрос записей AAAA вернет пустой результат. Использование одного из DNS64-серверов Google даст нам 64:ff9b::8c52:7903.

Ограничения
При использовании публичной службы DNS64 вы не сможете достичь хостов в частных сетях. Известный префикс запрещен в RFC 6052 для достижения частных сетей. Таким образом, вам нужно будет указать пользовательский префикс.

Некоторые библиотеки или инструменты могут вообще не поддерживать IPv6. NAT64 работает только если ваш хост полностью совместим с IPv6. Поскольку NAT64 использует адрес IPv6, ваше приложение должно понимать IPv6. Пример: если curl не будет готов к IPv6, NAT64 не исправит мои проблемы с WordPress.

NAT64 — это NAT. NAT сложен и часто вызывает проблемы с такими протоколами, как SIP. NAT64 увеличивает сложность и может вызвать дополнительные проблемы. Использование NAT64 сочетает недостатки IPv4 и IPv6: отсутствие глобально маршрутизируемых адресов, что приводит к несовместимости.

Настроить DNS
Этот шаг необязателен и требуется только в том случае, если вы хотите настроить свой собственный сервер DNS64. Сначала установите unbound:

Код: Выделить всё

apt install unbound
Обязательно настройте поставщика DNS верхнего уровня в

Код: Выделить всё

mcedit /etc/unbound/unbound.conf.d/forward-zones.conf

Код: Выделить всё

forward-zone:
   name: "."
   forward-addr: 2001:4860:4860::8888
   forward-addr: 2001:4860:4860::8844
   forward-addr: 8.8.8.8
   forward-addr: 8.8.4.4
После этого измените

Код: Выделить всё

mcedit /etc/unbound/unbound.conf
Убедитесь, что строка module-config содержит dns64:

Код: Выделить всё

module-config: "dns64 validator iterator"
Вы также можете задать префикс dns64:

Код: Выделить всё

dns64-prefix: 64:ff9b::/96
Весь файл может выглядеть так:

Код: Выделить всё

include: "/etc/unbound/unbound.conf.d/*.conf"
 server:
   module-config: "dns64 validator iterator"
   interface: 2001:67c:2924:141:d64::20
   access-control: ::0/0 refuse
   access-control: 2001:67c:2924::/48 allow
   dns64-prefix: 64:ff9b::/96
Не забудьте настроить интерфейс и контроль доступа .

После перезапуска unbound systemctl restart unbound вы сможете отправлять запросы на ваш сервер DNS64:

Код: Выделить всё

dig github.com AAAA @2001:67c:2924:141:d64::20 
; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> github.com AAAA @2001:67c:2924:141:d64::20
;; глобальные параметры: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9012
;; флаги: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; РАЗДЕЛ ВОПРОСОВ:
;github.com. В AAAA
;; РАЗДЕЛ ОТВЕТОВ:
github.com. 59 В AAAA 64:ff9b::8c52:7903
;; Время запроса: 61 мсек
;; СЕРВЕР: 2001:67c:2924:141:d64::20#53(2001:67c:2924:141:d64::20)
;; КОГДА: Сб Апр 24 23:23:14 CEST 2021
;; РАЗМЕР СООБЩЕНИЯ получено: 67


Настройка ТАЙГА
TAYGA преобразует адрес IPv6, возвращаемый сервером DNS64, в IPv4. Поскольку хост будет действовать как маршрутизатор, вам необходимо включить пересылку:

Код: Выделить всё

sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
Продолжайте установку TAYGA:

Код: Выделить всё

apt install tayga
Настройте следующим образом:

Код: Выделить всё

mcedit /etc/tayga.conf 

Код: Выделить всё

tun-device nat64 
# IPv4-адрес TAYGA 
ipv4-addr 192.168.255.1 
# IPv6-адрес TAYGA 
ipv6-addr fd67:c166:c737:ea24::1 
# Префикс NAT64. 
prefix 64:ff9b::/96 
# Префикс динамического пула. 
dynamic-pool 192.168.255.0/24 
# Каталог постоянного хранения данных 
data-dir /var/spool/tayga
Перезапустите TAYGA и запустите при загрузке:

Код: Выделить всё

systemctl restart tayga
systemctl enable tayga
После этого обязательно укажите маршрут для 64:ff9b::/96 на маршрутизаторе TAYGA.
Наконец, настройте iptables для NAT4:

Код: Выделить всё

iptables -t nat -A POSTROUTING -o nat64 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -j MASQUERADE
Готово. Теперь вы должны иметь возможность подключаться к хостам только IPv4 через IPv6. Вы можете проверить свою настройку следующим образом:

Код: Выделить всё

ping -6 github.com
Безопасность
Не забудьте реализовать брандмауэр. Убедитесь, что ваш хост TAYGA доступен только с авторизованных хостов, и запретите доступ IPv4 нежелательным хостам или службам.
количество слов: 387
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

TAYGA Настройка NAT64 IPv6

Сообщение Артём Мамзиков »

ПРИМЕР НАСТРОЙКИ Источник tavda.net nat64-dns64

Сеть IPv6 с доступом к IPv4 (NAT64+DNS64)
О чём эта заметка
Во время перехода интернета с IPv4 на IPv6 необходимо как-то обеспечить работу сети с учётом сервисов, которые работают только по IPv4. Можно использовать дуалстэк, т.е. использовать внутри сети IPv4 и IPv6 адресации. Схема рабочая, но приводит к необходимости настраивать два протокола вместо одного, что в больших сетях может заметно добавить работы сетевым администраторам. При этом для внешних адресов IPv4, скорее всего, будет использован NAT.

Ещё один вариант перехода на IPv6 — это использовать в сети адресацию только IPv6. Все внутренние сервисы переводятся на него, а для доступа к внешним ресурсам IPv4 применяется трансляция NAT64. Схема работы незначительно отличается от первого варианта. Также используется NAT, хотя и другого типа, но при этом отпадает необходимость в настройке IPv4 во внутренней сети.

Нам необходимо как-то заставить приложения обращаться к некоторому виртуальному IPv6 адресу, который посредством NAT64 будет преобразован в IPv4 адрес. Самое простое, что можно сделать - изменить ответы DNS так, что при запросе записей типа A будут возвращаться также записи типа AAAA. Они должны указывать на адрес сервиса NAT64, который будет получать запросы и транслировать их в сеть IPv4.

Ограничения подобной схемы:
1. При обращении по IPv4 адресу непосредственно, возникнет ошибка, т.к. протокол IPv4 не поддерживается сетевым интерфейсом хоста. У этой проблемы есть несколько решений, одно из которых установка специального сервиса непосредственно на клиентской машине, который преобразует запросы к адресам IPv4 в IPv6 по той же схеме, что используется в DNS64. Подробнее об этом читайте ниже.
2. Если домен использует DNSSEC и не имеет записей AAAA, то наши «фейковые» AAAA записи не будут иметь корректной цифровой подписи. Это не очень критично, потому что узлов с DNSSEC и без записей AAAA (для которых будут создаваться фейковые AAAA записи) крайне мало. Если вы используете DNSSEC то вы должны обратить на это внимание и протестировать все необходимые вам внешние сервисы только с IPv4 и убедиться, что они не используют DNSSEC.

История решения задачи
Первые тесты с DNS64 и NAT64 я выполнял ещё в декабре 2022 года. При этом был использован стенд из трёх виртуальных машин на базе Virtualbox, две из которых выступали в качестве клиентов на базе Fedora 37 и Ubuntu 22.04 LTS. В качестве шлюза был использован Ubuntu 22.04 LTS. Всё необходимое ПО доступно из репозиториев, доступных в базовой поставке систем.

Сервер имеет два сетевых интерфейса, один из которых подключен к локальной сети, а второй к внутренней сети VirtualBox. Клиентские машины подключались только ко внутренней сети. Поскольку имеющийся маршрутизатор не позволял использовать выданную IPv6 адресацию от провайдера, то в качестве поставщика IPv6 использовался туннельный брокер с подключением через Wireguard. При таком подключении можно использовать как подключение виртуальной машины по умолчанию с использованием NAT, так и режим моста с сетевым интерфейсом реальной машины.

В дальнейшем я перешёл на тестирование на реальном железе. Сделать это мне позволил маршрутизатор с OpenWRT, который имеет все необходимые пакеты, чтобы обеспечить вашу сеть как режимом дуалсэк, так и полностью перевести её на IPv6.


Какой софт понадобится?
Для того, чтобы организовать вашу собственную сеть, которая использует только IPv6 протокол, нам необходимо обеспечить:
1. преобразование записей DNS для IPv4 (типа A) в записи для IPv6 (AAAA);
2. трансляцию адресов из IPv4 в IPv6 (NAT64):
3. рассылку анонсов маршрутизатора в LAN.

Обеспечить преобразование записей DNS можно с помощью:
Bind 9;
Unbound;
публичных DNS64 серверов, но при этом имеются ограничения на варианты настройки и места размещения NAT64.

Трансляцию адресов NAT64 могут обеспечить:
Jool;
TAYGA.
TAYGA проще в установке, но при этом могут возникнуть проблемы с производительностью при большом количестве соединений. Jool требует установку модуля ядра, но при этом имеет хорошую производительность.

Рассылку объявлений маршрутизатора можно выполнить, например, с помощью сервиса radvd.


Подготовка к установке
Первое, что необходимо сделать, определиться с адресацией IPv6, которая будет использована для для механизма трансляции. Этот префикс необходимы выбирать исходя из адресации вашей сети. В качестве диапазона может быть использован глобально уникальный диапазон адресов или локально уникальный или префикс 64:ff9b::/96. Обратите внимание, что использование префикса 64:ff9b::/96 запрещает узлам IPv6 связываться с узлами IPv4, имеющими частные (RFC1918) адреса, в соответствии с RFC 6052. Глобально уникальный диапазон адресов позволит пользоваться вашим сервисом даже за пределами вашей сети или сделать его доступным для других пользователей сети Internet. Остальное доступно только в пределах локальной сети при настройке соответствующей маршрутизации.

В дальнейшем я буду использовать диапазон 64:ff9b::/96.

Я пользуюсь провайдером «Ростелеком» который выделяет мне сеть /56. Однако префикс этой сети динамический, т.к. меняется периодически, арендованный маршрутизатор не умеет выдавать доступные мне подсети. Поэтому, для эксперимента я использовал туннельного брокера, который мне выделяет постоянную сеть /48. Позднее я заменил маршрутизатор, а старый использовал в режиме моста, что позволило мне по полной задействовать выданную мне провайдером сеть.

Выделим диапазон для нашей сети, которая будет пользоваться сервисами NAT64 и DNS64. Я буду использовать 2001:db8:feee:1::/64.

Внешний адрес сервера, который будет выполнять функции NAT64 будет 2001:db8:feee::2. Доступ в интернет он будет иметь через IPv4 10.0.2.15 (в моём случае это был VirtualBox с NAT).

В качестве DNS64 сервера можно выбрать как публичные DNS64, так и настроить собственный на базе Unbound или Bind. В качестве транслятора NAT64 можно выбрать Tayga или Jool. В дальнейшем приведены примеры настройки для всех пакетов, но на реальной машине понадобится только один для каждой функции.


Публичные DNS64 серверы
Если вы выбрали использовать диапазон 64:ff9b::/96, то вы можете обойтись без настройки сервера Bind и воспользоваться публичными DNS64 серверами. Их предоставляют, например, Google и Cloudflare. По сути это те же сервисы Google DNS и Cloudflare DNS, но для адресов, которые не имеют записей AAAA эти DNS предоставляют адрес из диапазона 64:ff9b::/96.

Адреса серверов Google DNS64:
2001:4860:4860::6464
2001:4860:4860::64
Адреса серверов Cloudflare DNS64:
2606:4700:4700::64
2606:4700:4700::6400
Оба сервиса поддерживают работу через безопасный транспорт DNSoverTLS и DNSoverHTTP. Google использует для этих служб сертификат домена dns64.dns.google.


Настройка Unbound (DNS64)
Необходимо включить модуль dns64 с помощью директивы module-config и указанию префикса, который будет использован с помощью dns64-prefix. Не забываем разрешить доступ к серверу с других хостов (interface) путём указания адресов или имён интерфейсов. Также необходимо указать пул адресов, для которого будет доступен сервер (access-control), например, для всех через IPv6 (::/0)

Можно просто создать файл в папке /etc/unbound/unbound.conf.d/, например, с именем dns64.conf и разместить в нём следующую информацию:

Код: Выделить всё

server:
    module-config: "dns64 validator iterator"
    dns64-prefix: 64:ff9b::/96
    interface: enp0s8
    interface: ::1
    access-control: ::/0 allow
Обратите внимание, что по умолчанию на сервере включены модули subnet, validator и iterator. При подобной конфигурации модуль subnet будет отключен.

В качестве интерфейсов указан сетевой интерфейс, который смотрит в локальную сеть и петлевой интерфейс ::1 для локальных подключений.

Код: Выделить всё

# nslookup 
> server ::1
Default server: ::1
Address: ::1#53
> habr.com
Server:  ::1
Address: ::1#53

Non-authoritative answer:
Name: habr.com
Address: 178.248.237.68
Name: habr.com
Address: 64:ff9b::b2f8:ed44
Сочетание опций interface и access-control может быть изменено в зависимости от ваших предпочтений и исходя из конфигурации вашей реальной сети. Они влияют только на доступность сервера, но не на механизм DNS64.


Настройка Bind 9 (DNS64)
Настройку можно начать с DNS. Bind 9 начиная с версии 9.8 позволяет использовать специальную опцию dns64, которую необходимо разместить в секции options:

Код: Выделить всё

options {
...
    dns64 64:ff9b::/96 {
        suffix ::;
        clients { any; };
        mapped { any; };
    };
};
Перезапускаем службу named. Теперь ответ от DNS сервера должен запись AAAA, которая указывает на адрес из выбранного диапазона. Проверим любой адрес, который не имеет записей AAAA в DNS, например, habr.com:

Код: Выделить всё

# nslookup
> habr.com
Server:  127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: habr.com
Address: 178.248.237.68
Name: habr.com
Address: 64:ff9b::b2f8:ed44
>
При этом, если мы запрашиваем адрес, который уже имеет записи AAAA, то ответ не модифицируется:

Код: Выделить всё

> tavda.info
Server:  127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: tavda.info
Address: 89.208.105.251
Name: tavda.info
Address: 2a0e:d602:1:f8::a

Настройка radvd
Настроим radvd для анонсов маршрутизатора. Используем выбранную сеть 2001:db8:feee:1::/64. В качестве DNS сервера будем предлагать 2001:db8:feee::2 - адрес нашего сервера-маршрутизатора.

Код: Выделить всё

interface enp0s8
{
    AdvSendAdvert on;
    MinRtrAdvInterval 30;
    MaxRtrAdvInterval 100;
    prefix 2001:db8:feee:1::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr off;
    };
    RDNSS 2001:db8:feee::2 {
    };
};

Включение маршрутизации
Для включения маршрутизации необходимо включить передачу пакетов через хост через sysctl. В Ubuntu можно просто создать файл

Код: Выделить всё

mcedit /etc/sysctl.d/99-route.conf

Код: Выделить всё

net.ipv6.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
После создания выполните sysctl --system или перезапустите систему. После этого ваш сервер сможет маршрутизировать пакеты IPv4 и IPv6.


Настройка TAYGA (NAT64)
Файл конфигурации TAYGA в Ubuntu расположен по пути /etc/tayga.conf. В нём необходимо выделить адреса IPv4 и IPv6, которые не будут совпадать с адресами хоста, а также пул адресов IPv4, который будет использован при трансляции:

Код: Выделить всё

tun-device nat64
ipv4-addr 10.0.2.129
ipv6-addr 2001:db8:feee::3
prefix 64:ff9b::/96
dynamic-pool 10.0.2.128/25
data-dir /var/spool/tayga
Наиболее значимые опции, которые необходимо изменить под свою сеть:

ipv4-addr - адрес маршрутизатора TAYGA. Необходимо использовать отдельный адрес, отличный от IP адреса, который используется на маршрутизаторе с этим пакетом. Этот адрес можно разместить внутри dynamic-pool.
ipv6-addr - необходим только при использовании диапазона 64:ff9b::/96 в качестве prefix и если ipv4-addr является частным адресом.
prefix - используемый IPv6 префикс для трансляции IPv6 в IPv4.
dynamic-pool - пул адресов IPv4, который выдаётся клиентам IPv6, если они их нет в статической карте.
Подробнее смотрите в переводе комментариев из файла конфигурации TAYGA.
Описание файла конфигурации
Показать
tun-device Обязательный параметр.
Устройство TUN, которое TAYGA будет использовать для обмена пакетами IPv4 и IPv6 с ядром. Можно использовать любое имя, но рекомендуется nat64.
Это устройство можно создать перед запуском демона tayga, запустив tayga --mktun. Это позволяет настроить правила маршрутизации и брандмауэра до начала преобразования пакетов.


ipv4-addr Обязательный параметр.
IPv4-адрес TAYGA. Он не является IPv4-адресам вашего маршрутизатора! Для TAYGA требуется свой собственный адрес, потому что он действует как маршрутизатор IPv4 и IPv6 и должен иметь возможность отправлять сообщения ICMP. TAYGA также будет отвечать на эхо-запросы ICMP (ping) по этому адресу.
Этот адрес может находиться в пределах выделенного для TAYGA динамического пула адресов.


ipv6-addr Параметр не обязательным, если указан префикс NAT64. Параметр, также, обязателен, если используется префикс NAT64 64:ff9b::/96, а ipv4-addr является частным (RFC1918) адресом.

IPv6-адрес TAYGA. Этот адрес не является IPv6-адрес вашего маршрутизатора! TAYGA требует свой собственный адрес, потому что он действует как маршрутизатор IPv4 и IPv6 и должен иметь возможность отправлять сообщения ICMP. TAYGA также будет отвечать на эхо-запросы ICMP (ping6) по этому адресу.

Если ipv6-addr не указан, то TAYGA создаст свой IPv6-адрес, используя ipv4-addr и префикс NAT64.


prefix
Префикс NAT64. Адресное пространство IPv4 отображается в адресное пространство IPv6 путем добавления этого префикса к адресу IPv4.
В большинстве случаев рекомендуется использовать префикс /96, но поддерживаются все длины, указанные в RFC 6052.

Это должен быть префикс, выбранный из адресного пространства IPv6 вашей сети, или префикс 64:ff9b::/96. Обратите внимание, что использование префикса 64:ff9b::/96 запрещает узлам IPv6 связываться с узлами IPv4, имеющими частные (RFC1918) адреса, в соответствии с RFC 6052.

Префикс NAT64 не нужно указывать, если все необходимые сопоставления адресов перечислены в директивах `map’. (Смотри ниже.)


dynamic-pool
Префикс динамического пула. Хостам IPv6, отправляющим трафик через TAYGA (и не соответствующим статической карте или IPv4-транслируемому адресу в префиксе NAT64), будет назначен IPv4-адрес из динамического пула. Динамические карты действительны в течение 124 минут после обнаружения последнего соответствующего пакета.

Если в динамическом пуле не осталось свободных адресов (или динамический пул не настроен), пакеты от неизвестных хостов IPv6 будут отклоняться с ошибкой ICMP unreachable.

data-dir
Каталог постоянного хранения данных. В этом каталоге хранится файл dynamic.map, в котором сохраняются динамические карты, созданные из динамического пула. Можно не указывать, если вам не нужно, чтобы эти карты сохранялись между перезапусками TAYGA.

map
Устанавливает карту связи с одним хостом. Если хост IPv6 должен быть постоянно доступен по определенному адресу IPv4, добавьте директиву map для данного хоста. Хосты IPv6, с адресом, преобразуемым в IPv4, не нуждаются в данной директиве.

IPv4-адреса, указанные в директиве `map’, могут без конфликтов использовать адреса из указанного диапазона динамического пула.

Настройка Jool (NAT64)
Ещё одним вариантом трансляции адресов является Jool. Он работает на уровне ядра, поэтому должен показывать большую производительность. На ОС Ubuntu начиная с 20.04 LTS и более поздних установить его можно с помощью команды

Код: Выделить всё

apt install jool-dkms jool-tools
При этом будет установлена не самая свежая версия пакета. Можно воспользоваться репозиторием или собрать исходный код самостоятельно. Подробнее об этом можно почитать на сайте Jool. Однако версии, поставляемой с Ubuntu 22.04 LTS будет вполне достаточно для дальнейшего использования.

Запустить трансляцию адресов NAT64 вручную можно с помощью команды

Код: Выделить всё

jool instance add "nat64" --netfilter --pool6 64:ff9b::/96
Здесь также указан диапазон 64:ff9b::/96, который можно заменить любым другим желаемым.

Остановка трансляции:

Код: Выделить всё

jool instance remove "nat64"
Для обеспечения автоматического запуска можно использовать юнит systemd. Для этого необходимо создать файл конфигурации формата JSON по адресу

Код: Выделить всё

mcedit /etc/jool/jool.conf

Код: Выделить всё

{
    "comment": "Configuration for the systemd NAT64 Jool service.",
    "instance": "nat64",
    "framework": "netfilter",
    "global": {
        "comment": "Pool6 prefix",
        "pool6": "64:ff9b::/96"
    }
}
После этого можно активировать и запустить юнит:

Код: Выделить всё

systemd enable --now jool

Использование DNS64 и NAT64 на реальном железе
Самое интересное исследование мне удалось провести только после приобретения маршрутизатора, на который можно установить OpenWRT. В своей базовой поставке он вполне может обеспечить вашу сеть дуалстэком. И это первое, что вам нужно сделать. Дальнейшие модификации не повлияют на вашу сеть до тех пор, пока вы не отключите выделение IPv4 адреса. Тестировать работу режима только IPv6 вы сможете на любом вашем устройстве, которое позволяет отключить получение IPv4 адреса.

Т.к. OpenWRT базируется на ядре Linux, то в качестве NAT64 можно использовать ранее упомянутый Jool:

Код: Выделить всё

opkg update

Код: Выделить всё

opkg install jool-tools-netfilter
Все настройки Jool находятся в папке /etc/jool/. Настройки, которые касаются NAT64, расположены в файле jool-nat64.conf.json. Изначально в нём содержится пример конфигурации. Можно заменить его самым простым вариантом, например:

Код: Выделить всё

cat << EOF > /etc/jool/jool-nat64.conf.json
{ "instance": "default", \
"framework": "netfilter", \
"global": { "pool6": "64:ff9b::/96" } }
EOF
Далее необходимо активировать Jool:

Код: Выделить всё

uci set jool.general.enabled="1"
uci set jool.nat64.enabled="1"
uci commit jool
/etc/init.d/jool restart
После этого можно проверить на клиенте, что все настройки произведены, например, так

Код: Выделить всё

ping 64:ff9b::8.8.8.8
Вы должны получить ответ от сервера 8.8.8.8. Можно использовать любой другой IP, который точно доступен и отвечает вашему маршрутизатору.

Теперь можно подключить DNS64 сервер и отключить IPv4 на клиенте. Я использовал DNS64 от Google. Естественно, для NAT64 был использован диапазон 64:ff9b::/96. Именно его подсказывает интерфейс LuCI на OpenWRT, а также он приведён в примере конфигурации. Другие устройства в сети имели доступ в интернет по обоим протоколам.


Что делать если приложению требуется IPv4
Решить эту проблему можно только непосредственно на клиенте. Для этого можно использовать компонент clatd. Он использует TAYGA при своей работе. Настраивать этот компонент почти не придётся. Достаточно прописать одну строку, где указать используемый в нашей сети префикс для трансляции NAT64. В файле добавим строку:

Код: Выделить всё

mcedit /etc/clatd.conf 

Код: Выделить всё

plat-prefix=64:ff9b::/96
После этого можно запустить сервис. После его запуска можно увидеть, что появился новый сетевой интерфейс clat. ...
3: clat: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
link/none
inet 192.0.0.1/32 scope global clat
valid_lft forever preferred_lft forever
inet6 fe80::8617:661d:4056:8be3/64 scope link stable-privacy
valid_lft forever preferred_lft forever
Теперь приложения, которые не используют DNS64 или обращаются в сеть по протоколу IPv4 смогут пользоваться интернет.


Вывод по результатам тестирования
С чем могут быть проблемы? Во-первых, это те программы, которые опираются на IPv4 адреса. Ранее были проблемы с запуском Steam, но новые версии уже не жалуются на недоступность сети.

Вторая явная проблема, которую я смог выявить уже на реальном железе: если у вас нет IPv4, то вам становятся недоступны пиры IPv4 по протоколу BitTorrent. Это не означает, что вам полностью закрыт доступ к торрентам, но это ограничивает вас только IPv6 пирами. Т.е. не стоит обрезать доступ к IPv4 вашему торрент клиенту. Если вы не можете использовать IPv4 совсем, то вы вполне можете воспользоваться сервисом clatd на своей машине. В Linux его нужно устанавливать и запускать. Слышал о том, что в MacOS он включается автоматически, если вы имеете доступ в сеть только IPv6. Для Windows решений пока не искал.

Третья проблема — кривые сайты. Как ни странно, но первый кривой сайт, с которым я столкнулся, был speedtest.net. Проблема в том, что он содержит AAAA записи в DNS, но по ним недоступен. При этом www.speedtest.net имеет только A записи и даже пытается загрузиться. Но, при этом, подгружает ресурсы со своих поддоменов, где тоже есть проблема с загрузкой по IPv6. Как результат, поехавшая вёрстка и полная неработоспособность сервиса. Если вы используете дуалстэк, то ваш браузер перейдёт на IPv4 и, единственно, что вас будет беспокоить, лёгкий дискомфорт, что сайт грузится медленно. Опять таки clatd вам поможет, поскольку позволит браузеру использовать Fallback режим, когда он обращается к IPv4, если сайт недоступен через IPv6.


Заключение
Уже в текущих условиях можно пользоваться исключительно IPv6 сетью на клиентских устройствах и иметь доступ практически ко всему, но при этом ваша сеть должна быть настроена должным образом.

Проблемы есть, и они незначительные. Корпоративные сети могут без проблем строиться исключительно на IPv6, что, даже, может добавить безопасности. К тому же всегда можно организовать островок IPv4 и через него организовывать доступ к нужным ресурсам по сети IPv6. Дома использовать только IPv6 может быть дискомфортно, особенно если вы любите качать торренты или играть в Steam игры (но это, возможно, уже решено), поэтому лучшим решением будет дуалстэк.
количество слов: 831
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

TAYGA Настройка NAT64 IPv6

Сообщение Артём Мамзиков »

О работе IPv6

192.168.1.0/24, маска 255.255.255.0
255.255.0.0, так и 255.255.255.0, или даже 255.255.255.192, то для сетей IPv6 смело выбирайте /64
IPv6, адрес, например, 2001:DB8::1/64
IPv6 не использует NAT

устройство теперь может иметь не один IP адрес, а сразу несколько

например, 2001:DB8:0:0:0:0:0:1 записан как 2001:DB8::1
Локальные и домашние адреса ip
В IPv6 для link-local fe80::/10 , реально в сетях используется стандартный /64
fe80::1%ens3, где ens3 — имя сетевого интерфейса
В Windows fe80::1%3
специально выделенный диапазон fd00::/8 а вместе они представляют префикс fc00::/7
IPv6 по умолчанию автоматически генерирует сеть fdXX:XXXX:XXXX::/48
например, fd12::1. Первая часть адреса fd12:0:0:0: — это выбранная вами сеть (идентификатор сети),
0:0:0:1 — адрес узла внутри сети /64 (идентификатор интерфейса).
диапазона fdXX:, то ваше устройство может общаться по сети не только с соседями,
но ещё и через маршрутизаторы вашей локальной сети.
IPv6 :: 128(бит) = IPv4 0.0.0.0
IPv6 ::1 128(бит) = IPv4 127.0.0.0/8 localhost
Формат: 0000:0000:0000:0000:0000:0000:0000:0001 (сокращенно ::1) Маска подсети: /128
IPv6 ::xx.xx.xx.xx 96(бит) = Нижние 32 бита это адрес IPv4.
IPv6 ::ffff:​xx.xx.xx.xx 96(бит) = Нижние 32 бита это адрес IPv4.
IPv6 64:ff9b:: 96(бит) = Зарезервирован для доступа из подсети IPv6 к публичной сети IPv4 через механизм трансляции NAT64
IPv6 2001:: 32(бит) = Зарезервирован для туннелей Teredo
IPv6 2001:db8:: 32(бит) = Зарезервирован для примеров в документации
IPv6 2002:: 16(бит) Зарезервирован для туннелей 6to4
IPv6 fe80:: — febf:: 10(бит) link-local = Аналог 169.254.0.0/16 в IPv4
IPv6 fec0:: — feff:: 10(бит) site-local = устаревший Аналог внутренних сетей 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16
IPv6 fc00:: 7(бит) Unique Local Unicast = Аналог внутренних сетей 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16
IPv6 ff00:: 8(бит) Multicast


DHCP в IPv6 сеть нуждается в ULA адресах - Unique local address(Частные индивидуальные адреса)
маршрутизатор рассылает уведомления рабочим станциям с какими сетями он работает, а также дополнительную информацию, например, адреса DNS серверов. Также маршрутизатор может отправить эти данные по запросу клиентов.
Таким образом, как только в сети появляется маршрутизатор, он рассылает всем клиентам всю необходимую информацию.
Устройства, получив анонс, могут автоматически сформировать свой уникальный адрес по определённым алгоритмам
и настроить свои сетевые интерфейсы. Этот механизм называется SLAAC

DHCP в IPv6 обратиться к DHCP серверу:
за IPv6 адресом;
за дополнительными параметрами.
без DHCPv6 сеть IPv6 способна работать просто при наличии маршрутизатора.

Глобальные индивидуальные адреса IPv6 (GUA-Global Unique Address)
не отличаются от ULA, за одним главным исключением — пакеты с адресами GUA маршрутизируются в интернете.
вы получаете свой блок от вашего провайдера
рекомендуется выделять сеть не менее /56 (т.е. вы получаете 256 сетей /64),
что несколько меньше первой рекомендации /48 (65536 сетей /64).
Особо жадные провайдеры могут выделять только одну сеть /64.
Но есть и те, кто щедро выделяет максимально сеть /48.

Размер сети:

/64: Одна подсеть с 64 битами для узлов, что обеспечивает огромное количество адресов для устройств в одной подсети.
/48: Одна сеть с 48 битами для сетей, оставляющая больше пространства для создания дополнительных подсетей.
Количество подсетей:

/64: Предназначен для конечных узлов, таких как домашние или офисные сети.
/48: Позволяет создавать множество подсетей /64 в рамках одной большой сети, что удобно для крупных организаций или провайдеров.
Тип использования:

/64: Обычно используется для конечных подсетей. 18,446,744,073,709,551,616) адресов
/48: Используется для крупного разбиения сети, позволяя управлять большим количеством подсетей. 1,208,925,819,614,629,174,706,176) адресов


GUA — это уже третий адрес, который может быть присвоен вашему сетевому интерфейсу наряду с link-local и ULA.

Префикс сети, это ничто иное, как первые 64 бита адреса IPv6
Получив его, каждый узел сможет сформировать свой уникальный IPv6 адрес
EUI-64 обычный MAC-адрес, который преобразовали из 48 до 64 бит
эта модификация. Да просто потому, что простые адреса вроде ::1, ::2 и прочие могли бы случайно совпасть с MAC-адресом,
который был присвоен какому-либо устройству легально. Благодаря модификации MAC-адрес,
соответствующий этим адресам однозначно говорит о ручном назначении MAC-адреса. Инженеры просто перестраховались.
EUI-64 вполне хороший вариант для link-local адресов, потому что он обеспечивает гарантированно уникальный адрес в сети,
потому что MAC-адреса уникальны в каждом канале

Светить MAC-адресом в составе публичных IP не очень хорошая идея.
Поэтому большинство операционных систем теперь используют случайную генерацию IPv6 адреса

ULA и GUA. Эти два адреса выглядят совершенно различно. Один из адресов позволяет маршрутизировать пакеты внутри вашей сети,
как это ранее вы делали в сетях, например, 10.0.0.0/8 или 192.168.0.0/16,
а второй позволяет вашему устройству пользоваться сетью интернет.

если у вас пропадёт соединение с интернетом, ваш маршрутизатор оповестит все устройства о том, что GUA больше недоступен
и ваши устройства продолжат общаться используя ULA адреса или даже link-local

fd23:f1a9::12 и 2001:0db8:2023:0910::12). Это означает, что вам в сети /64 был выдан адрес 12

получить случайный временный IPv6 адрес из доступных вам префиксов и использовать именно его.
узел динамически формирует случайный IPv6 адрес из выданного маршрутизатором диапазона и пользуется им для всех исходящих соединений.
Но тут есть одна проблема. Ваше устройство может соединиться и постоянно использовать соединение.
При этом оно имеет право изменить свой IPv6 адрес. Для этого старые IPv6 адреса оно помечает как deprecated.
Когда все соединения с использованием этого адреса будут закрыты, адрес может быть удалён с сетевого интерфейса.

Когда вы получаете конфиденциальные адреса, то ранее полученные вами адреса также продолжают работать.
С их помощью вы можете предоставлять другим узлам свои услуги, например, общие папки, принтеры или даже веб-сервер.
Постоянные IP адреса удобны тем, что их легко можно прописать в правилах вашего брандмауэра и, например, разрешить доступ
к нужным сервисам, например, из интернет.
А конфиденциальные адреса обеспечивают вашу приватность при работе с сетью интернет



преобразует ваш внутренний адрес IPv4 в другой внешний адрес
для NAT64 стандартный диапазон 64:ff9b::/96, тогда вы даже можете использовать публичные сервисы DNS64
Адреса серверов Google DNS64:

2001:4860:4860::6464

2001:4860:4860::64

Адреса серверов Cloudflare DNS64:

2606:4700:4700::64

2606:4700:4700::6400

торренты - CLAT (Customer-side transLATor).
По сути это NAT46, когда обращение к IPv4 преобразуется в обращение к NAT64, который произведёт обратное преобразование.


Частные IP-адреса IPv4
Класс A:

Диапазон: 10.0.0.0 до 10.255.255.255
Маска подсети: 255.0.0.0 или /8
Класс B:

Диапазон: 172.16.0.0 до 172.31.255.255
Маска подсети: 255.240.0.0 или /12
Класс C:

Диапазон: 192.168.0.0 до 192.168.255.255
Маска подсети: 255.255.0.0 или /16

Частные IP-адреса IPv6
FD00::/8 - Это диапазон адресов для локальных уникальных адресов (Unique Local Addresses, ULA). Они предназначены для использования внутри одной или нескольких связанных сетей, аналогично частным IP-адресам в IPv4.

Формат адресов ULA
Префикс: FD00::/8
Схема: FDxx:xxxx:xxxx::/48
Описание: Первые 48 битов адреса фиксированы как FD00::/8, оставшиеся биты используются для создания уникальных адресов внутри сети.
Примеры ULA-адресов:

fd00::1
fd12:3456:789a:1::1
Подкатегории ULA
FD00::/8 - Это основной префикс для ULA. Адреса в этом диапазоне используются для создания локальных сетей, которые не должны быть доступны из интернета.

FC00::/7 - Этот диапазон был предназначен для локальных адресов в ранних спецификациях, но в практике используется как FD00::/8, где FC00::/8 резервируется для будущего использования.

Примечания
Локальные уникальные адреса (ULA) предназначены для использования внутри частных сетей и не должны маршрутизироваться в глобальной сети. Они аналогичны частным IPv4-адресам, таким как 10.0.0.0/8 или 192.168.0.0/16.

Global Unicast Addresses (GUA) - это адреса, которые используются для маршрутизации в интернете, они начинаются с префикса 2000::/3. Внутри локальной сети лучше использовать ULA для внутренней адресации.

Использование ULA-адресов позволяет создавать сети с уникальными адресами, которые могут быть повторно использованы в разных частных сетях, не вызывая конфликтов.



Формат маски подсети
Десятичный вид: Например, 255.255.255.0
Двоичный вид: Например, 11111111.11111111.11111111.00000000
CIDR-нотация: Например, /24

Маска подсети: 255.255.255.0 или /24

Двоичный вид: 11111111.11111111.11111111.00000000
Сетевой адрес: 192.168.1.0 (все хостовые биты равны 0)
Диапазон хостов: 192.168.1.1 до 192.168.1.254
Широковещательный адрес: 192.168.1.255 (все хостовые биты равны 1)
Маска подсети: 255.255.0.0 или /16

Двоичный вид: 11111111.11111111.00000000.00000000
Сетевой адрес: 10.0.0.0
Диапазон хостов: 10.0.0.1 до 10.0.255.254
Широковещательный адрес: 10.0.255.255
IPv6
IPv6-адрес состоит из 128 бит и делится на восемь блоков по 16 бит. Маска подсети в IPv6 также имеет 128 бит и указывается в формате CIDR.

Формат маски подсети
CIDR-нотация: Например, /64
Десятичный вид: Прямой записи маски подсети нет, обычно указывается только в виде CIDR.
Примеры
Маска подсети: /64

Двоичный вид: ffff:ffff:ffff:ffff:0000:0000:0000:0000 (первые 64 бита 1, оставшиеся 64 бита 0)
Сетевой адрес: 2001:db8:abcd:0012::
Диапазон хостов: В сети /64 есть 2^64 адресов (бесконечное количество адресов для хостов)
Широковещательный адрес: В IPv6 широковещательные адреса не используются; адресация осуществляется через multicast и anycast.
Маска подсети: /48

Двоичный вид: ffff:ffff:ffff:0000:0000:0000:0000:0000 (первые 48 бит 1, оставшиеся 80 бит 0)
Сетевой адрес: 2001:db8:abcd::
Диапазон хостов: В сети /48 есть 2^80 адресов
Основные моменты
CIDR (Classless Inter-Domain Routing) позволяет использовать маски подсетей произвольной длины, что делает адресное пространство более гибким.
Маска подсети помогает определить, какие биты IP-адреса принадлежат к сети, а какие — к узлам в этой сети.
В IPv4 маска подсети указывается в десятичном виде или CIDR-нотации.
В IPv6 маска подсети указывается только в CIDR-нотации, и большинство сетей используют маску /64 для облегчения управления адресами.

Основные префиксы IPv6

/32
Описание: Большой префикс, часто назначаемый интернет-провайдерам. Позволяет создавать множество подсетей.
Пример: 2001:db8::/32
Использование: Обычно используется для назначения диапазонов адресов провайдерам.

/48
Описание: Префикс, предназначенный для организаций, позволяющий создавать множество подсетей.
Пример: 2001:db8:abcd::/48
Использование: Используется для распределения адресов среди крупных организаций или для создания множества подсетей.

/56
Описание: Префикс, предоставляющий меньше адресов по сравнению с /48, но все еще позволяющий создавать несколько подсетей.
Пример: 2001:db8:abcd:1234::/56
Использование: Иногда используется для малых и средних организаций или в рамках определенных ISP-сценариев.

/64
Описание: Стандартный размер подсети в IPv6. Позволяет создавать огромное количество адресов в одной подсети.
Пример: 2001:db8:abcd:1234::/64
Использование: Наиболее часто используется для конечных подсетей, таких как домашние или офисные сети. Это стандартный размер для сетей, поддерживающих автоконфигурацию адресов (SLAAC).

/96
Описание: Префикс /96 используется в некоторых сценариях преобразования адресов, особенно в контексте NAT64. Он позволяет создать адресное пространство для преобразования IPv4-адресов в IPv6-адреса,
что позволяет интегрировать IPv4-устройства в IPv6-сети.
Пример: 2001:db8:abcd:1234::/96
Использование: Префикс /96 используется для представления IPv4-адресов в формате IPv6 в рамках NAT64. В этом контексте префикс /96 служит как пространство для преобразования IPv4-адресов в IPv6,
где последние 32 бита префикса /96 представляют IPv4-адрес, а первые 96 бит — это префикс, зарезервированный для преобразования.

/128
Описание: Префикс, указывающий на один конкретный адрес.
Пример: 2001:db8:abcd:1234:5678:90ab:cdef:1234/128
Использование: Используется для назначения одиночных адресов, таких как адреса для интерфейсов.
Специальные префиксы

2001:db8::/32
2001:db8:abcd::/48
2001:db8:abcd:1234::/56
2001:db8:abcd:1234::/64
2001:db8:abcd:1234::/96
2001:db8:abcd:1234:5678:90ab:cdef:1234/128

32бита, все оставшиеся биты (96 бит) могут использоваться для создания подсетей и адресов хостов (32+96=128бит)
2001:db8:0000:0000:0000:0000:0000:0000/32
2001:db8:abcd:0000:0000:0000:0000:0000/48
2001:db8:abcd:1234:0000:0000:0000:0000/56
2001:db8:abcd:1234:0000:0000:0000:0000/64
2001:db8:abcd:1234:0000:0000:0000:0000/96
Это префикс /128, охватывающий весь адрес, для обозначения конкретного уникального адреса.
2001:db8:abcd:1234:5678:90ab:cdef:1234/128


::/0
Описание: Универсальный префикс, обозначающий весь IPv6 адресный пространство.
Использование: Используется для обозначения любого адреса в IPv6.

fc00::/7 (ULAs)
Описание: Универсальные локальные адреса (ULA), которые используются для частных сетей, не предназначены для маршрутизации в Интернете.
Использование: Разделяется на fc00::/8 и fd00::/8. fc00::/8 зарезервирован для будущего использования, а fd00::/8 используется для адресов, генерируемых случайным образом.

fe80::/10
Описание: Локальные адреса для связи на канальном уровне (Link-Local addresses).
Использование: Используется для адресации в пределах одного сегмента сети и не маршрутизируется за его пределы.

ff00::/8
Описание: Многоадресные адреса (Multicast addresses).
Использование: Используются для отправки данных группе узлов. Не используются для одноадресной передачи.
Эти префиксы позволяют гибко управлять адресным пространством IPv6, что делает его мощным инструментом для проектирования сетей и обеспечения масштабируемости.


DNS64 — это служба DNS, которая возвращает записи AAAA с этими синтетическими адресами IPv6 для пунктов назначения только для IPv4 (с записями A, но не AAAA в DNS).
Это позволяет клиентам только для IPv6 использовать шлюзы NAT64 без какой-либо другой конфигурации. Google Public DNS64
предоставляет DNS64 как глобальную службу с использованием зарезервированного префикса NAT64 64:ff9b::/96 .

DNS-Google
2001:4860:4860::8888
2001:4860:4860::8844
8.8.8.8
8.8.4.4
Google-DNS64 для NAT64
2606:4700:4700::6400
DNS-cloudflare для NAT64
2001:4860:4860::6464
количество слов: 760
Ответить Пред. темаСлед. тема

Вернуться в «Linux»