Нотатки до CCNP Route BGP частина 1, Twistedminds
Нотатки до CCNP Route: BGP частина 1
Важко знайти більш-менш великий бізнес, який обходиться у своїй внутрішній мережі без протоколів динамічної маршрутизації – IGP (interior gateway protocol). BGP був розроблений IBM та Cisco і продовжував свою еволюцію (на даний момент версія 4), як EGP – exterior gateway protocol. А значить мети, які він переслідує будуть певною мірою відрізнятися від використовуваних в IGP.
BGP, на відміну від EIGRP/OSPF, використовує протокол TCP. Для формування сесії використовується 179 портів. У процесі роботи BGP формує такі таблиці:
- neighbor table – містить у собі інформацію про всіх сусідів;
- BGP table - містить у собі всі можливі маршрути;
- routing table – містить лише найкращі маршрути;
Для формування сусідства і в процесі роботи маю місце такі типи пакетів:
- Open – ініціює сусідство та використовується для обміну базовими параметрами, такими як значення ASN та MD5.
- Keepalive - вирушає час від часу, щоб підтвердити факт того, що сусід все ще живий і здоровий.
- Update – використовується для обміну PA та пов'язаними з ними префіксами (NLRI)
- Notification – сталося щось жахливе. Notification використовується як сигналізація про будь-яку помилку. Наприклад, закриття сесії або не збіг параметрів.
Так само як і IGP BGP анонсує мережі та префікси (Network Layer Reachability Information – NLRI), додаткову інформацію, за якою можна зробити вибір і віддавати перевагу тому чи іншому маршруту. Так само як IGP BGP формує сусідства перед тим як розпочати обмін маршрутною інформацією, проте сусіди не зобов'язані перебувати в одній підмережі. Більшевони можуть бути розділені десятками маршрутизаторів. Наступна відмінність полягає у виборі кращого шляху: замість цілої метрики BGP використовує цілий набір даних, на підставі яких відбувається вибір. Цей набір даних має назву BGP path attributes (PA).
BGP PA: ASN та AS_SEQ
За замовчуванням маршрутизатори BGP будуть використовувати AS_PATH (autonomous system path) для вибору кращого маршруту. AS_PATH як така містить безліч компонентів. Один із них – AS_SEQ – послідовність автономних систем.
Кожній автономній системі надається унікальний номер – ASN. Коли маршрутизатор, що використовує BGP анонсує маршрут, він асоціюється з кількома PA, включаючи AS_PATH, як би кажучи: “якщо буде обраний цей маршрут, шлях до мережі пройде через наступні AS”.
BGP використовує AS_PATH для двох цілей:
- запобігання петель – якщо маршрутизатор бачить свою автономну систему в AS_SEQ, такий маршрут буде проігнорований;
- вибір кращого маршруту, ґрунтуючись на найкоротшому шляху-послідовності AS;
Розглянемо шматочок Інтернету та процес анонсу 18.202.1.0/24:

- Маршрутизатор в AS 200 розповідає вся Інтернет про мережу 18.202.1.0/24 і додає в AS_PATH PA свій ASN - 200.
- Маршрутизатори AS 12 анонсують цей маршрут AS 3400 і AS 809, додаючи в AS_PATH свій номер, отримуючи [200,12] AS_SEQ.
- Маршрутизатори в AS 809 та AS 3400 анонсують маршрут далі сусідам (у тому числі один одному), не забуваючи додати номер своєї AS – [200,12,809] та [200,12,3400].
- У результаті маршрутизатор в AS 10 отримує два шляхи до 18.202.1.0/24 - [200,12,3400] та [200,12,809,3400]. Маршрутизатори в AS 12, побачивши в дорозі номер своєї автономної системитакі маршрути брати до уваги не буде.
Internal та External BGP
Публічні та приватні ASN
Публічні номери AS розподіляються IANA (Internet Assigned Numbers Authority), що дозволяє уникнути дублюючих номерів AS.