img

Основы BGP

BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступности между автономными системами (AS) в Интернете. Пока не пугайся - к тому, что такое автономная система мы еще вернемся.

icon strelka icons icons

узнай больше на курсе

Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Онлайн-курс по MikroTik
Научись работать со стремительно набирающим популярность MikroTik
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Онлайн-курс по сетевым технологиям Huawei
Настрой сеть компании, используя оборудование Huawei в симуляторе eNSP
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

Упрощая: BGP - это метод маршрутизации, который позволяет интернету функционировать. Без него вы бы не смогли выполнять поиск в гугле, даже посмотреть эту статью. Можно уверенно сказать, что BGP, наряду с DNS, являются самыми важными для Интернета протоколами.

Существует 2 типа BGP - iBGP для маршрутизации внутри сети, где i обозначает Internal и eBGP для внешней (External) маршрутизации, хотя его обычно называют просто - BGP.


Немного истории

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

Но интернет недолго оставался маленьким. Стало появляться все больше и больше сетей, что потребовало динамического метода обмена информацией о маршрутах. Так появился EGP (Exterior Gateway Protocol) - протокол внешнего шлюза.

Это был простой протокол маршрутизации, который работал по древовидной иерархической топологии, то есть как веточки у дерева. Это когда чтобы добраться до точки E или F, A должен пройти через B, C и D.

Топология

Другими словами - при EGP, ни о какой интеллектуальной, как видосы на нашем канале, маршрутизации не могло быть и речи. И когда Интернет стал ещё больше, недостатки EGP стали очевидны всем. Так и появился BGP.


Autonomous System

В самом начале мы обещали вернуться к автономным системам: так вот Autonomous System или AS это сеть или набор подсетей, которые объединены общей внутренней политикой маршрутизации.

Внутри этих подсетей работает свой протокол маршрутизации, например OSPF или EIGRP. Это мы и называем внутренней политикой маршрутизации.

Автономными системами управляют отдельные организации, как правило - интернет-провайдеры, различные ВУЗы, коммерческие компании или крупные корпорации типа Google или Facebook.

Даже ты сейчас сидишь в какой-то AS. Вот например AS в которой находится наша база знаний wiki.merionet.ru.

Autonomous System

Каждая AS имеет свой уникальный номер - AS Number (ASN) и диапазон IP адресов, то есть подсеть. А BGP обеспечивает обмен информацией о маршрутах между этими системами.


BGP в деталях

Так как на BGP возложена великая задача – соединение автономных систем во всем Интернете, то он должен быть очень надежным. Так что в самом начале работы, BGP-маршрутизатор инициирует установление TCP сессии на 179 порт к своему соседу

Если TCP-сессия установлена успешно, то BGP-маршрутизаторы начинают обмен сообщениями OPEN в котором сообщают свои номер автономной системы (ASN), идентификатор маршрутизатора, который называется RouterID и Hold timer.

Hold timer это время, в течение которого будет поддерживаться TCP-сессия. Если одному роутеру что-то не понравится, например не совпадёт информация о номере AS, то сообщением NOTIFICATION он уведомит об этом своего соседа и сбросит TCP-сессию.

Соединение по BGP должно быть абсолютно согласовано администраторами автономных систем, желающих организовать стык.

Обмен сообщениями

Если, скажем, администратор AS1 запустил процесс BGP на маршрутизаторе R1 указав в качестве соседа R2 и его ASN, а администратор AS2 ничего не настроил, то TCP-сессия не поднимется и системы так и останутся несвязными. Да, все верно, администраторы настраивают BGP вручную.

Если же все условия соблюдаются, то маршрутизаторы, с определенным интервалом, начинают слать друг другу сообщения KEEPALIVE, означающие “Я ещё жив и со мной можно работать!”

Наконец, маршрутизаторы могут приступать к обмену маршрутной информацией по средствам сообщения UPDATE. Структура данного сообщения делится на две части:

  • Path Attributes (Атрибуты пути) - здесь указывается из какой AS поступил маршрут, его происхождение и следующий маршрутизатор для данного пути.
  • NRLI (Network Layer Reachability Information) - здесь указывается информация о сетях, которые нужно добавить в таблицу маршрутизации, т.е IP-адрес сети и ее маска.

Сообщение UPDATE будет передаваться каждый раз, когда один из маршрутизаторов получит информацию о новых сетях, а сообщение KEEPALIVE на протяжении всей TCP-сессии.

BGP принимает решения о наилучшем пути на основе текущей сложности маршрута, количестве хопов (то есть точек маршрутизации) и других характеристик пути. BGP анализирует все данные и устанавливает одного из своих соседей в качестве следующей остановки для пересылки пакетов в определенную сеть.

Каждый узел управляет таблицей со всеми известными ему маршрутами для каждой сети и передает эту информацию своим соседним автономным системам. Таким образом, BGP позволяет роутерам собирать всю информацию о маршрутизации из соседних автономных систем и далее анонсировать эту информацию соседям.

Именно таким образом и работает маршрутизация во всем Интернете.

Сбои в работе BGP ни раз приводили к недоступности целых частей Интернета. Помнишь как в октябре 2021 во всем мире прилёг Facebook, а с ним и остальные его сервисы - Instagram, WhatsApp?

Это случилось потому, что из-за ошибки инженеров, информация о маршрутах к серверам Facebook, которая рассылается, как ни странно, по протоколу BGP, была удалена, а это вызвало невозможность разрешения доменного имени Facebook по DNS. Дошло до того, что инженерам FB пришлось выпиливать двери в серверную, чтоб всё починить, потому что система пропусков тоже была завязана на их сервисы и не работала!

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по MikroTik
Научись работать со стремительно набирающим популярность MikroTik
Подробнее о курсе
Онлайн-курс по сетевым технологиям Huawei
Настрой сеть компании, используя оборудование Huawei в симуляторе eNSP
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Еще по теме:
img
XMPP – это основа для создания приложений с обменом сообщениями в реальном времени. Узнайте, как этот протокол работает, его особенности, преимущества и почему его продолжают использовать спустя два десятилетия.
img
Улучшение сети: находите и устраняйте задержки с помощью Wireshark.
img
Рассказываем про рекомендации для DNS по безопасности и производительности
img
Рассказываем как работает Wi-Fi 2.4 vs 5 ГГц: что лучше и почему вай фай опасен для здоровья?
img
Рассказываем про то, как RPKI защищает BGP маршрутизацию
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59