Я недавно добавил IPv6 в нашу сеть в соответствии с инструкциями на http://www.chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric.
Однако хосты в сети автоматически настраивают маршрут по умолчанию к link-local адрес маршрутизатора вместо глобального адреса.
Статья на http://ipvsix.me/?p=88 говорит:
Вы обнаружите, что на узле LAN их маршрут и шлюз по умолчанию указывают на Link-Local адрес eth1 на машине Linux, выступающей в качестве шлюза / маршрутизатора IPv6. Это совершенно нормально и ожидаемо.
Моя проблема в том, что маршрутизатор (под управлением Debian) не отвечает на запросы NDP для своего локального адреса ссылки, потому что у него настроен глобальный адрес.
Есть ли способ:
/etc/radvd.conf на маршрутизаторе:
interface eth0 {
AdvSendAdvert on;
AdvLinkMTU 1480;
MinRtrAdvInterval 60;
MaxRtrAdvInterval 180;
prefix 2001:xxxx:xxxx:xxxx::1/64 {
AdvRouterAddr on;
AdvPreferredLifetime 600;
AdvValidLifetime 3600;
};
route ::/0 {
};
RDNSS 2001:xxxx:xxxx:xxxx::2 {};
};
Прямая маршрутизация IPv6 полностью основана на локальных адресах канала, поэтому нормально видеть, что маршрутизатор рассматривает шлюз как локальный канал.
Даже если вы используете глобальные адреса IPv6, устройства будут выполнять разрешение уровня 2 с помощью Network Discovery для получения локальных адресов канала.
Оказывается, у меня был неправильный интерфейс, указанный в /etc/radvd.conf
. Исправление решило проблему.
Проверьте настройки вашего брандмауэра ... я могу предположить, что что-то блокирует icmp6, что нарушает IPv6 даже хуже, чем эквивалентная ошибка с IPv4. Простейшая команда для вывода списка правил брандмауэра ipv6 (от имени пользователя root):
ip6tables -L -n