BGP

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Автономні системи і BGP

BGP (англ. Border Gateway Protocol, укр. Протокол Граничного Шлюзу) — з 1994 року єдиний протокол маршрутизації між автономними системами в глобальній мережі Інтернет[1], а його розширена версія MBGP (Multiprotocol BGP) використовується в MPLS мережах ІТ провайдерів.

BGP є протоколом міждоменної маршрутизації(en) та належить до класу дистанційно-векторних протоколів(en). Як протокол міждоменної маршрутизації використовується усіма інтернет провайдерами, а також великими компаніями та організаціями, які мають власні публічні номери автономних систем (ASN) та користуються послугами більш ніж одного інтернет провайдера (Мултіхомінг(en)) або мають прямі IP з'єднання з багатьма іншими великими компаніям, що також мають власні публічні номери автономних систем, без використання послуг інтернет провайдерів.

Разом з тим немає ніяких обмежень на використання BGP в локальних мережах крім рекомендацій про приватні ASN (64512-65534).[2], але використання BGP в якості протоколу внутрішньодоменної маршрутизації(en) є недоцільним через значний час конвергенції (збіжності)(en) у порівнянні з іншими протоколами маршрутизації, що закладено в його дизайні.

На відміну від класичного дистанційно-векторного протоколу RIP, метрикою якого є кількість хопів (відрізків шляху) між маршрутизаторами, найкращий маршрут BGP обирається по точно визначеному пріоритету атрибутів, одним із яких, але не самим пріоритетним, є кількість хопів між автономними системами — найкоротший шлях між автономними системами (англ. shortest AS path). Тому іноді цей протокол зараховують до окремого класу шляхо-векторних протоколів(en).[3]

Загальні відомості[ред.ред. код]

На відміну від інших протоколів ІP маршрутизації, де маршрутизатори-сусіди знаходять один одного автоматично, BGP-сусіди мають бути прописані у конфігурації кожного маршрутизатора явно. Також BGP не має своєї власної реалізації комунікації між сусідами для цих цілей BGP використовує протокол TCP (порт 179). BGP-сусіди періодично, за замовченням кожні 60 секунд, надсилають один одному keepalive(en) (чи живий?) повідомлення.

Маршрутизатори BGP часто називають BGP спікерами (speaker). Якщо між ними присутній TCP комунікація то вони стають один одному сусідами або у BGP термінології — BGP пірами (peer).

Маршрути отримані від сусідів з інших автономних систем тобто по eBGP (Exterior, Зовнішній BGP) для маршрутизаторів Cisco мають адміністративну відстань(en) (administrative distance (AD)) — 20, відповідно від сусідів з тієї ж самої АС тобто по iBGP (Interior, Внутрішній BGP) — 200.

BGP атрибути[ред.ред. код]

BGP Топологія

Маршрутизатор на якому працює BGP передає своїм BGP-сусідам (англ. peer) IP префікси та набір атрибутів до них на основі вибору своїх найкращих маршрутів до конкретних IP мереж. В свою чергу ці атрибути використовуються BGP-сусідами для калькуляції своїх власних маршрутів.

Атрибути поділяються на категорії:[4]

  1. Добре-знані (Well-known) — усі BGP реалізації мусять підтримувати ці атрибути
    1. Обов'язкові (Mandatory) — усі BGP маршрутизатори мусять надсилати ці атрибути своїм сусідам
    2. Дискреційні (Discretionary) — надсилання цих атрибутів відбувається на власний розсуд або за обопільною згодою
  2. Додаткові (Optional) — необов'язкові
    1. Транзитні (Transitive) — мають передаватися по ланцюжку від одного маршрутизатора до іншого
    2. Нетранзитні (Non-transitive) — маршрутизатор передає лише своїм BGP-сусідам, які не зобов'язані передавати ці атрибути далі по мережі

Один із лідерів виробництва мережевого обладнання компанія Cisco у своїй документації часто називає локальний параметр своїх BGP маршрутизаторів — WEIGHT (Вага) BGP-атрибутом, хоча він не передається від сусіда до сусіда, а може бути прописаним у конфігурації конкретного маршрутизатора.[5]

Алгоритм вибору маршруту[ред.ред. код]

BGP маршрутизатор призначає перший отриманий маршрут у якості кращого поточного маршруту для конкретної IP мережі. Якщо BGP маршрутизатор отримує новий маршрут то порівнює його з найкращим поточним маршрутом згідно зі списком пріоритетності BGP атрибутів. Якщо поточний крок вирішив неоднозначність то до наступного кроку не переходять, а вважається, що найкращий маршрут знайдено:[6]

  1. Перевага надається маршруту з найбільшим значенням параметра (атрибута) WEIGHT (Вага). Застосовується лише на маршрутизаторах Cisco.
  2. Маршрут, що має найбільше значення атрибуту LOCAL_PREF (Локальна Перевага), за замовченням цей атрибут має значення 100.
  3. Маршрутизатори Cisco надають перевагу своїм власним маршрутам над маршрутами отриманими від BGP-сусідів[7]. Маршрутизатори інших виробників можуть ігнорувати цей крок, або мати свої власні правила.
  4. Надання переваги найкоротшому шляху до конкретної IP мережі на основі атрибуту AS_PATH (Шлях по автономних системах). Тобто кращим маршрутом є той до якого веде шлях через мінімальну кількість автономних систем
  5. Вибір на основі атрибуту ORIGIN (Джерело). Якщо IP префікс якоїсь мережі спочатку був отриманий BGP із протоколу внутрішньодоменної маршрутизації(en) тоді маршрут, що веде до цієї мережі є пріоритетнішим ніж маршрути які отримали IP префікс цієї мережі з EGP (протокол наразі не використовується) або джерело отримання невідоме.
  6. Надання переваги маршруту з найменшим значенням атрибута MED (multi-exit discriminator, дискримінатор мульти-виходу)
  7. Перевага маршруту отриманому через eBGP (Exterior, Зовнішній BGP) над iBGP (Interior, Внутрішній BGP) тобто маршрут отриманий від BGP-сусіда з іншої автономної системи має перевагу над маршрутом отриманим від BGP-сусіда тієї ж самої AS.
  8. Обирається маршрут, який отриманий від ближчого BGP-сусіда. Ближчим сусідом є той до якого є найменшою відстань в таблиці маршрутизації сформованій на основі прямих з'єднань, статичних маршрутів(en) та протоколів внутрішньодоменної маршрутизації (IGP).[8]
  9. Цей пункт виконується, коли ми використовуємо Багатошляховий(en) (Мultipath) BGP, тобто коли для цілей балансування навантаження(en) використовується окрім найкращого один чи більше додаткових маршрутів до конкретної IP мережі. Якщо претендент на найкращий маршрут має такі ж самі характеристик згідно з попередніми пунктами, як і раніше обраний, то він не стає новим найкращим, але може бути обраним, як додатковий. Маршрутизатори CISCO можуть мати до 6-ти BGP маршрутів до конкретної IP мережі.
  10. Маршрут отриманий першим має пріоритет.
  11. Перевага маршруту, що отриманий від BGP сусіда з найменшим значенням його ідентифікатора (Router ID)
  12. Цей пункт виконується лише при використанні багатошляхової маршрутизації. Надається перевага маршруту, що проходить через мінімальну довжину кластерного списку.
  13. Перевага маршруту отриманому від сусіда з найменшою IP адресою інтерфейсу.

BGP бази даних[ред.ред. код]

  1. Таблиця сусідів.
  2. BGP таблиця, яка також часто називається база даних надсилання (forwarding database) або база даних топології (topology database). Таблиця включає у себе усі IP маршрути з їх BGP атрибутами отриманими від сусідів.
  3. Таблиця IP маршрутизації (IP routing table). Тільки найкращі маршрути до конкретних IP мереж обраних згідно з алгоритмом вибору маршруту.

Примітки[ред.ред. код]