IPv6, несколько маршрутизаторов и возможная реклама плохого префикса в ICMPv6 RA

В моей сети установлены два устройства типа "маршрутизатор".

Одним из них является мой фактический маршрутизатор IPv6 - Cisco 2621 (fe80::xxxx:3e60). Это правильный маршрутизатор по умолчанию.

Еще один DLINK DIR-615 (fe80::xxxx:5760). Он поддерживает IPv6, но на данный момент настроен только для локальной адресации каналов, поскольку используется только в качестве WAP.

Оба устройства отправляют сообщения RA ICMPv6, и в результате оба они добавляются в таблицу маршрутизации моих клиентов:

$ ip -f inet6 route | grep default
default via fe80::xxxx:3e60 dev wlan0  proto kernel  metric 1024  expires 1741sec mtu 1500 advmss 1440 hoplimit 64
default via fe80::xxxx:5760 dev wlan0  proto kernel  metric 1024  expires 1791sec mtu 1500 advmss 1440 hoplimit 64

Проблема заключается в том, что у моих клиентов теперь есть выбор маршрутизаторов по умолчанию. Один отправляет пакеты весело по пути, другой нет. Я могу удалить неправильный маршрут, но он просто добавляется заново, когда появляется следующий RA.

fe80::xxxx:3e60 (правильный маршрутизатор) рассылает RA, рекламируя префикс 2001 года:xxxx:xxxx::/64 (моя сеть)

fe80::xxxx:5760 (неверный маршрутизатор) отправляет RAs, рекламируя префикс fe80::/64 (link-local)

Итак... кто здесь виноват?

  • fe80::xxxx:5760 для отправки RA, когда он не может предоставить действительный префикс?
  • fe80::xxxx:5760 для отправки RA с локальным префиксом link?
  • мои клиенты для добавления fe80::xxxx:5760 в таблицу маршрутов, когда он рекламирует префикс локальной ссылки?
  • Что-то другое?

4 ответа

Решение

Radvd (демон рекламы маршрутизатора) должен быть отключен на DLink, по крайней мере на интерфейсах, обращенных к маршрутизатору Cisco.

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

Если порт WAN подключен к маршрутизатору Cisco, маршрутизатор DLink не должен объявлять о маршрутизации на этом канале.

РЕДАКТИРОВАТЬ: Вы можете иметь возможность влиять на маршрутизацию, установив AdvRoutePreference high; и / или AdvDefaultPreference high; в конфигурации radvd маршрутизатора Cisco.

РЕДАКТИРОВАТЬ 2: Проблема, как представляется, заключается в том, что маршрутизатор DLink не имеет глобального IP-адреса или маршрута. Маршрут по умолчанию для маршрутизаторов обычно не обнаруживается, поэтому, возможно, его придется установить вручную.

Шаг для установки предпочтения маршрутизатора ipv6 из документации CISCO:

  1. включить
  2. настроить терминал
  3. номер типа интерфейса
  4. ipv6 nd router-preference {high | средний | низкий}

Маршрутизатор D-Link неисправен.

По крайней мере, на аппаратной версии C2 DIR-615 (на маршрутизаторе есть наклейка, на которой будет указано, какая у вас аппаратная версия), обновление 3.03WW Fireware, по-видимому, не позволяет отправлять RA. В любом случае это верно, по крайней мере, в режиме локальной связи (другие варианты я не проверял).

В соответствии с RFC2461 §4.6.2:

Маршрутизатор НЕ ДОЛЖЕН отправлять параметр префикса для локального префикса канала, а хост ДОЛЖЕН игнорировать такой параметр префикса.

§6.2.1:

Префикс локальной ссылки НЕ ДОЛЖЕН включаться в список рекламируемых префиксов.

Таким образом, можно подумать, что если у маршрутизатора нет действительных префиксов, он не должен отправлять RA вообще. Аналогично, если хост видит RA без действительных префиксов, он, вероятно, должен игнорировать его.

Я бы сказал, что ошибки включают в себя странность объявления префикса от fe80::, маршрутизатор, который объявляет маршрут по умолчанию, когда у него нет подключения к Интернету, и тот факт, что прошивка и документация не облегчают его вообще. выяснить, как отключить маршрут по умолчанию.

Но есть хороший обходной путь, по крайней мере, для моего DIR-615 ревизии E3 с прошивкой 5.1:

  • Перейдите на страницу конфигурации Advanced/IPv6.

  • Выберите "Автоматическая конфигурация без сохранения состояния".

  • Установите префикс LAN IPv6, который вы используете.

  • Выберите "Включить автоконфигурацию", выберите "Без состояния" для типа автоконфигурации и (это важная часть) установите "Время жизни объявления маршрутизатора" на 0.

Установка времени жизни маршрутизатора равным 0 в RA означает "это не маршрут по умолчанию".

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

Другие вопросы по тегам