Протокол пограничного шлюза
Интернет — это не одна сеть — это десятки тысяч независимых сетей, объединенных единым протоколом маршрутизации с 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 с несколькими маршрутизаторами не могла бы знать свое собственное коллективное представление об Интернете. Типичный интернет-провайдер предпочитает:
- Маршрутизация через своих клиентов (они платят ему за транзит) через одноранговые узлы (без денег) вышестоящим поставщикам услуг (он им платит).
- Более короткие длины AS-путей, разрешение конфликтов на основе локальных предпочтений и наименьший идентификатор маршрутизатора.
- Конкретные значения 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, имеют в виду, что они отладили достаточно этих взаимодействий, чтобы знать, что может произойти.