Как работает BGP: основы маршрутизации в Интернете
Узнайте, как работает протокол BGP: маршрутизация между автономными системами, типы сообщений, атрибуты и настройка BGP на Cisco.
Основы работы протокола BGP: как работает маршрутизация в Интернете
Когда мы с вами загружаем какой-нибудь сайт или отправляем сообщение, для нас всё происходит мгновенно и просто. Однако в реальности данные проходят длинный путь из одной сети в другую, и именно маршрутизация (процесс выбора пути) обеспечивает их быструю доставку. В центре этой системы находится протокол BGP (Border Gateway Protocol) — основной протокол маршрутизации в Интернете, который координирует передачу данных между сотнями тысяч сетей по всему миру.
BGP — это протокол динамической маршрутизации, который является своего рода навигатором для Интернета — он выбирает маршрут на основе множества критериев, используя атрибуты маршрута . Эта статья поможет вам понять, как работает BGP, зачем он нужен и какие механизмы стоят за загрузкой страницы в браузере.
Перед тем как углубиться в детали, давайте коротко обозначим ключевые моменты.
- BGP — это основной протокол маршрутизации между автономными системами.
- Автономная система (AS) — это набор сетей и маршрутизаторов, управляемых одним или несколькими операторами и имеющих единую строго определенную политику маршрутизации.
- Сообщения BGP (OPEN, UPDATE, KEEPALIVE, NOTIFICATION) координируют установку соседства между роутерами и обмен маршрутной информацией между ними.
- BGP-атрибуты (AS_PATH, LOCAL_PREF, NEXT-HOP, ORIGIN, MED, COMMUNITY) - параметры, которые влияют на выбор лучшего маршрута.
- Full View (Глобальная таблица маршрутов) — совокупность всех префиксов в сети Интернет, содержит более 950 тысяч IPv4 маршрутов (на 2024–2025 гг.).
- Настройка BGP требует аккуратности: ошибки могут вызвать сбои глобального масштаба.
- iBGP и eBGP используются для связи внутри и между автономными системами и имеют разные функции: внутренняя и внешняя маршрутизация соответственно.
- BGP hijacking, отсутствие политик и правил фильтрации маршрутов — реальные угрозы безопасности, используемые злоумышленником для перехвата и перенаправления трафика по неверному пути.
TTL Security (GTSM) — один из методов защиты BGP-сессий путем контроля значения поля TTL в заголовке IP-пакета.
Что такое маршрутизация в Интернете и зачем нужен BGP
Каждый раз, когда вы отправляете email или открываете видео в Интернете, ваши данные проходят через десятки, а иногда и сотни сетей. Эти сети принадлежат разным организациям: провайдерам, университетам, дата-центрам, корпорациям. Каждая из них, как правило, является отдельной автономной системой (AS), и чтобы данные могли свободно путешествовать между ними, им нужен общий "язык" маршрутизации. Именно эту роль играет BGP.
BGP позволяет автономным системам обмениваться информацией о доступных маршрутах и контролировать этот процесс. Это дает возможность настраивать на маршрутизаторах сложные правила: какие маршруты принимать, какие игнорировать, и с кем вообще "разговаривать".
Здесь важно понимать, что BGP хоть и делает Интернет более гибким, не стоит забывать про безопасность — при неправильной конфигурации одна автономная система может случайно (или намеренно) "захватить" чужие маршруты.
Основные характеристики BGP
Что такое автономная система (AS)
Автономная система (AS) — группа сетей и маршрутизаторов, принадлежащих одному или нескольким операторам с единой политикой маршрутизации. Каждая AS имеет свой уникальный номер AS (AS Number), по которому другие могут её идентифицировать, и каждой принадлежат свои блоки IP-адресов (префиксы). Маршрутизаторы на границе автономных систем строят свои маршруты и могут по-своему интерпретировать входящий и исходящий трафик.
Надёжность и устойчивость BGP
Одним из ключевых преимуществ протокола пограничного шлюза (Border Gateway Protocol) является его устойчивость. BGP строит маршруты на основе информации, которую получает от роутеров-соседей, и если вдруг один маршрут становится недоступным, то система выбирает альтернативу.
Важно помнить, что BGP не проверяет подлинность маршрутов. Это делает его уязвимым к таким атакам, как BGP hijacking — когда маршрутизатор ошибочно или злонамеренно анонсирует чужие префиксы. Например, инцидент с Pakistan Telecom и YouTube в 2008 году, когда BGP-анонс привел к глобальной недоступности сервиса.
Что произошло?
В феврале 2008 года пакистанский провайдер Pakistan Telecom по указанию правительства попытался заблокировать доступ к YouTube внутри страны, из-за публикации спорного контента.
Для этого они настроили BGP таким образом, что сами для своих клиентов начали анонсировать префиксы, принадлежащие YouTube (AS 36561), фактически объявив себя их владельцем вместо Google. Но вместо того чтобы ограничить распространение этих префиксов только внутри Пакистана, эти маршрутные обновления попали в глобальную сеть через внешний стык с оператором PCCW (Гонконг), который не фильтровал входящие BGP-анонсы должным образом.
Последствия
- Трафик к YouTube по всему миру начал направляться через Pakistan Telecom, который, естественно, не мог обслуживать запросы и просто отбрасывал пакеты.
- Это вызвало глобальную недоступность YouTube на несколько часов.
- Google и операторы срочно внедрили политики фильтрации маршрутов и скорректировали свои таблицы, чтобы устранить проблему.
Этот случай стал одним из первых массовых примеров BGP hijacking, указав всем на отсутствие встроенной безопасности в BGP, важность фильтрации принимаемых анонсов маршрутов на границах AS и на необходимость внедрения мер повышения безопасности маршрутизации в сети Интернет (RPKI и MANRS). Поэтому в реальных сетях применяются дополнительные меры, такие как RPKI, фильтрация маршрутов, а также TTL Security Hack (GTSM) для защиты eBGP-сессий от подмены источника и искажения сообщений.
Масштабируемость: как BGP справляется с ростом Интернета
BGP — это протокол, который масштабируется с ростом Интернета, и сегодня он позволяет тысячам маршрутизаторов и серверов по всему миру обрабатывать сотни тысяч маршрутов и продолжать работать стабильно. Из-за гибкости и возможности изменения атрибутов маршрутов, он широко используется как в корпоративных, так и в операторских сетях.
По состоянию на 2025 год в глобальной BGP-таблице более 950 000 IPv4 маршрутов и около 200 000 IPv6 маршрутов. Протокол остается масштабируемым даже в условиях постоянного роста, благодаря специальным механизмам агрегации, фильтрации и распределённой архитектуре.
Отношения соседства, типы BGP-сообщений и атрибуты маршрутов
Как устанавливается BGP-соседство (peering) и какие типы BGP-сообщений используются
Чтобы начать обмениваться маршрутной информацией, роутерам предварительно необходимо установить BGP-соседство. Для этого используется TCP-соединение на порту 179. После установки TCP-соединения роутеры-соседи отправляют друг другу сообщения OPEN для согласования параметров сессии и синхронизации таймеров. Определение достижимости и статуса BGP-cоседей осуществляется с помощью механизма KEEPALIVE, а в случае ошибок и сбоев отправляется сообщение NOTIFICATION. UPDATE несёт маршрутную информацию и может содержать десятки префиксов и атрибутов.
Основные BGP-атрибуты: AS_PATH, LOCAL_PREF, MED, COMMUNITY
BGP маршруты распространяются вместе с атрибутами, по которым выбирается лучший маршрут. Рассмотрим основные:
AS_PATH — Список AS, через которые проходит пакет в сеть назначения. Используется для определения кратчайшего "пути".
LOCAL_PREF — Локальное предпочтение маршрута на маршрутизаторе. Чем выше — тем приоритетнее.
MED — Указывает внешним соседям, какой путь в AS предпочтительнее (используется в eBGP).
COMMUNITY — Гибкий тег, используемый для маркировки маршрутов.
NEXT_HOP — IP-адрес маршрутизатора, через который будет передан пакет в сеть назначения.
Пример BGP маршрута:
Интерпретация вывода:
Чтобы отправить пакет в сеть 203.0.113.0/24, нужно переслать его через 192.0.2.1. Этот маршрут проходит через три автономные системы 65005 → 65004 → 65001. Внутри своей AS он имеет высокий приоритет (200), и если другие альтернативные маршруты имеют локальное предпочтение меньше 200 — он будет выбран в качестве лучшего
iBGP vs eBGP: в чём разница?
- iBGP (Internal BGP) — используется внутри автономной системы, для связи в пределах AS.
- eBGP (External BGP) — применяется для связи между AS, т.е. это внешняя маршрутизация, основа глобального Интернета.
Основные отличия в правилах распространения маршрутов, TTL, и в типах связей.
Примеры базовой настройки BGP на маршрутизаторе Cisco
Рассмотрим пример базовой настройки BGP между двумя автономными системами на Cisco-оборудовании:
Таким образом:
- router bgp 65001 — задаём номер нашей AS;
- neighbor 192.0.2.2 remote-as 65002 — указываем IP-адрес соседа и его AS;
- network 203.0.113.0 — объявляем сеть, которую хотим анонсировать своим BGP-соседям.
Если настройки соседа на противоположной стороне выполнены корректно, маршрутизатор начнет обмениваться маршрутной информацией с соседом и получать обновления от него, параллельно строя таблицу маршрутизации на основе BGP-атрибутов.
Настройка BGP требует предельной точности. Малейшая ошибка может привести к некорректности таблицы маршрутизации и даже повлиять на таблицы внешних соседей. Поэтому перед внедрением в продакшн настоятельно рекомендуется проверять всё в тестовой среде.
Использование BGP в облаках
В облачных средах, таких как AWS и Azure, BGP используется для построения соединений типа VPN, Direct Connect и ExpressRoute, интегрируя локальные инфраструктуры с облаком на уровне маршрутизации между сетями.
Заключение
BGP, как мозг глобальной маршрутизации, соединяет миллионы сетей в слаженное интернет-пространство. Его задача — выбирать маршруты не только по техническим характеристикам, но и с учётом сложных политик и правил, заданных операторами связи.
Знание BGP будет особенно полезно тем, кто работает или планирует работать в области сетей, администрирования или кибербезопасности. Если вы хотите изучить основы сетей, и научиться базовым и практическим навыкам сетевого администрирования и построения компьютерных сетей, приглашаем вас на наш практикум по Networks Basics.
FAQs
Можно ли использовать BGP для маршрутизации в облачных средах (AWS, Azure)? Да, крупные облачные провайдеры позволяют использовать BGP для построения VPN и подключения к внешним сетям через Direct Connect или ExpressRoute.
Какие альтернативы BGP существуют? Внутри сетей используют OSPF, IS-IS, EIGRP. Но для взаимодействия между автономными системами альтернатив у BGP нет — он стандарт де-факто.
Насколько безопасен протокол BGP? По умолчанию — не очень. Он не использует шифрование, аутентификацию и подвержен атаке "BGP hijacking". Однако существуют меры защиты: RPKI, фильтрация маршрутов, TTL Security.
Чем отличается iBGP от eBGP? iBGP используется внутри одной AS, eBGP — между разными AS. Они различаются по правилам маршрутизации и обработке атрибутов.
Сколько маршрутов может обрабатывать BGP? Современные маршрутизаторы легко справляются с 800–900 тысячами маршрутов из глобальной BGP-таблицы. Но всё это зависит от оборудования и настроек.