Назад | Перейти на главную страницу

Шлюз по умолчанию OpenBSD вне подсети

Мой интернет-провайдер по умолчанию предлагает IPv6. Однако настройка IPv6 у моих интернет-провайдеров кажется немного странной, потому что шлюз IPv6 по умолчанию расположен за пределами подсети моих серверов. В Linux можно настроить статический маршрут к этому шлюзу, используя ip -6 route add <gateway ip> dev <interface>. Однако это не работает на openbsd, знает ли кто-нибудь эквивалент этой команды на openbsd или знает ли кто-нибудь другой подход к решению этой проблемы?

Я знаю три подхода к решению этой проблемы:

  • Найдите другой IPv6-адрес шлюза. Интерфейсу может быть назначено несколько. Какой из них вы используете в качестве шлюза, не имеет значения, если обнаружение соседей может разрешить его на правильный MAC-адрес.
  • Добавьте статический маршрут, указывающий, что префикс, содержащий этот MAC-адрес, напрямую подключен к данному интерфейсу Ethernet. Это должно работать, даже если у вас нет адреса в этом префиксе. Вы должны использовать / 128 для этого статического маршрута, если у вас нет особой причины поступить иначе.
  • Создайте IPv6-адрес для шлюза и вставьте его вручную в соседний кеш. Этот подход будет работать, только если вы знаете MAC-адрес шлюза, и он остается фиксированным. Это должно работать в любой ОС, где вы можете вручную создавать записи в соседнем кэше, но я тестировал это только в Linux.

Добавьте в /etc/rc.conf следующее:

ipv6_defaultrouter="<v6-gateway-ip>"

затем сбросьте настройки сети, перезагрузив или запустив

/etc/rc.d/network_ipv6 restart

Или вы можете сделать это вручную:

 route -n add -inet6 default <v6-gateway-ip>

Это похоже на возможную неправильную конфигурацию сети. Маршрутизатор по умолчанию для каждого сегмента сети в IPv6 указывается в объявлении маршрутизатора. Посмотрите, что они дают вам в RA, это должен быть адрес IPv6 канального уровня (fe80: ...).

Вы можете обойти это, как отмечалось выше, но в этом нет необходимости.