Как BGP работает через TCP?

13

Насколько я знаю, мы используем протоколы маршрутизации для подключения 3-го уровня, меня смущает тот факт, что BGP работает по TCP, который является L4. Как можно установить L4 / TCP без предварительного подключения L3?

смешанный
источник

Ответы:

17

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

На самых краях Интернета все просто; «все так» к вашему интернет-провайдеру. В середине, маршрутизатор может иметь несколько вариантов. Поэтому он использует TCP / IP для перемещения трафика BGP среди своих соседей по маршрутизации. Информация BGP затем сообщает маршрутизатору, какие пути предпочтительнее, когда существует несколько способов получения пакета.

Конечные точки (например, веб-браузеры) и маршрутизаторы говорят по TCP / IP. Но маршрутизаторы используют TCP / IP (связь BGP, состоящая из пакетов TCP / IP), чтобы говорить о том, что делать с другими пакетами TCP / IP, которые им нужны для маршрутизации.

Крейг Константин
источник
Я считаю, что «Но маршрутизаторы используют TCP / IP, чтобы говорить о том, что делать с другими пакетами TCP / IP, которые им нужны для маршрутизации». предполагалось, что «Но маршрутизаторы используют BGP, чтобы говорить о том, что делать с другими пакетами TCP / IP, которые им нужны для маршрутизации».
Оливье Дюлак
1
... Я тоже думал написать это так. В своем последнем предложении я пытался осветить, как разные устройства делают разные вещи с TCP / IP. Я подправлю формулировку.
Крейг Константин
13

Протоколы маршрутизации не "достигают" соединения L3. Они заполняют таблицу маршрутизации (пересылки) маршрутизатора информацией, полученной от других маршрутизаторов.

BGP - это «приложение», которое работает через TCP / IP. Другими словами, маршрутизатор BGP использует TCP / IP для связи с другими маршрутизаторами BGP для обмена информацией о маршрутизации.

Для работы BGP у вас уже должно быть соединение L3 между маршрутизаторами.

Рон Транк
источник
проблема курицы и яйца. «Для работы BGP у вас уже должно быть соединение L3 между маршрутизаторами». Поскольку BGP является протоколом де-факто интернет-маршрутизации, как достигается соединение L3 в Interet
смешано
6
Не проблема курицы и яйца. Как я уже сказал, протоколы маршрутизации не создают соединения L3. Динамики eBGP (почти) всегда напрямую связаны друг с другом. Динамики iBGP полагаются на базовую сеть для обеспечения связи. Другими словами, прежде чем запускать BGP, вам нужно подключение.
Рон Трунк
Я пытаюсь понять, как это началось и каковы причины сегодняшней архитектуры. Итак, в начале было несколько парней с частными сетями, работающими по протоколу IGP, и сказали, что давайте подключим наши сети? почему это делается по IP / TCP, как насчет старых протоколов, таких как Novell или Appletalk
смешано
Это разные (но хорошие) вопросы. Ответы потребуют больше места, чем раздел комментариев. Мы можем переместить это в чат, если вы хотите
Рон Трунк
6

Модель сети OSI и ее уровни полезны для понимания сквозной связи между хостами, но на самом деле она не предназначена для объяснения того, как функционирует плоскость управления сетью. Существует проблема начальной загрузки, присущая установлению полного подключения BGP, но способ осуществления этой начальной загрузки хорошо понятен и не имеет циклических зависимостей.

С точки зрения BGP способ формирования смежности и обмена информацией зависит от типа сеанса.

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

С iBGP все немного сложнее. В простейшей конфигурации все маршрутизаторы в автономной системе будут настроены как часть полной сетки с сеансами iBGP со всеми другими маршрутизаторами в сети. Внутри автономной системы протокол внутреннего шлюза, такой как OSPF или ISIS, для построения топологии внутренней маршрутизации. Когда IGP выполнит свою работу, все маршрутизаторы будут иметь таблицу маршрутизации, заполненную маршрутами для всех соседей iBGP, что позволит сформировать сеанс TCP без циклической зависимости.

Здесь все становится немного интереснее в ситуациях, когда не все маршрутизаторы в автономной системе работают с полной таблицей BGP. Если сетка iBGP не завершена, вы можете получить ситуации, когда маршрутизатор в середине сети имеет другое представление о таблице, чем его прямые соседи. Это вызовет неоптимальную маршрутизацию, а в некоторых случаях петли маршрутизации, которые приведут к пересылке трафика между устройствами до истечения TTL.

Рассел Хиллинг
источник
5

Канал имеет статические адреса и настроенные связанные записи маршрутизации, которые используются для установления сеанса BGP. Используя BGP, таблица маршрутизации расширяется записями, указывающими на другие сети.

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

Например, если мы хотим установить одноранговую связь, мы договоримся о подсети / 30 или / 31, назначим по одному адресу каждому концу сети и создадим сетевой маршрут для этой подсети по этой ссылке, а затем настроим другой как Узел BGP, после чего я получаю дополнительные записи маршрутизации для всех сетей, которые вы объявляете для отправки через ваш маршрутизатор (который, в свою очередь, является частью локально статически настроенного сетевого маршрута).

Саймон Рихтер
источник
Саймон, рад тебя снова слышать. Ваш ответ касается только eBGP, но партнерам iBGP нужна только достижимость IGP (т.е. OSPF). Не могли бы вы добавить больше для дела iBGP?
Майк Пеннингтон
0
                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---

Предположим, что A и B - маршрутизаторы (в разных или одинаковых AS), а D и C - хосты. Теперь А и В связаны друг с другом и могут общаться. Но как D узнает позицию C, чтобы он мог общаться с C. То же самое верно для C, когда он хочет связаться с D. Теперь, если мы запускаем протокол BGP между A и B, они обмениваются информацией о соединении уровня 3 друг с другом. , Проще говоря, A скажет B, что D связан с ним. Тогда либо B может передать это C, либо, если B является шлюзом по умолчанию для C, в любом случае C может знать положение D.

Таким образом, в этом случае информация о соединении уровня 3 передается между A и B, если A и B запускают протокол BGP.

Таким образом, требуется предварительное соединение BGP между двумя системами для обмена информацией маршрутизации уровня 3. Я только что показал простой пример, чтобы ответить на ваш запрос. В практическом сценарии между узлами BGP происходит обмен гораздо большим количеством данных маршрутизации.

BGP работает по протоколу TCP. Поэтому между ними должен быть открыт TCP-сокет, только тогда они смогут обмениваться данными маршрутизации.

Soumen Das
источник
0

без предварительного подключения L3?

«Связь L3» - это не все или ничего.

Администратор, настраивающий маршрутизатор, настроит интерфейсы с помощью IP-адресов и масок подсетей. На основе этих конфигураций будут созданы неявные записи таблицы маршрутизации, которые позволят маршрутизатору общаться со своими соседями.

Протоколы маршрутизации могут затем работать поверх этого локального соединения L3, чтобы установить более длинное соединение L3.

Питер Грин
источник