Learning Platform
Глоссарий Troubleshooting
Урок 07.04 · 18 мин
Начальный
OSPFBGPRouting ProtocolsAS

Routing protocols — OSPF внутри AS, BGP между AS

В прошлых уроках мы видели, как роутер использует routing table для выбора next-hop. Но кто заполняет эту таблицу? В маленькой сети — админ руками (static routes). В большой — автоматически работают протоколы маршрутизации. Без них интернет бы вообще не функционировал: 75,000+ автономных систем (AS) не управляются вручную.

В этом уроке кратко разберём, какие бывают routing protocols, чем отличаются интерьерные (внутри AS) от экстерьерных (между AS), что такое OSPF и BGP в общих чертах. Это обзорная тема — без deep dive. Но DE её знать важно: когда вы слышите «BGP-обновления», «маршрут пропал в OSPF», «AS-path» — вы понимаете, о чём речь.


Зачем динамические протоколы

В сети из 5 машин со статической маршрутизацией всё нормально. В сети из 100 — админ ходит и руками прописывает маршруты, плачет, но справляется. В сети из 10,000 устройств это уже невозможно.

Проблемы статических маршрутов в больших сетях:

  1. Не реагируют на сбои. Линк упал — маршрут продолжает указывать на него. Пакеты идут в никуда, пока админ не пересоберёт конфиг.
  2. Нет load balancing. Несколько путей с одинаковой стоимостью — статика не знает.
  3. Сложно поддерживать. Поменялась топология — надо обновить десятки роутеров.
  4. Нет инкапсуляции. Если в AS1 появилась новая подсеть, надо вручную сообщить о ней всем партнёрам.

Динамические routing protocols решают это: роутеры общаются друг с другом, обмениваются информацией о доступных сетях и метриках, автоматически перестраивают routing tables при изменениях.


Автономные системы (AS) — кто кому равен

Интернет — это сеть из автономных систем (AS, Autonomous System). AS — это сеть под единым административным управлением. Примеры:

  • Каждый Tier-1 ISP — своя AS (NTT AS2914, Cogent AS174, Lumen AS3356, etc.).
  • Google — AS15169.
  • Facebook — AS32934.
  • Cloudflare — AS13335.
  • GitHub — AS36459 (плюс другие).

Каждой AS присваивается уникальный номер — AS Number (ASN). Раньше 16-битный (0-65535), сейчас 32-битный. Всего в 2026 году в интернете ~110,000 active AS.

Интернет = сеть AS, связанных через BGP
AS15169 GoogleВнутри -- сложная сеть из тысяч роутеров. Внутренняя маршрутизация -- OSPF/IS-IS. Снаружи представляется как одна AS
AS13335 CloudflareТо же -- внутри своя жизнь, снаружи единая AS
AS32934 FacebookТо же
BGP between ASВнешняя маршрутизация. AS обмениваются через BGP: 'мы умеем доходить до этих сетей через нас'
AS3320 DTAGTier 1 -- глобальный провайдер
AS6939 HEHurricane Electric -- крупный провайдер с большой BGP-таблицей
AS174 CogentTier 1

Дизайн интернета двухуровневый:

  • Внутри AS работают IGP (Interior Gateway Protocol) — OSPF, IS-IS, RIP, EIGRP.
  • Между AS работает EGP (Exterior Gateway Protocol) — сейчас только BGP.

OSPF — классика IGP

OSPF (Open Shortest Path First, RFC 2328) — самый популярный IGP. Работает на основе алгоритма Дейкстры (shortest path) с link-state базой.

Как работает (упрощённо):

  1. Каждый роутер шлёт LSA (Link-State Advertisement) — описание своих линков и соседей. Эти LSA flooding’ом доставляются всем роутерам в AS.
  2. Каждый роутер собирает все LSA в LSDB (Link-State Database) — полная карта сети. У всех роутеров одинаковая LSDB.
  3. Каждый роутер запускает алгоритм Dijkstra на LSDB — считает кратчайший путь от себя до каждой сети. Получается SPF tree.
  4. Из SPF tree формируется routing table.
OSPF -- каждый роутер строит SPF tree из LSDB
Hello packetsРоутеры периодически шлют hello multicast'ом. Узнают соседей
LSA floodКаждый роутер шлёт LSA с описанием своих линков. Они доставляются всем
LSDBLink-State Database. Полный граф сети у каждого роутера. У всех одинаковый
DijkstraАлгоритм кратчайшего пути. Каждый роутер запускает у себя -- считает path от себя до каждой подсети
Routing tableРезультат -- лучший маршрут к каждой подсети с указанием next-hop и metric

Особенности OSPF:

  • Быстрая convergence. При изменении топологии (упал линк) роутеры пересчитывают SPF за секунды.
  • Loop-free. Алгоритм Дейкстры гарантирует отсутствие петель.
  • Иерархия через areas. OSPF в большой AS разбивается на areas — внутри area полная LSDB, между ними summary. Уменьшает нагрузку.
  • Metric — cost (обычно обратно пропорциональна bandwidth). 1 Gbps линк дешевле, чем 100 Mbps.
  • Multicast вместо broadcast. Hello шлются на 224.0.0.5, OSPF DR — на 224.0.0.6.

OSPF используется:

  • Внутри корпоративных сетей.
  • Внутри AS интернет-провайдеров.
  • В дата-центрах (хотя там сейчас популярнее BGP).
  • Внутри облачных VPC некоторых провайдеров.
# На Linux есть FRRouting / Quagga / BIRD -- демоны для OSPF и других протоколов.
# Пример конфига FRR OSPF:
# router ospf
#  network 10.0.0.0/24 area 0
#  network 10.0.1.0/24 area 0

# Посмотреть состояние OSPF (после настройки):
vtysh -c 'show ip ospf neighbor'
vtysh -c 'show ip ospf route'
vtysh -c 'show ip ospf database'

RIP, IS-IS, EIGRP — другие IGP

Чтобы не углубляться, кратко:

RIP (Routing Information Protocol). Самый старый и простой. Distance-vector алгоритм (а не link-state). Метрика — hop count, максимум 15 хопов. Медленный convergence (минуты), не масштабируется. Сейчас почти не используется — может в каких-то очень маленьких сетях.

IS-IS (Intermediate System to Intermediate System). Похож на OSPF — link-state, Dijkstra. Происхождение из OSI. Используется крупными ISP — многие магистрали мира работают на IS-IS, а не OSPF. Технически работает не поверх IP, а на L2 — что иногда плюс для безопасности.

EIGRP (Enhanced Interior Gateway Routing Protocol). Cisco proprietary (хотя в 2013 году открыли). Гибрид distance-vector и link-state. Convergence быстрее OSPF, но привязан к Cisco-железу. Используется в Cisco-only средах.

В подавляющем большинстве случаев в IT-индустрии вы встретите OSPF, реже IS-IS. RIP и EIGRP — legacy / specialized.


BGP — кровь интернета

BGP (Border Gateway Protocol, RFC 4271) — единственный протокол маршрутизации между AS. Это path-vector протокол: вместо метрики (как в OSPF) BGP передаёт полный список AS на пути до подсети.

Пример. AS1 (Google) хочет сказать AS2 (мой ISP): «У меня есть сеть 8.8.8.0/24».

Сообщение BGP:

Prefix: 8.8.8.0/24
AS-path: 15169
Next-hop: 1.2.3.4 (граничный роутер AS1)

Когда AS2 получает — добавляет себя в AS-path и передаёт дальше: «8.8.8.0/24 через AS2 -> AS15169». И так далее. У каждой AS в интернете есть BGP-таблица — для каждой публичной подсети известны все возможные пути.

BGP -- путь через AS, не метрика
AS15169 GoogleАнонсирует 8.8.8.0/24. AS-path = [15169]
AS3356 LumenПолучил от Google. Дополняет: AS-path = [3356, 15169]. Передаёт своим peer'ам
Мой ISPПолучил от Lumen. AS-path = [my-isp, 3356, 15169]. Это уже 3 хопа AS
BGP RIBRouting Information Base. Полная таблица BGP -- ~950,000 prefixes в 2026. Из неё выбирается лучший путь

Особенности BGP:

  • Огромная таблица. Глобальная BGP в 2026 году — ~950,000 prefixes. Каждый BGP-роутер должен хранить все.
  • Path-vector предотвращает loops. Если AS видит себя в AS-path — отбрасывает (loop).
  • Manual policy. В BGP много манипуляций: можно дать предпочтение одному маршруту, изменить AS-path длину, фильтровать prefixes. Это политика провайдера.
  • TCP-based. BGP работает поверх TCP (порт 179), а не UDP/multicast как OSPF. Соединение между peer’ами — TCP-сессия.
  • Slow convergence. Перестроение глобальной BGP-таблицы после крупного события (типа отвала Tier 1) занимает минуты.

BGP-инциденты — когда мир ломается

BGP — основа интернета, но он построен на доверии. Каждая AS может анонсировать что угодно, и соседи должны фильтровать. Это приводит к инцидентам:

BGP hijack — 2008 Pakistan/YouTube. Пакистанский провайдер хотел заблокировать YouTube внутри страны. Анонсировал 208.65.153.0/24 (часть YouTube) с собой как origin. Но забыли фильтровать наружу — анонс ушёл миру. Многие провайдеры приняли (более специфичный prefix, чем YouTube’овский /22), и весь мировой YouTube-трафик начал идти в Пакистан. YouTube недоступен на 2 часа.

Facebook 2021. Facebook сами случайно убрали себя из BGP-таблицы. Маршрутный апдейт убрал prefixes Facebook’а. 6 часов простоя. Их инженеры даже не могли войти физически в дата-центры (badge-системы тоже на FB).

Cloudflare 2020 / Verizon. Маленький ISP misconfigured — анонсировал гигантскую BGP-таблицу как свою. Verizon-фильтры не сработали, пропустили. Большая часть трафика мира пошла через маленький ISP, тот лёг.

Эти инциденты толкают индустрию к RPKI (Resource Public Key Infrastructure) — криптографическая проверка анонсов. Внедряется, но медленно.


Где можно увидеть BGP сами

Вы можете посмотреть BGP-данные онлайн через BGP looking glasses — публичные интерфейсы провайдеров для глобальных запросов.

# Узнать, какая AS управляет 8.8.8.8:
whois 8.8.8.8 | grep -i origin
# Origin: AS15169

# Или через BGPview:
curl https://api.bgpview.io/ip/8.8.8.8 | python3 -m json.tool

# Looking glasses (примеры):
# - Hurricane Electric: bgp.he.net
# - RouteViews: routeviews.org
# - RIPE RIS: stat.ripe.net

Введя prefix или AS, видите глобальную картину: кто откуда видит этот prefix, какие AS-path, какие пиринги.

# Посмотреть AS-path к google.com из разных точек:
# В разных регионах AS-path к 8.8.8.8 разный
# Это не баг, это feature -- каждая AS выбирает свой путь

IGP + BGP в крупной сети

Современный провайдер сочетает оба:

  1. Внутри AS работает OSPF/IS-IS. Связывает роутеры между собой, считает кратчайшие пути по линкам провайдера.
  2. На границе работает BGP. Обменивается prefixes с соседними AS.
  3. iBGP (internal BGP) — между всеми border-роутерами своей AS. Они синхронизируют между собой BGP-знания.
  4. eBGP (external BGP) — между разными AS.

Это позволяет:

  • Внутренние пересоединения быстро (IGP).
  • Внешние политики гибко (BGP).
  • Прохождение прозрачное (iBGP).

В Kubernetes-кластерах, кстати, часто используют BGP (через Calico/MetalLB) для маршрутизации pod CIDR — bare metal alternative to AWS cloud routing.


Routing protocols vs Mesh / SDN

Альтернативы классическим routing protocols:

1. SDN (Software-Defined Networking). Контроллер централизованно вычисляет routing. Каждый свитч получает forwarding rules. OpenFlow — классика. В дата-центрах — Google’s Andromeda, Facebook’s HW SDN, etc.

2. Service mesh (Istio, Linkerd). На уровне приложений — не маршрутизация пакетов, а маршрутизация HTTP-запросов. Sidecars (Envoy) знают, куда отправлять.

3. Overlay-сети (VXLAN, GENEVE). Поверх IP создаются виртуальные L2-сети. Маршрутизация внутри overlay управляется control plane (часто BGP EVPN).

В классической сети, не cloud-native, вы будете встречать OSPF и BGP в 95% случаев.


Попробуй сам

# 1. Узнать, какая AS управляет вашим IP:
curl ifconfig.me
# 87.123.45.6
whois 87.123.45.6 | grep -iE 'origin|asn|as-?number'

# 2. Узнать AS-path к крупным сайтам:
# Сравните пути к разным:
# https://bgpview.io/ip/8.8.8.8        -- Google
# https://bgpview.io/ip/140.82.121.4   -- GitHub
# https://bgpview.io/ip/93.184.216.34  -- example.com
# Увидите, через какие AS трафик проходит

# 3. Посмотреть глобальную BGP routing table:
# https://www.bgp4.as/
# Размер RIB ~950K prefixes -- столько уникальных IP-сетей в мире

# 4. Установить BIRD или FRR на Linux для экспериментов:
# (если у вас есть две VM в lab):
sudo apt install frr
# Конфиг /etc/frr/frr.conf с OSPF между двумя VM

# 5. Узнать ASN большой компании:
whois -h whois.cymru.com " -v 8.8.8.8"
# AS      | IP      | BGP Prefix       | CC | Registry | Allocated  | AS Name
# 15169   | 8.8.8.8 | 8.8.8.0/24       | US | arin     | 2014-03-14 | GOOGLE - Google LLC

# 6. BGP looking glass online:
# Pick HE: https://lg.he.net/
# Введите 8.8.8.8 -> увидите весь AS-path от HE до Google
# Можно сравнить разные источники (looking glasses из разных стран)

# 7. Реальные BGP-инциденты онлайн:
# https://bgpstream.com/ -- лента всех BGP hijacks в мире

BGP в Kubernetes: Calico и MetalLB анонсируют pod CIDR через BGP
Проверка знанийKnowledge check
Что общего и в чём разница между OSPF и BGP? В каком сценарии вы бы выбрали один, в каком -- другой? И что значит фраза 'AS подняла peering с другой AS'?
ОтветAnswer
OSPF и BGP -- разные классы протоколов маршрутизации, решающие разные задачи. ОБЩЕЕ: оба обмениваются информацией о маршрутах между роутерами, оба строят routing table автоматически, оба умеют обрабатывать изменения топологии. РАЗНИЦА: 1) Scope -- OSPF работает внутри одной AS (интерьерный, IGP), BGP -- между AS (экстерьерный, EGP). 2) Алгоритм -- OSPF link-state с Dijkstra (каждый знает полный граф), BGP path-vector (передаётся список AS на пути). 3) Convergence -- OSPF быстрый (секунды), BGP медленный (минуты-часы). 4) Размер -- OSPF тысячи маршрутов (внутри одной организации), BGP сотни тысяч (вся мировая таблица интернета ~950K в 2026). 5) Метрики -- OSPF cost (обычно от bandwidth), BGP длина AS-path + куча policy-атрибутов. КОГДА ЧТО выбирать: OSPF -- внутри корпоративной сети, внутри дата-центра, внутри VPC, внутри AS провайдера; вы хозяин всех роутеров, нужна быстрая реакция на сбои. BGP -- на границе с другими организациями, для подключения к интернету у провайдера, для пиринга между дата-центрами разных компаний, для anycast (multiple datacenters); нужна политика. PEERING -- термин из BGP: две AS договариваются установить BGP-соединение и обмениваться prefixes напрямую (без транзита через третью AS). Это либо settlement-free (бесплатно для обоих, обычно равные по размеру AS), либо платное (transit -- маленькая AS платит большой за полную BGP-таблицу). Пример: ваш ISP подкючился к IX (Internet Exchange) и поднял peering с Google -- теперь трафик из вашего ISP в Google идёт напрямую без транзита через Tier 1, быстрее и дешевле.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Чем интерьерный протокол (IGP) отличается от экстерьерного (EGP)?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 4