Должен ли маршрутизатор использовать SLAAC для назначения адресов IPv6?

11

Меня немного смущают следующие 2 RFC, относящиеся к IPv6:

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 для маршрутизаторов)

banjaxed
источник

Ответы:

7

В RFC 7084 также говорится:

W-1: Когда маршрутизатор подключен к каналу интерфейса WAN, он ДОЛЖЕН действовать в качестве хоста IPv6 для целей назначения адреса интерфейса без учета состояния [RFC4862] или с учетом состояния [RFC3315].

Короче говоря, да - маршрутизатор должен иметь возможность автоматически настраивать IPv6-адрес для своего интерфейса WAN.

В действительности, однако, большинство интернет-провайдеров реализуют DHCPv6 и DHCPv6-PD ( RFC3633 ) для распределения адресов в нисходящем направлении наряду с делегированием префиксов.

Это гарантирует, что ваш маршрутизатор не только получает адрес на своем интерфейсе глобальной сети, но также получает префикс, который он может использовать на своем внутреннем интерфейсе локальной сети.

Бенджамин Дейл
источник
6

RFC 4862 действительно описывает маршрутизаторы в рамках единого административного контроля. RFC 7084 разъясняет, как должны вести себя клиентские маршрутизаторы. Это дает провайдеру некоторую свободу в том, как он поддерживает IPv6 для своих клиентов.

Для маршрутизатора PE маршрутизатор CE является хостом. С точки зрения локальной сети (домен уровня 2, включая канал от PE к CE), маршрутизатор действительно является еще одним хостом в сети. В большинстве случаев адреса канала WAN будут определены статически, через DHCP или через PPP, фактически не используя SLAAC.

Я думаю, что вы пропустили ту часть в RFC 7084, которая предшествует тому, что вы цитировали:

Требования WAN-стороны:

W-1: Когда маршрутизатор подключен к каналу интерфейса WAN, он ДОЛЖЕН действовать в качестве хоста IPv6 для целей назначения адреса интерфейса без учета состояния [ RFC4862 ] или с учетом состояния [ RFC3315 ].

Рон Мопин
источник
1
Многие интернет-провайдеры также используют ненумерованные соединения WAN (только локальные ссылки). Все, что происходит по каналу WAN, это маршрутизатор ISP, отправляющий пакеты в CPE, и CPE, отправляющий пакеты в шлюз по умолчанию. Оба обычно используют локальные адреса в любом случае.
Сандер Штеффанн
5

Почему RFC 4862 говорит: «Поскольку в автоконфигурации хоста используется информация, объявленная маршрутизаторами, маршрутизаторы необходимо будет настроить другими способами».

Люди, которые написали этот документ (и его предшественник RFC 2462) почти наверняка имели представление о том, что существует два типа устройств. «хостов», которые были многочисленными и обременительными для управления, и «маршрутизаторов», которыми управляли компетентные сетевые администраторы.

В начале 2000-х у нас наблюдался рост количества постоянно подключаемых DSL / кабельных соединений, а также рост числа людей, у которых дома было несколько компьютеров, которые могли бы использовать подключение к Интернету. Поскольку многие интернет-провайдеры выдавали бы только один IP-адрес клиенту (по крайней мере, без дополнительной оплаты), мы наблюдали массовый рост использования «домашних маршрутизаторов» с NAT для сокрытия нескольких компьютеров за таким соединением. NAT позволил «домашнему маршрутизатору» скрыть свою истинную природу от интернет-провайдера, поскольку интернет-провайдер «домашний маршрутизатор» был похож на хост.

Такое использование поначалу было «терпимо» только для интернет-провайдеров, но в конце концов они решили, что в конце концов это не так уж плохо, и начали фактически предлагать / продавать «домашние маршрутизаторы» своим клиентам. В результате мы получили огромное количество таких устройств в домах и небольших офисах.

Только сравнительно недавно IETF начала правильно исследовать, как «домашние маршрутизаторы» и обслуживающие их интернет-провайдеры должны вести себя в контексте IPv6. Ответ заключается в том, что интерфейс «стороны WAN» должен вести себя как хост, в то время как интерфейсы «стороны LAN» должны вести себя как обычный маршрутизатор. Поскольку NAT отсутствует, требуются некоторые дополнительные детали для обработки адресов доставки на стороне локальной сети.


Что касается ядра Linux, оно действительно по умолчанию игнорирует RA при включенной маршрутизации, но это поведение может быть переопределено при необходимости.

Питер Грин
источник
Вы не упомянули, как переопределить. В моем файле / etc / network / interfaces есть следующее: sysctl -w net.ipv6.conf.eth0.accept_ra = 2, который, как я считаю, является настройкой для включения RA.
tgunr
Да, 0 отключен, 1 - нормальный режим (включен для хостов, но не маршрутизаторов), а 2 - принудительно включен.
Питер Грин,