Налаштування bgp на cisco - it it s easy

Доброго вам дня.

Як то захопився я обладнанням безпеки (ASA, IPS / IDS) і зовсім забув, що не закінчив огляд налаштувань протоколів маршрутизації на обладнанні cisco :). Зупинилися ми в минулий раз на протоколі OSPF (частина 1 і частина 2). Сьогодні, я вирішив виправити це і пропоную розглянути протокол динамічної маршрутизації - BGP (Border Gateway Protocol). Хоч він і використовується, в основному, в інтернеті, але обійтися без нього в корпоративних мережах (в більшій мірі на кордоні) іноді не виходить. Звичайно, розглядати його ми будемо не з усіх боків, але основні настройки обов'язково подивимося.
Отже, хто зацікавився, ласкаво просимо під кат ...


Не хочу вас завантажувати теорією. Її з легкістю можна знайти на просторах інтернету :). Якщо по ходу розповіді потрібні будуть пояснення, то, звичайно, я їх зроблю.
Пропоную сьогодні розглянути основні принципи роботи BGP. Торкнутися, так само, основні параметри для організації зв'язку, розглянути різні способи додавання мереж в BGP і що-небудь ще :).
Грунтується BGP на так званих автономних системах (AS - Autonomous System). Умовно кажучи, кожна група мережевих пристроїв, що належить до тієї чи іншої організації, поміщається в свою унікальну автономну систему, всередині якої використовується Interior BGP (внутрішній BGP, IBGP) для обміну маршрутною інформацією між роутерами. Для обміну маршрутною інформацією між автономними системами використовується External BGP (зовнішній BGP, EBGP).
Для кращого розуміння процесу зберемо таку схему:

Налаштування bgp на cisco - it it s easy


Видно, що процес BGP запущений і «сусід» присутній, але поки не відповідає, тому що не налаштований. На відміну від інших протоколів динамічної маршрутизації, «сусідство» в BGP необхідно налаштовувати вручну. Так що, якщо ви будете його налаштовувати з постачальником послуг (ISP), то необхідна взаємодія з обох сторін.
Продовжимо і тепер зайдемо на роутер R4:
  • R4> en
    R4 # conf t
    R4 (config) #hostname R4
    R4 (config) #int loopback 4
    R4 (config-if) #ip address 4.4.4.4 255.255.255.255
    R4 (config-if) #exit
    R4 (config) #int serial 0/0
    R4 (config-if) #ip address 10.1.12.2 255.255.255.252
    R4 (config-if) #no shutdown
    R4 (config-if) #exit
    R4 (config) #int serial 0/1
    R4 (config-if) #ip address 10.1.13.2 255.255.255.252
    R4 (config-if) #no shutdown
    R4 (config-if) #exit
    R4 (config) #int serial 0/2
    R4 (config-if) #ip address 10.1.14.1 255.255.255.252
    R4 (config-if) #no shutdown
    R4 (config-if) #exit
    R4 (config) #router bgp 1100
    R4 (config-router) #neighbor 10.1.14.2 remote-as 2200
    R4 # wr
    R4 #
    * Mar 1 00: 11: 21.411:% BGP-5-ADJCHANGE: neighbor 10.1.14.2 Up - «сусідство» встановилося R4 #
Зупинимося знову і подивимося, що у нас вийшло на роутері R4:

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy


Все нормально, маршрути присутні як в таблиці маршрутизації BGP, так і в загальній таблиці. Тепер, що ми бачимо на R1:

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy

Налаштування bgp на cisco - it it s easy


Все в порядку. Нехай вас не лякає маршрут з маркером «r». Це означає лише те, що роутер не може додати цей маршрут в таблицю маршрутизації, так є маршрут з меншою адміністративної дистанцією (AD), а саме, отриманий через OSPF.
З малюнків видно, що сусідство встановлено «кожен з кожним». Тут слід зазначити ще одну особливість BGP. Це правило «BGP Split horizon». Воно звучить приблизно так:
- не оголошувати маршрути, отримані через IBGP, іншим сусідам IBGP. Іншими словами, якщо R2 отримає маршрути від R4, то він вже не буде їх розсилати далі роутера R1 і R3, так як вони є IBGP сусідами.
Ось з цієї причини ми і реалізували схему «кожен з кожним» (full mesh). В іншому випадку, якби у R1 не було б сусідства з R4, то і маршрутів від R5 ми б не побачили. Можете перевірити, якщо хочете :).
І тепер команда ping з роутера R1:

Налаштування bgp на cisco - it it s easy


Я використовував так званий розширений режим команди ping, так як необхідно, щоб джерелом (source IP) був 1.1.1.1. Все пройшло успішно.
Як і обіцяв, приведу конфігурації роутерів для орієнтування і звірки (приведу тільки те, що налаштоване для економії місця):


З нетерпінням чекаю вас в наступних постах.

З повагою, Ant0ni0n

Прошу вибачення час пізніше затупил :) все рашілось додаванням net 192.168.1.0 mask 255.255.255.0 на R1)) на днях на свіжу голову попробуюс NAT провернути варіант

Хм. Цікавий питаннячко :)
Може можна спробувати ось таку команду:
====
neighbor ttl-security hops 2
====
Просто так як ми встановлюємо сусідство на loopback інтерфейс, то там вже виходить віднімається значення TTL. Або спробувати додати цю команду в налаштування peer-group, щоб не писати для кожного neighbor-а.

neighbor ttl-security hops 2
Ця опція для EBGP
Дане питання у мене має чисто лабораторний інтерес, в принципі побудова BGP поверх OSPF криміналом не вважаю, аж ніяк. Виключно освітній інтерес.

Все здорово. Одне маленьке зауваження: я люблю запускати процес OSPF безпосередньо на інтерфейсі (cofig-if # ip ospf 100 area 0 наприклад). Таким чином можна не шукати, на якому інтерфейсі відключити updates (passive-interface) OSPF, про який Ви забули. Це дрібниця в наведеній Вами топології, але ж буває складніше, і тоді не засмічувати трафф дуже важливо.
Access-list можна було спростити:
R5 (config-ext-nacl) #permit ip 100.1.1.0 0.0.7.0 any
R5 (config-ext-nacl) #deny ip any any
От якось так:)

а можна було використовувати OSPF де R1-R4 а струму на R5 BGP? так як він у нас з іншого автономної сістеми.поясніте цей момент

Ні, не можна. Для твого варіанту на R1-R4 OSPF на R4 bgp однієї автономної системи на R5 інший. На R4 або редістрібуцію з і в OSPF або оголосить мережі безпосередньо в BGP.

Добридень! Дякую за відмінне і дуже докладний опис роботи BGP російською мовою. Все запустилось і запрацювало.
Мені, як і Аноніму вище система здалася злегка надлишкової (два протоколи маршрутизації). Я зробив такий спосіб - на R4 для процесу BGP додав настройки:
redistribute ospf 1 match internal
redistribute ospf 1 match connected

Для протоколу OSPF, навпаки, прописав розсилку маршрутів, отриманих від R5 через BGP.
redistribute BGP 1100 subnets (якщо не додавати ключ subnets, то з BGP беруться тільки classful маршрути).

Такі настройки дозволили не налаштовувати BGP - сусідів між усіма маршрутизаторами системи (тільки між R4-R5).

Підкажіть, чи є якісь потенційні недоліки у такої схеми? За логікою, мені здається більш розумним використовувати BGP тільки для передачі маршрутів між AS (або всередині AS для обміну маршрутами між прикордонними маршрутизаторами). А для решти всередині AS користуватися вже OSPF.

Питання навздогін минулого посту: Які переваги від використання BGP для передачі маршрутів по BGP між граничними маршрутизаторами однієї системи. У моєму випадку при налаштуванні BGP-линка між R1 і R3, проміжний маршрутизатор (R2) про ці маршрутах не підозрював і безтурботно відкидав пакети.

Виходить, що або робити схему сусідства все з усіма, або тільки між AS. Або я помиляюсь?

Спасибо большое за відмінну статтю, яка дає розуміння роботи BGP

постійні читачі

Архів блогу

Схожі статті