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:
- включить
- настроить терминал
- номер типа интерфейса
- 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 более чем достаточно для меня. Вам даже не нужно устанавливать префикс одинаковым, правда, но если вы этого не сделаете, ваши интерфейсы и таблицы маршрутизации будут загромождены дополнительными адресами и маршрутами, которые не будут использоваться для чего-либо.