Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NET-WG-OSPF-004 Сетевое оборудование и VPN

Развертывание отказоустойчивого WireGuard Site-to-Site с динамической маршрутизацией OSPF

Обновлено: 25.08.2026 · Официальная документация ↗

При попытке развертывания динамической маршрутизации OSPF поверх туннелей WireGuard возникают специфические проблемы:

  • OSPF Adjacency зависает в состоянии Init, 2-Way или ExStart/Exchange.
  • WireGuard отбрасывает мультикаст-пакеты OSPF Hello (224.0.0.5 / 224.0.0.6) из-за жесткой фильтрации крипто-маршрутизации (Cryptokey Routing).
  • При падении одного из резервных каналов маршруты не переключаются автоматически.
  • Фрагментация пакетов OSPF DBD (Database Description) из-за некорректного значения MTU интерфейса WireGuard.

1. Настройка ядра Linux и сетевого интерфейса WireGuard

Для пропуска мультикаста и любых транзитных подсетей директива AllowedIPs на обоих узлах должна включать диапазон мультикаста и туннельную подсеть (или 0.0.0.0/0):

# /etc/wireguard/wg0.conf на Узле А (10.254.0.1/30):
[Interface]
PrivateKey = aaaaaa...
Address = 10.254.0.1/30
ListenPort = 51820
MTU = 1420

[Peer]
PublicKey = bbbbbb...
Endpoint = 198.51.100.2:51820
# Обязательно разрешаем мультикаст 224.0.0.0/4 и туннельный линк:
AllowedIPs = 10.254.0.0/30, 224.0.0.0/4, 192.168.0.0/16
PersistentKeepalive = 10

2. Включение демона OSPF в FRRouting (/etc/frr/daemons)

zebra=yes
ospfd=yes

3. Конфигурация OSPF в FRR (/etc/frr/frr.conf)

Поскольку WireGuard является интерфейсом Point-to-Point без нативной поддержки физического широковещания, задайте сетевой тип point-to-point:

frr version 8.5
frr defaults traditional
!
interface wg0
 ip ospf network point-to-point
 ip ospf hello-interval 2
 ip ospf dead-interval 6
 ip ospf cost 10
 ip ospf mtu-ignore
!
router ospf
 ospf router-id 10.254.0.1
 network 10.254.0.0/30 area 0
 network 192.168.10.0/24 area 0
 redistribute connected
!
line vty
!

4. Команды проверки статуса OSPF и WireGuard

# Проверка статуса пиров WireGuard:
wg show

# Проверка соседства OSPF через vtysh:
vtysh -c "show ip ospf neighbor"
vtysh -c "show ip route ospf"
vtysh -c "show ip ospf interface wg0"
💡 Практика специалистов: При работе через нестабильные каналы связи обязательно настраивайте BFD (Bidirectional Forwarding Detection) в связке с OSPF поверх WireGuard. Это снизит время обнаружения сбоя линка и переключения маршрутов с 6-40 секунд до 150-300 миллисекунд.

Частые вопросы (FAQ)

Почему OSPF Hello пакеты не проходят через стандартный WireGuard интерфейс?

WireGuard выполняет Cryptokey Routing: пакет отправляется пиру только в том случае, если его IP назначения явно входит в список AllowedIPs этого пира. Поскольку OSPF отправляет Hello на адрес 224.0.0.5, диапазон 224.0.0.0/4 обязательно должен присутствовать в AllowedIPs.

Почему OSPF зависает в состоянии ExStart при установлении соседства?

Это происходит из-за несовпадения MTU между сторонами туннеля при обмене большими DBD пакетами. Решением является принудительная установка одинакового MTU (1420 байт) на интерфейсах wg0 либо включение директивы ip ospf mtu-ignore в конфиге FRR.

Зачем указывать тип 'ip ospf network point-to-point'?

В режиме Point-to-Point протокол OSPF не тратит время и ресурсы на выбор Designated Router (DR) и Backup Designated Router (BDR), что ускоряет сходимость сети до сотен миллисекунд.

Как организовать балансировку трафика через два параллельных WireGuard туннеля?

Создайте два интерфейса (wg0 и wg1) через разных провайдеров, назначьте им одинаковую стоимость (ip ospf cost 10) в конфигурации OSPF, и ядро Linux включит механизм ECMP (Equal-Cost Multi-Path) для маршрутизации трафика.

Полезные материалы
Рекомендуем