Меня немного смущают следующие 2 RFC, относящиеся к IPv6:
- RFC 4862 ( автоконфигурация адресов без учета IPv6)
- RFC 7084 (требования к маршрутизатору IPv6 CE)
RFC 4862 заявляет:
Процесс автоконфигурации, указанный в этом документе, применяется только к хостам, а не к маршрутизаторам. Поскольку автоконфигурация хоста использует информацию, объявленную маршрутизаторами, маршрутизаторы необходимо будет настроить другими способами.
RFC 7084 перечисляет одно из своих требований к конфигурации WAN-стороны для назначения адресов:
WAA-1: Маршрутизатор CE IPv6 ДОЛЖЕН поддерживать автоматическую настройку адреса без сохранения состояния (SLAAC) [RFC4862].
Здесь есть противоречие?
Должен ли маршрутизатор автоматически настраивать IPv6-адрес для своего интерфейса WAN?
Почему RFC 4862 говорит
Поскольку автоконфигурация хоста использует информацию, объявленную маршрутизаторами, маршрутизаторы необходимо будет настроить другими способами.
Если я использую маршрутизатор для подключения своей локальной сети, например, к Интернет-провайдеру, разве в сети Интернет-провайдера нет маршрутизатора, который общается с моим маршрутизатором?
Я бы подумал, что было бы разумно объединить 2 (или более) маршрутизатора. В таком случае, почему бы не использовать SLAAC на интерфейсе WAN второго маршрутизатора?
Может быть, проблема сводится к искусственному разграничению между хостами и маршрутизаторами? Из RFC 4862:
узел - устройство, реализующее IP.
Маршрутизатор - узел, который пересылает IP-пакеты, не адресованные самому себе.
хост - любой узел, который не является маршрутизатором.
Но не может ли хост (то есть машина, на которой размещены серверы или приложения) также иметь таблицу маршрутизации и функционировать как маршрутизатор? И мы снова эффективно объединяем 2 роутера.
Изменить : некоторая дополнительная информация, которую я позже обнаружил ...
Ядро Linux обрабатывает SLAAC и строго следует RFC 4862. Вплоть до различия между хостами и маршрутизаторами. Смотрите документацию по ядру в ip-sysctl :
- HOST поведение предполагается. Это означает, что будут отправлены запросы маршрутизатора, а для автоматической настройки адреса будут использоваться объявления маршрутизатора.
- Только если включена переадресация (
/proc/sys/net/ipv6/conf/all/forwarding
), устройство считается МАРШРУТИЗАТОРОМ . Это означает, что запросы маршрутизатора не будут отправлены, а объявления маршрутизатора будут игнорироваться.
Оказывается, это различие восходит к прошлой версии, предшествующей IPv6. Смотрите параметр /proc/sys/net/ipv4/ip_forward
:
Эта переменная является особенной, ее изменение сбрасывает все параметры конфигурации в их состояние по умолчанию ( RFC1122 для хостов, RFC1812 для маршрутизаторов)