Мой интернет-провайдер предлагает IPv6 по умолчанию. Однако настройка IPv6 моего интернет-провайдера выглядит немного странной, поскольку шлюз IPv6 по умолчанию находится за пределами подсети моего сервера. Под Linux можно настроить статический маршрут к этому шлюзу с помощью ip -6 route add <gateway ip> dev <interface>
. Однако это не работает на OpenBSD, знает ли кто-нибудь эквивалент этой команды на OpenBSD или кто-нибудь знает другой подход к решению этой проблемы?
решение1
Добавьте следующее в /etc/rc.conf:
ipv6_defaultrouter="<v6-gateway-ip>"
затем перезагрузите сеть, перезагрузив ее или запустив
/etc/rc.d/network_ipv6 restart
Или вы можете сделать это вручную:
route -n add -inet6 default <v6-gateway-ip>
решение2
Я знаю три подхода к решению этой проблемы:
- Найдите другой IPv6-адрес шлюза. Возможно, интерфейсу назначено несколько адресов. Какой из них вы используете в качестве шлюза, не имеет значения, пока обнаружение соседей может разрешить его в правильный MAC-адрес.
- Добавьте статический маршрут, указывающий, что префикс, содержащий этот MAC-адрес, напрямую подключен к данному интерфейсу Ethernet. Это должно работать, даже если у вас нет адреса в этом префиксе. Вам следует использовать /128 для этого статического маршрута, если только у вас нет очень веской причины поступить иначе.
- Создайте IPv6-адрес для шлюза и вручную вставьте его в кэш соседей. Этот подход будет работать только в том случае, если вы знаете MAC-адрес шлюза и он остается фиксированным. Это должно работать на любой ОС, где вы можете вручную создавать записи кэша соседей, но я тестировал это только на Linux.
решение3
Похоже на возможную неправильную конфигурацию сети. Маршрутизатор по умолчанию для каждого сегмента сети в IPv6 передается в Router Announcement. Посмотрите, что они вам дают в RA, это должен быть IPv6-адрес канального уровня (fe80:...).
Вы можете это переопределить, как указано выше, но вам это не обязательно.