Bosh sahifa Wiki BGP

BGP

BGP — internetdagi avtonom tizimlar orasida IP prefikslar haqidagi marshrut ma’lumotlarini almashadigan protokol. Uning to‘liq nomi Border Gateway Protocol hisoblanadi.

BGP internetning global marshrutlash tizimining asosiy qismidir. U “eng qisqa fizik yo‘l”ni oddiy metrika bilan topmaydi. BGP siyosatga asoslangan protokol bo‘lib, operator qaysi prefiksni kimdan qabul qilish, qaysi qo‘shniga e’lon qilish va qaysi yo‘lni afzal ko‘rishni boshqaradi.

Avtonom tizim

Avtonom tizim — bitta umumiy routing siyosati ostida boshqariladigan tarmoq yoki tarmoqlar to‘plami. Har bir avtonom tizim ASN bilan belgilanadi.

Internet provayder, yirik korxona, universitet, bulut platformasi yoki CDN o‘z ASNiga ega bo‘lishi mumkin. Avtonom tizim ichida OSPF yoki IS-IS kabi ichki protokollar ishlaydi, boshqa avtonom tizimlar bilan esa BGP orqali marshrut almashiladi.

BGP ikki ko‘rinishda ishlaydi:

  • eBGP — turli ASNlar orasida;
  • iBGP — bitta ASN ichida tashqi marshrutlarni tarqatish uchun.

BGP sessiyasi

BGP qo‘shnilar odatda TCP 179-port orqali sessiya o‘rnatadi. TCP paketlarning tartibli va ishonchli yetkazilishini ta’minlaydi, BGP esa marshrut siyosati va prefikslarni boshqaradi.

Sessiya bir nechta holatdan o‘tadi:

Idle → Connect → Active → OpenSent → OpenConfirm → Established

Established holatida prefikslar almashiladi. Sessiya uzilsa, shu qo‘shnidan olingan marshrutlar bekor qilinishi va routing jadvali qayta hisoblanishi mumkin.

BGP xabar turlari:

Xabar Vazifasi
OPEN ASN, BGP versiyasi va capabilitylarni kelishish
UPDATE Yangi prefiksni e’lon qilish yoki eski prefiksni bekor qilish
KEEPALIVE Sessiya faol ekanini tasdiqlash
NOTIFICATION Xato haqida xabar berib sessiyani yopish
ROUTE-REFRESH Siyosat o‘zgarganda marshrutlarni qayta yuborishni so‘rash

NLRI va prefiks e’loni

BGP UPDATE xabari Network Layer Reachability Information orqali prefikslarni bildiradi. Masalan, 203.0.113.0/24 prefiksi ma’lum ASN orqali yetib borishini e’lon qiladi.

UPDATE tarkibida prefiks bilan birga yo‘l atributlari ham uzatiladi. Router faqat “bu tarmoq mavjud” degan ma’lumotni emas, unga qanday yo‘l bilan yetishni ham biladi.

Asosiy atributlar

Atribut Mazmuni
AS_PATH Prefiks o‘tgan avtonom tizimlar ketma-ketligi
NEXT_HOP Paket yuboriladigan keyingi router manzili
LOCAL_PREF Bitta AS ichida qaysi chiqish yo‘li afzal ekanini bildiradi
MED Qo‘shni ASga qaysi kirish nuqtasi ma’qul ekanini tavsiya qiladi
ORIGIN Prefiks BGPga qanday kelib tushganini bildiradi
COMMUNITY Marshrutga siyosat qo‘llash uchun belgi
ATOMIC_AGGREGATE Aggregation paytida yo‘l tafsiloti yo‘qolganini bildiradi

AS_PATH loopni aniqlashga ham xizmat qiladi. Router o‘z ASNini yo‘l ichida ko‘rsa, e’lonni qabul qilmaydi.

Yo‘l tanlash

Bir prefiks uchun bir nechta BGP yo‘li kelishi mumkin. Router ulardan bittasini best path sifatida tanlaydi. Aniq tartib implementatsiyaga bog‘liq, ammo odatda quyidagi mezonlar qatnashadi:

  • yuqori local preference;
  • qisqaroq AS_PATH;
  • afzal origin turi;
  • pastroq MED;
  • eBGP yo‘lning iBGP yo‘lga nisbatan ustunligi;
  • next hopgacha IGP xarajatining kichikligi;
  • router ID yoki boshqa tie-breaker.

BGP siyosati ayrim atributlarni ataylab o‘zgartirishi mumkin. Masalan, tashkilot asosiy provayderga yuqori LOCAL_PREF berib, chiquvchi trafikni shu kanal orqali yo‘naltiradi.

Chiquvchi va kiruvchi trafik siyosati

Chiquvchi trafikni boshqarish nisbatan oson: tashkilot o‘z routerida qaysi BGP yo‘lni afzal ko‘rishni belgilaydi.

Kiruvchi trafikni boshqarish murakkabroq, chunki qarorni internetdagi boshqa avtonom tizimlar qabul qiladi. Quyidagi usullar qo‘llanadi:

  • prefiksni faqat ma’lum provayderga e’lon qilish;
  • uzunroq va aniqroq prefiks e’lon qilish;
  • AS_PATH prepending;
  • MED;
  • provayder communitylari;
  • anycast nuqtalaridan bir xil prefiks e’lon qilish.

Bu usullar kafolatlangan buyruq emas, boshqa operatorlarga berilgan routing signalidir. Ularning lokal siyosati natijani o‘zgartirishi mumkin.

iBGP va route reflector

Klassik iBGP qoidasiga ko‘ra, bitta iBGP qo‘shnidan olingan marshrut boshqa iBGP qo‘shniga oddiy tarzda qayta e’lon qilinmaydi. Shu sababli barcha routerlar full-mesh sessiya o‘rnatishi kerak bo‘ladi.

Routerlar soni oshganda full-mesh sessiyalar soni keskin ko‘payadi. Route reflector iBGP marshrutlarini client routerlar orasida aks ettiradi va sessiyalar sonini kamaytiradi. Katta tarmoqlarda bir nechta route reflector zaxira va topologik ajratish bilan ishlatiladi.

BGP filtrlash

BGP sessiya o‘rnatilgani barcha marshrutlarni ishonch bilan qabul qilish mumkin degani emas. Import va export siyosati aniq belgilanadi.

Filtrlash vositalari:

  • prefix-list;
  • route-map yoki policy statement;
  • AS_PATH filter;
  • community filter;
  • maksimal prefiks soni;
  • bogon va maxsus diapazonlarni bloklash;
  • faqat mijozga tegishli prefikslarni qabul qilish.

Noto‘g‘ri filtrlash route leak yoki prefix hijackga sabab bo‘lishi mumkin. Kichik tarmoq tasodifan butun internet jadvalini boshqa provayderga e’lon qilsa, katta miqyosdagi trafik o‘zgarishi yuz beradi.

RPKI

Resource Public Key Infrastructure prefiksni qaysi ASN e’lon qilishga vakolatli ekanini kriptografik hujjatlashtiradi. Prefiks egasi ROA yaratib, ruxsat etilgan origin ASN va maksimal prefiks uzunligini ko‘rsatadi.

Validator BGP e’lonini quyidagi holatlardan biriga ajratadi:

  • Valid — ROA bilan mos;
  • InvalidASN yoki prefiks uzunligi ROAga mos emas;
  • Not Found — tegishli ROA mavjud emas.

Operator Invalid e’lonlarni rad qilishi yoki past ustuvorlikka tushirishi mumkin. RPKI AS_PATHning to‘liq to‘g‘riligini emas, prefiksning origin ASNini tekshiradi.

BGP konvergentsiyasi

Tarmoqdagi yo‘l o‘zgarganda eski e’lon bekor qilinadi va yangi yo‘l tarqaladi. Internet miqyosida bu jarayon bir zumda tugamaydi. Router siyosati, MRAI timer, flap damping va tarmoq topologiyasi konvergentsiya vaqtiga ta’sir qiladi.

BFD BGP qo‘shni yo‘lining uzilishini tez aniqlashi mumkin. Shunga qaramay, juda tez failover global routing jadvalida ko‘p update hosil qilmasligi uchun ehtiyotkor sozlanadi.

BGP monitoringi

BGP holati quyidagi ma’lumotlar orqali kuzatiladi:

  • session state;
  • qabul qilingan va yuborilgan prefikslar soni;
  • best path o‘zgarishi;
  • route flap;
  • policy natijasi;
  • RPKI validatsiyasi;
  • AS_PATH va NEXT_HOP;
  • max-prefix ogohlantirishi;
  • route collector ma’lumotlari.

Sessiya Established bo‘lsa ham, kerakli prefiks kelmagan yoki siyosat tomonidan bloklangan bo‘lishi mumkin. Shu sababli sessiya holati bilan routing jadvali alohida tekshiriladi.

Bog‘liq tushunchalar

ASN, Autonomous system, IP prefix, eBGP, iBGP, AS_PATH, NEXT_HOP, LOCAL_PREF, MED, Community, Route reflector, RPKI, Anycast