Загрузка

Динамическая и статическая маршрутизация — развёрнутый практический гид

Здесь — всё, что нужно знать, чтобы уверенно проектировать, настраивать и отлаживать маршрутизацию: от простых статических маршрутов до OSPF/BGP, от выбора маршрута до политики и безопасности. Примеры и команды — в основном для MikroTik RouterOS, плюс Linux/Windows для диагностики.


Краткий план (что будет)

  1. Принцип работы маршрутизации (recursion, longest-prefix)
  2. Статическая маршрутизация — когда и как использовать
  3. Динамическая маршрутизация — виды и принципы (distance-vector vs link-state)
  4. OSPF — что важно знать и примеры (MikroTik)
  5. BGP — основы, атрибуты, примеры (когда нужен)
  6. Комбинация статических и динамических маршрутов (AD, floating routes, redistrib)
  7. Политики (route filtering, prefix-list, route-maps / routing filters)
  8. Практические советы по дизайну, безопасность, отладка и проверки
  9. Частые ошибки и как их избежать

1. Как вообще роутер выбирает маршрут (ключевые принципы)

  • Longest Prefix Match — при поиске маршрута выбирается запись с наибольшим префиксом (наиболее специфичная).
    Пример: есть 10.127.0.0/16 и 10.127.127.11/32. Для адреса 10.127.127.11 выберется /32.

  • Administrative Distance (AD) — «доверие» к источнику маршрута. Если два маршрута имеют одинаковый префикс, выбирают с меньшей AD (например, connected=0, static=1, OSPF≈110, BGP≈20/200).

  • Metric (cost) — внутри протокола маршрутизации используются метрики (cost, hop count, bandwidth-based и т.д.) — выбирается маршрут с наименьшей метрикой.

  • Recursive lookup — если next-hop указан IP, роутер ищет, как добраться до next-hop; если до next-hop нет маршрута → исходный маршрут не работает.


2. Статическая маршрутизация

Что это

Ручные пути, которые админ добавляет явно (ip route add …). Простейший, предсказуемый способ.

Когда использовать

  • Малые сети (пара роутеров).

  • Default route на краевом роутере (0.0.0.0/0 → провайдер).

  • Резервный маршрут (floating static).

  • Когда нужно «заблокировать» или форсировать конкретный путь (например, на конкретный шлюз).

Примеры (MikroTik)

Добавить default route:

/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 distance=1 comment="default gw"

Floating (резервный) static:

/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.2 distance=10 comment="backup via 10.0.0.2"

Статический маршрут к подсети:

/ip route add dst-address=192.168.50.0/24 gateway=10.1.1.2

Минусы статиков

  • Не масштабируются (много ручной работы).

  • Не адаптируются к отказам — если следующий хоп упал, маршрут остаётся, пока его не удалят/не обновят.

  • Подходят как часть гибридной стратегии (статик + динамика).


3. Динамическая маршрутизация — виды и принципы

Два основных подхода

  • Distance-vector (DV): маршрутизаторы обмениваются списками известных сетей и расстояниями (RIP). Преимущества: простота; недостатки: медленная сходимость, проблемы с петлями (классические обходы: split horizon, poison reverse).

  • Link-state (LS): каждый роутер знает топологию (LSA), строит карту сети и запускает SPF (Dijkstra) для расчёта кратчайших путей (OSPF, IS-IS). Преимущества: быстрая сходимость, масштабируемость; недостатки: сложнее, требует больше ресурсов.

Популярные протоколы

  • RIP — старый, hop-count, максимум 15 хопов. Практически не используется в современных сетях.

  • OSPF (v2/v3) — link-state для IPv4/IPv6. Area-based, backbone area 0.0.0.0. Подходит для корпоративных сетей.

  • BGP — протокол между автономными системами (и внутри крупных AS). Использует политику (attributes), масштабируем.

  • EIGRP — гибрид (Cisco), сейчас встречается в сетях Cisco.


4. OSPF — что важно знать (коротко и практично)

Концепции

  • Router ID — идентификатор роутера (IPv4-формат). Лучше задавать явно.

  • Area: backbone = 0.0.0.0; для масштабирования сети делим на area, абстрагируем LSDB.

  • LSA типы — разные типы (Router LSA, Network LSA, Summary LSA, External LSA).

  • SPF — вычисляет лучший путь на основе стоимости (cost). Cost обычно рассчитывается от скорости интерфейса (в MikroTik можно задавать вручную).

Принцип работы

  1. Устанавливаются соседства (adjacency).
  2. Обмениваются LSAs.
  3. Каждый роутер строит SPF и обновляет локальную routing table.

MikroTik — пример конфигурации OSPF

/routing ospf instance

add name=ospf1 router-id=10.255.255.1

/routing ospf area
add name=backbone instance=ospf1 area-id=0.0.0.0

/routing ospf interface-template
add networks=10.127.127.0/24 area=backbone
add networks=172.30.30.0/24 area=backbone

Или через интерфейсы:

/routing ospf interface

add interface=wg0 cost=10

Практические советы по OSPF

  • Устанавливайте стабильный router-id (чтобы не дергалась сетка при ребуте).

  • Грамотно проектируйте area: backbone (0), потом area 1/2 и т.д. Не делайте слишком много соседств в одной зоне.

  • Для туннелей (WireGuard) используйте /30 или /31 адреса как point-to-point, устанавливайте интерфейс OSPF в p2p.

  • Настройте authentication (MD5) на участках, где это надо, чтобы предотвратить поддельные LSA.


5. BGP — основы и когда нужен

Когда брать BGP

  • Если ты — провайдер или у тебя несколько провайдеров (multi-homed).

  • Если надо управлять префиксами между автономными системами (AS), делать сложные политики маршрутизации, управлять входящим трафиком (local_pref, AS_PATH, MED, communities).

Основные понятия

  • AS (Autonomous System) — номер сети в BGP.

  • eBGP / iBGP — eBGP между разными AS, iBGP внутри одного AS.

  • NEXT_HOP, AS_PATH, LOCAL_PREF, MED — основные атрибуты, по которым BGP выбирает лучший путь.

  • Route reflectors / confederations — уменьшение необходимости full-mesh iBGP.

BGP best-path selection (коротко)

BGP выбирает путь, руководствуясь набором критериев: локальная привязка (LOCAL_PREF), AS_PATH (короче лучше), origin, MED (меньше лучше), eBGP over iBGP, IGP cost to NEXT_HOP и т.д.

MikroTik — пример BGP (упрощённо)

/routing bgp instance

set default as=65001 router-id=10.255.255.1

/routing bgp peer
add name=peer1 remote-address=203.0.113.2 remote-as=65002 out-filter=export-bgp in-filter=import-bgp

/routing bgp network
add network=198.51.100.0/24

Фильтры (import/export) — обязательно, чтобы не анонсировать лишние префиксы.

Практические замечания по BGP

  • Фильтруйте префиксы — опасно принимать/анонсировать всё подряд.

  • Используйте prefix-lists / AS-path filters / communities для управления политиками.

  • Для eBGP соседство обычно устанавливается на маршрутизаторах с прямой связью; TTL=1 обычно хватит, но для multi-hop ставят ebgp-multihop.

  • TCP MD5 / TCP-AO можно использовать для защиты сессии BGP.


6. Комбинация статических и динамических маршрутов

Administrative Distance (AD)

Если у тебя есть статический маршрут и OSPF- или BGP-маршрут к той же сети, AD решает: статик с AD=1 выиграет против OSPF с AD=110. Поэтому:

  • Для перехода на динамику: либо удаляй статические маршруты, либо делай у них бoльшую distance (floating static), чтобы динамика имела приоритет.

Redistribution (redistrib)

Иногда нужно распространить маршруты из одного протокола в другой (например, static → OSPF или OSPF → BGP). При этом важно:

  • Использовать теги маршрутов (route tags) чтобы избежать routing loops.

  • Не делать «слепую» redistrib всех маршрутов — фильтровать по prefix-list, по метрике.

Пример Redistribute static → OSPF (на оборудовании, где есть команда redistribute static into ospf) — в MikroTik это делается через routing ospf network statements или routing filters (прописать static в OSPF через network/redistribute).

Floating static — пример

Если у тебя основной маршрут по OSPF, но хочешь резервный static через другой провайдер:

# статический резерв с большим distance

/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.2 distance=20 comment="backup"

Если OSPF исчезнет — static с distance=20 станет активным.


7. Политики маршрутизации, фильтрация и контроль (policy routing)

Почему важны фильтры

  • Защита от неверных/злонамеренных анонсов (BGP hijack).

  • Умение управлять входящим/исходящим трафиком (pref-lists, route-maps, routing filters).

В MikroTik

  • Routing filters применяются в BGP/OSPF для import/export.

  • Mangle + routing mark — для policy routing (маршрутизация по источнику/порту): пометить трафик и отправить в определённую routing table.

Пример policy routing (MikroTik):

  1. Мангл: пометить трафик с source=192.168.10.0/24:

/ip firewall mangle

add chain=prerouting src-address=192.168.10.0/24 action=mark-routing new-routing-mark=to-provider1 passthrough=yes

  1. Таблица маршрутов:

/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 routing-table=to-provider1

Prefix-lists и route-maps (аналогии)

  • Prefix-list — набор префиксов для фильтрации (match/permit/deny).

  • Route-map / routing filter — более мощные правила: можно менять метрики, теги, local_pref и т.д. Используются при импорт/экспорт в BGP, redistribution.


8. Security, hardening и best practices

  • Аутентификация соседств: OSPF MD5, BGP TCP MD5/TCP-AO.

  • Фильтрация входящих префиксов (BGP import): не принимайте больше, чем ожидаете.

  • Rate limiting для управленческих протоколов и SSH/Winbox.

  • Мониторинг соседств: оповещения, SNMP, syslog.

  • Route-authentication (RPKI/IRR) для BGP на границе (если доступно).

  • Versioning RouterID — задавайте статично, иначе при перезапуске Neighbor пересоздастся и OSPF/BGP будут дергаться.


9. Отладка и диагностика (полезные команды)

MikroTik

  • Показать таблицу маршрутов:

/ip route print

  • Показать OSPF соседей / базу:

/routing ospf neighbor print

/routing ospf database print

  • Показать BGP peers:

/routing bgp peer print

/routing bgp advertisements print

  • Trace / ping:

/tool traceroute 8.8.8.8

/ping 10.127.127.1

  • Проверить конкретный маршрут (куда пойдёт пакет):

/ip route get 8.8.8.8

Linux

  • Таблица маршрутов:

ip route show

ip route get 8.8.8.8

  • OSPF/BGP (если FRR/Quagga/BIRD):

vtysh -c "show ip route"

vtysh -c "show ip ospf neighbor"

vtysh -c "show ip bgp summary"

Windows

  • route print — таблица маршрутов

  • tracert, ping, netstat -rn

Диагностика соседства

  • OSPF: neighbor state должен быть FULL. Если не — проверь MTU, hello/hold timers, аутентификацию, area mismatches.

  • BGP: Established — если нет — проверь AS, remote-address, TCP connectivity, MD5, TTL (multihop). show ip bgp даст причины, почему маршрут не выбран.


10. Типичные сценарии и рекомендации

Малый офис (1–3 роутера)

  • Статика + default route. Если появится потребность — OSPF на туннелях (WireGuard).

  • Use static for WAN, maybe OSPF internal for dynamic internal links.

Несколько филиалов (до ~50 роутеров)

  • OSPF или iBGP с route summarization. Используйте area design (backbone + per-site area или per-region area).

Большая инфраструктура / мультихом (провайдер)

  • BGP — edge routers, route filters, prefix limits, RPKI validation, route reflectors для iBGP.

  • Используйте communities для управления входящим трафиком.


11. Частые ошибки и как их избежать

  • Оставленные статические маршруты, мешающие динамике — используйте floating static с большей distance при переходе на OSPF.

  • Redistribute без тегов — приводит к routing loops и дублированию. Всегда тегируйте и фильтруйте.

  • Не фильтровать BGP import/export — риск анонса чужих префиксов (BGP hijack).

  • Неправильный router-id или area в OSPF — соседства не формируются.

  • MTU mismatch на туннелях — OSPF/BGP adjacency может не подниматься или фрагментация убьёт TCP-performance.


12. Короткая шпаргалка команд (микро-подытог)

  • Добавить статический маршрут:

/ip route add dst-address=10.0.0.0/24 gateway=192.168.1.1

  • Добавить OSPF instance / area / networks — см. раздел OSPF выше.

  • Добавить BGP peer:

/routing bgp peer add name=peer1 remote-address=203.0.113.2 remote-as=65002

  • Проверить маршрут для адреса:

/ip route get 8.8.8.8

  • Показать OSPF соседей:

/routing ospf neighbor print


Заключение — как выбрать подход

  • Статический — если сеть простая и стабильная.

  • OSPF — если у тебя много внутренних сетей, нужны быстрые реакции на отказ и не требуется глобальная политика.

  • BGP — если речь о междоменной маршрутизации или управлении мультихом-выходами к провайдерам.

  • Часто гибрид — статические маршруты для некоторых путей + OSPF внутри + BGP на границе.