Динамическая и статическая маршрутизация — развёрнутый практический гид
Здесь — всё, что нужно знать, чтобы уверенно проектировать, настраивать и отлаживать маршрутизацию: от простых статических маршрутов до OSPF/BGP, от выбора маршрута до политики и безопасности. Примеры и команды — в основном для MikroTik RouterOS, плюс Linux/Windows для диагностики.
Краткий план (что будет)
- Принцип работы маршрутизации (recursion, longest-prefix)
- Статическая маршрутизация — когда и как использовать
- Динамическая маршрутизация — виды и принципы (distance-vector vs link-state)
- OSPF — что важно знать и примеры (MikroTik)
- BGP — основы, атрибуты, примеры (когда нужен)
- Комбинация статических и динамических маршрутов (AD, floating routes, redistrib)
- Политики (route filtering, prefix-list, route-maps / routing filters)
- Практические советы по дизайну, безопасность, отладка и проверки
- Частые ошибки и как их избежать
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:
Floating (резервный) static:
Статический маршрут к подсети:
Минусы статиков
-
Не масштабируются (много ручной работы).
-
Не адаптируются к отказам — если следующий хоп упал, маршрут остаётся, пока его не удалят/не обновят.
-
Подходят как часть гибридной стратегии (статик + динамика).
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 можно задавать вручную).
Принцип работы
- Устанавливаются соседства (adjacency).
- Обмениваются LSAs.
- Каждый роутер строит SPF и обновляет локальную routing table.
MikroTik — пример конфигурации OSPF
Или через интерфейсы:
Практические советы по 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 (упрощённо)
Фильтры (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 через другой провайдер:
Если 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):
-
Мангл: пометить трафик с source=192.168.10.0/24:
-
Таблица маршрутов:
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
-
Показать таблицу маршрутов:
-
Показать OSPF соседей / базу:
-
Показать BGP peers:
-
Trace / ping:
-
Проверить конкретный маршрут (куда пойдёт пакет):
Linux
-
Таблица маршрутов:
-
OSPF/BGP (если FRR/Quagga/BIRD):
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. Короткая шпаргалка команд (микро-подытог)
-
Добавить статический маршрут:
-
Добавить OSPF instance / area / networks — см. раздел OSPF выше.
-
Добавить BGP peer:
-
Проверить маршрут для адреса:
-
Показать OSPF соседей:
Заключение — как выбрать подход
-
Статический — если сеть простая и стабильная.
-
OSPF — если у тебя много внутренних сетей, нужны быстрые реакции на отказ и не требуется глобальная политика.
-
BGP — если речь о междоменной маршрутизации или управлении мультихом-выходами к провайдерам.
-
Часто гибрид — статические маршруты для некоторых путей + OSPF внутри + BGP на границе.