мета-данные страницы
Маршрутизация OSPF через FRRouting
Руководство: Динамическая маршрутизация OSPF (FRR) поверх туннелей
Пошаговая инструкция по развертыванию протокола OSPF между маршрутизаторами.
Данный гайд описывает процесс поднятия динамической маршрутизации с использованием пакета FRRouting (FRR). Процесс будет одинаковым для любых маршрутизаторов в вашей инфраструктуре, отличаться будут лишь локальные IP-адреса и идентификаторы.
Обратите внимание на TTL: Если вы поднимаете OSPF поверх IPIP или GRE туннелей, пакеты маршрутизации могут не доходить из-за слишком маленького Time-To-Live. Убедитесь, что для вашего туннеля установлен достаточный TTL.
# Увеличение TTL для туннельного интерфейса: nmcli con mod ваш_туннельный_интерфейс ip-tunnel.ttl 64
Шаг 1. Установка и запуск FRR
Для начала установим пакет frr из стандартных репозиториев операционной системы:
apt-get update && apt-get install -y frr
Добавляем сервис в автозагрузку и сразу запускаем его. Это действие также инициализирует служебный файл конфигурации демонов:
systemctl enable --now frr
По умолчанию все протоколы маршрутизации отключены. Нам нужно явно включить процесс OSPF. Откройте конфигурационный файл:
vim /etc/frr/daemons
Найдите строку ospfd=no и измените ее на yes:
ospfd = yes
Сохраните файл (ESC → :wq) и перезапустите службу для применения новых настроек:
systemctl restart frr
Шаг 2. Глобальные настройки маршрутизации
Переходим к непосредственной настройке через консоль VTYSH (встроенный CLI-интерфейс FRR, похожий на Cisco IOS):
vtysh conf t
Особенность работы FRR: В момент первой загрузки FRR подхватывает системное значение ip.ipv4.ip_forward (1 или 0) и записывает его себе в конфиг как ip forwarding или no ip forwarding соответственно. Во время последующей загрузки системы FRR может перезаписать его поверх /etc/net/sysctl.conf. Поэтому нам нужно действовать на опережение и явно разрешить пересылку пакетов.
Разрешаем транзит пакетов между интерфейсами (ip forwarding):
ip forwarding
Шаг 3. Запуск процесса OSPF
Инициализируем процесс маршрутизации OSPF:
router ospf
Каждому маршрутизатору в сети требуется уникальный идентификатор (Router ID). Укажите его в формате IPv4-адреса. (Например, для первого роутера это может быть 1.1.1.1, для второго — 2.2.2.2 и так далее):
ospf router-id ID_вашего_роутера
В целях безопасности крайне рекомендуется перевести все интерфейсы маршрутизатора в пассивный режим по умолчанию. Это предотвратит случайную отправку OSPF Hello-пакетов в пользовательские сети (где их могут перехватить злоумышленники):
passive-interface default
Шаг 4. Настройка интерфейсов и аутентификации
Теперь нужно привязать процесс OSPF к конкретным сетевым интерфейсам. Перейдем в режим настройки интерфейса туннеля (через который роутеры общаются друг с другом):
int ваш_туннельный_интерфейс
Указываем, что данный интерфейс принадлежит к нулевой зоне OSPF (Area 0, магистральная зона):
ip ospf area 0
Поскольку ранее мы сделали все интерфейсы пассивными, нам нужно явно включить раздачу OSPF маршрутов на этом конкретном порту:
no ip ospf passive
Для защиты OSPF-соседства от подмены маршрутов, настроим шифрование MD5. Укажите одинаковый пароль на всех связанных роутерах:
ip ospf authentication message-digest ip ospf message-digest-key 1 md5 ваш_пароль_ospf
Так как это туннель между двумя точками (а не широковещательная сеть), укажем тип сети point-to-point. Это ускорит установку соседства и избавит от выбора DR/BDR маршрутизаторов:
ip ospf network point-to-point
Добавление локальных сетей: Вам необходимо повторить этот блок настройки для каждого интерфейса, который должен участвовать в маршрутизации OSPF.
int ваш_локальный_интерфейс ip ospf area 0
Шаг 5. Сохранение конфигурации
Выйдите из режима конфигурации и запишите изменения в энергонезависимую память (startup-config), иначе после перезагрузки все настройки пропадут:
end wr mem q
Для гарантированной проверки работы системы можно отправить маршрутизатор в перезагрузку:
reboot
Шаг 6. Диагностика и проверка (Troubleshooting)
После перезагрузки и поднятия сервисов вернитесь в консоль FRR:
vtysh
Проверьте установку OSPF соседства с другими роутерами (должно быть состояние Full):
show ip ospf neighbor
Проверьте таблицы маршрутизации:
show ip ospf route show ip route ospf exit
Выполните обычный пинг до удаленного узла (подставьте свой адрес):
ping IP_адрес_удаленной_сети
Продвинутая отладка (если маршруты не передаются)
Если соседство не поднимается, включите мониторинг OSPF-пакетов в реальном времени. Внутри vtysh введите:
debug ospf event debug ospf packet hello debug ospf zebra terminal monitor
Анализ результатов:
- Если после включения дебага FRR ничего не выводит на экран — значит между роутерами нет физической или туннельной связности, либо пакеты блокируются (например, из-за неправильного параметра
ip-tunnel.ttl). - Если вывод есть, но OSPF-маршруты не появляются — проблема заключается в логике конфигурации FRR (несовпадение паролей MD5, несовпадение Area ID, или интерфейсы остались в passive-режиме).
© 2026 Network Documentation Hub.