AS 100AS 200AS 300AS 400Tier 1AS 1

Протокол пограничного шлюза

11 минута чтениясеть

Интернет — это не одна сеть — это десятки тысяч независимых сетей, объединенных единым протоколом маршрутизации с 1989 года. BGP решает, как пакеты попадают из одной из этих сетей в любую другую. Когда BGP выходит из строя, ломается Интернет; целые страны отключились от сети из-за одного неправильно набранного маршрута. Понимание этого объясняет, почему.

Полный текст статьи на английском языке представлен ниже.

BGP (протокол пограничного шлюза) — это протокол маршрутизации, используемый между крупными независимыми сетями в Интернете. Существует около 75 000 таких сетей, называемых автономными системами, и BGP — это то, как они сообщают друг другу, к каким диапазонам IP-адресов они могут подключиться и по какому пути. Каждый пакет, пересекающий границы интернет-провайдера, куда-то направлялся по решению BGP.

Основная идея

Каждая автономная система (AS) объявляет своим соседям: «Я могу достичь этих IP-префиксов». Соседи распространяют объявление, добавляя свой собственный номер AS. Принимающая AS видит что-то вроде «префикс 8.8.8.0/24 доступен через AS 15169 (Google) через AS 3356 (Lumen) через AS 1234 (ваш интернет-провайдер)». Каждая AS оценивает эти пути с помощью настраиваемой политики — кратчайший путь AS, самые дешевые пиринговые отношения, минимальная задержка, независимо от решения оператора сети — и устанавливает выигрышный маршрут в свою таблицу пересылки.

BGP работает через TCP через порт 179. Два маршрутизатора BGP устанавливают сеанс и постепенно обмениваются обновлениями при каждом изменении маршрутов. Никаких трансляций и флудов нет; все это одноадресная рассылка.

eBGP против iBGP

TДва варианта совместного использования BGP:

  • eBGP (внешний BGP) работает между двумя разными автономными системами. Так оператор уровня 1 узнает маршруты от своего интернет-провайдера или как Google взаимодействует с Comcast на интернет-бирже.
  • iBGP (внутренний BGP) запускает inside в одной AS для распространения внешних маршрутов, полученных одним маршрутизатором, на все остальные маршрутизаторы в той же сети. Без iBGP AS с несколькими маршрутизаторами не могла бы знать свое собственное коллективное представление об Интернете. Типичный интернет-провайдер предпочитает:

    1. Маршрутизация через своих клиентов (они платят ему за транзит) через одноранговые узлы (без денег) вышестоящим поставщикам услуг (он им платит).
    2. Более короткие длины AS-путей, разрешение конфликтов на основе локальных предпочтений и наименьший идентификатор маршрутизатора.
    3. Конкретные значения MED, согласованные между Peers.

    Это означает, что маршруты BGP могут быть намеренно неоптимальными по задержке или количеству переходов, если это предусмотрено политикой. Такова задумка: BGP — это протокол, в котором бизнес-модель встречается с проводной сетью.

    Знаменитые сбои в работе

    BGP, неправильные конфигурации, стали причиной некоторых из крупнейших сбоев в работе Интернета в истории. В 2008 году компания «Пакистан Телеком» заблокировала YouTube по всему миру, объявив более конкретный маршрут. China Telecom на короткое время поглотила 15% всего интернет-трафика в 2010 году, объявив о десятках тысяч префиксов, которыми она не владела. Массовый сбой в работе Facebook в 2021 году произошел из-за отказа BGP, в результате которого их авторитетные DNS-серверы были отключены от Интернета, после чего они даже не смогли войти в свои здания, чтобы исправить это.

    Общая тема: BGP — это протокол, основанный на доверии. До недавнего времени не существовало криптографической проверки того, кто какие префиксы может объявлять. Кто бы ни объявил об этом громче всех, Интернет поверил.

    RPKI: медленное исправление

    Инфраструктура открытых ключей ресурсов (RPKI) позволяет владельцам адресов криптографически заявлять, что «только эти AS имеют право объявлять мои префиксы». Маршрутизаторы, проверяющие RPKI, удаляют несанкционированные объявления. Развертывание RPKI ускорилось в 2024–2026 годах и теперь охватывает более 50% маршрутизируемых префиксов; большинство основных операторов связи уровня 1 и CDN проходят проверку. Это не полное решение — в RPKI указано, кто имеет право создавать префикс, а не кто имеет право на transit, — но оно устранило множество простых атак. IP-адрес разрешается в зависимости от того, какой из десятков физических серверов находится ближе всего. Cloudflare, 8.8.8.8 от Google и 9.9.9.9 от Quad9 используют произвольную рассылку BGP. Когда вы подключаетесь к одному из этих адресов, маршрутизация BGP выбирает для вас ближайший экземпляр без географического перенаправления на основе DNS.

    Почему сложно заменить

    BGP имеет хорошо известные недостатки: медленная конвергенция (минуты для распространения изменений маршрута), доверие по умолчанию, линейное масштабирование с количеством префиксов (в настоящее время около 1 миллиона IPv4 + 200 000 IPv6). На протяжении многих лет в нескольких исследовательских проектах предлагались замены; ни один не был развернут. Причина в зависимости от пути: каждый маршрутизатор в Интернете поддерживает BGP, каждый оператор построил на нем свою рабочую практику, и никто не хочет первым переключиться на что-то другое. Протокол 1989 года в обозримом будущем станет протоколом Интернета.

    .

Часто задаваемые вопросы

Нужно ли мне как обычному пользователю понимать BGP?
Не напрямую, но это объясняет новость. Когда вы читаете об «утечке BGP» или «серьезном сбое из-за объявления AWS», вы читаете о протоколе маршрутизации, который решил, что ваши пакеты не могут достичь службы. Понимание BGP превращает эти заголовки из расплывчатых в ясные.
Почему в Интернете так много автономных систем?
Каждый значимый сетевой оператор хочет иметь свое. Университеты, интернет-провайдеры, облачные провайдеры, крупные предприятия, сети доставки контента — любой, у кого есть несколько подключений к Интернету, обычно получает ASN для управления собственной политикой маршрутизации. Текущее число составляет около 75 000 по всему миру.
Может ли небольшая сеть объявить любой префикс, который ей нужен?
Технически да — сам BGP не имеет никаких ограничений. На практике вышестоящие провайдеры обычно фильтруют объявления своих клиентов по документально оформленным распределениям, а RPKI все чаще используется для проверки происхождения. Несанкционированные объявления по-прежнему время от времени проскакивают, и именно так происходят перехваты BGP.
Как BGP влияет на производительность VPN?
Когда вы подключаетесь к произвольному IP-адресу коммерческой VPN, BGP выбирает для вас ближайший сервер. Ситуация может измениться в любой момент, если пиринговый канал выйдет из строя или станет доступен новый путь — именно поэтому VPN, которая вчера казалась быстрой, сегодня может работать медленнее не по вашей вине.
Трудно ли изучить BGP?
Основная концепция проста — «кто чего может достичь, размножить соседям». Самая сложная часть — это политика: как атрибуты маршрутов взаимодействуют с местными предпочтениями, MED, сообществами, манипуляциями с AS-путями. Большинство сетевых инженеров, заявляющих о своем опыте работы с BGP, имеют в виду, что они отладили достаточно этих взаимодействий, чтобы знать, что может произойти.
Объяснение BGP: протокол, который объединяет Интернет