Nəzəri əsaslar və memarlıq
IGP bərpa sürəti operatorun xidmət səviyyəsini (SLA) müəyyən edir. OSPF və ya IS-IS standart Hello/Dead taymerləri (10s/40s) optik xətt qırıldıqda saniyələrlə trafik itkisinə səbəb olur. Saniyəaltı (sub-second) nasazlıq aşkarlanması üçün BFD (Bidirectional Forwarding Detection, RFC 5880) tətbiq edilir. BFD IGP-dən müstəqil, 50-100 ms intervallarla işləyir (multiplier 3) və bir çox platformada xətt kartına (ASIC/NPU) ötürülür. Üç paket itdikdə (150-300 ms) BFD sessiyanı Down edir və OSPF, IS-IS, BGP və LDP-yə dərhal xəbər verir; ümumi bərpa vaxtı aşkarlama, SPF və FIB yenilənməsindən ibarətdir. Eyni zamanda bərabər IGP metrikaları vasitəsilə ECMP (Equal-Cost Multi-Path) aktivləşdirilir və trafik paralel yollar arasında balanslaşdırılır.
Metrika mühəndis qərarı kimi
IGP metrikaların minimal cəmi olan yolu seçir, ona görə TE olmayan nüvədə metrika trafiki idarə etmək üçün yeganə rıçaqdır. OSPF-də interfeysin dəyəri default olaraq reference-bandwidth / bandwidth kimi hesablanır, burada reference-bandwidth 100 Mbit/s-dir (Cisco, Huawei, Junos - eyni). 100 Mbit/s-dən sürətli istənilən interfeys cost 1 alır: 1G, 10G və 100G "bərabər" olur, IGP isə 1G linki 100G linkə ekvivalent hesab edir. Düzəliş - reference-bandwidth-i bütün düyünlərdə eyni anda artırmaq (Cisco auto-cost reference-bandwidth 100000, Huawei bandwidth-reference 100000, Junos reference-bandwidth 100g) və ya interfeyslərdə cost-u əllə vermək. Dəyər düyünlərin yalnız bir hissəsində dəyişdirilərsə, eyni linkin iki istiqamətdəki dəyərləri ayrılır və yollar asimmetrik olur.
| Link sürəti | cost 100 Mbit/s-də | cost 100 Gbit/s-də | cost 1 Tbit/s-də |
|---|---|---|---|
| 1G | 1 | 100 | 1000 |
| 10G | 1 | 10 | 100 |
| 100G | 1 | 1 | 10 |
| 400G | 1 | 1 | 2 |
Bölmənin nəticəsi tam ədədə qədər kəsilir və 1-dən az ola bilməz, ona görə 100G/400G şəbəkələri üçün 1 Tbit/s götürülür (Cisco-da 1000000). Router-LSA-da interfeys metrikası sahəsi 16 bitdir (65535-ə qədər), IS-IS wide-da isə link üçün 24 bit və yol üçün 32 bitdir. IS-IS-də reference-bandwidth yoxdur: default metrika istənilən interfeys üçün 10-dur və o, həmişə əllə layihələndirilir.
Metrika dizaynının prinsipləri
Metrika "gözəlliyi" yox, siyasəti əks etdirir: ya tərs buraxma qabiliyyətini, ya gecikməni (uzun trassalar üçün), ya da administrativ üstünlüyü. Əsas PE1-P1 linki 10, ehtiyat PE1-P2 isə 50 alır: əsas link sağ olduqca ehtiyata ehtiyac yoxdur, o qırılanda trafik əlavə hərəkət olmadan ehtiyata keçir. Simmetriya: linkin metrikası hər iki tərəfdə eyni olmalıdır, əks halda düz və əks yollar ayrılır, traceroute və SLA ölçmələri çaşdırıcı olur. Bir neçə yolda bərabər metrikalar ECMP verir: trafik ümumi dəyəri bərabər olan bütün yollar arasında bölünür.
ECMP paketləri yox, axınları paylayır: 5-tuple (src/dst IP, portlar, protokol) üzrə hash hər axın üçün bir yol seçir ki, paketlərin ardıcıllığı pozulmasın. MPLS trafiki üçün LSR etiket stekini və bir çox platformada onun altındakı IP başlığını hash edir; psevdotellər üçün flow label (RFC 6391) və ya entropy label (RFC 6790) əlavə olunur. Bərabər dəyərli yolların maksimum sayı platformadan asılıdır: Cisco IOS-XE-də maximum-paths default 4-dür (32-yə qədər), Huawei-də maximum load-balancing ilə konfiqurasiya olunur. Junos-da bir neçə next hop RIB-ə qoyulur, lakin FIB-də balanslaşdırma yalnız forwarding-table export-da load-balance per-packet siyasəti ilə aktivləşir (ad tarixən çaşdırıcıdır - müasir platformalarda hash per-flow hesablanır). Tipik problem polarization-dur: bütün hop-larda eyni hash funksiyası istifadə olunur, axın yenə eyni tərəfi seçir və linklərin bir hissəsi boş qalır.
BFD: məhz nəyi ölçür
BFD (RFC 5880, single-hop: RFC 5881) mühitdən və IGP-dən asılı olmayan yüngül ikitərəfli nasazlıq aşkarlama protokoludur. Control paketləri UDP üzərində 3784 təyinat portuna gedir (multi-hop 4784, echo 3785). Sessiya üçtərəfli mübadilə ilə Down -> Init -> Up keçidindən keçir, paketdə isə Desired Min TX, Required Min RX, Detect Mult və diskriminatorlar (My/Your Discriminator) ötürülür. Asinxron rejimdə aşkarlama vaxtı: uzaq tərəfin Detect Mult-u × lokal Required Min RX və uzaq Desired Min TX-in maksimumu. 100 ms × 3 üçün bu 300 ms-dir; intervallar fərqlənirsə, daha mühafizəkar olanı tətbiq olunur. Up vəziyyətinə çatana qədər paketlər saniyədə birdən çox göndərilmir (slow start).
BFD marşrutları hesablamır. O, qeydiyyatdan keçmiş müştərilərə (OSPF, IS-IS, BGP, LDP, statik marşrutlar) sessiyanın ölümü haqqında məlumat verir, müştəri isə dead timer-i gözləmədən qonşuluğu dərhal qırır (OSPF-də default 40 s, IS-IS-də 30 s hold-time). Müştəri qeydiyyatdan keçməyibsə (Cisco-da ip ospf bfd yoxdur), BFD sessiyası Up ola bilər, lakin marşrutlaşdırma qırılmanı yalnız adi taymerlə aşkar edəcək.
Konvergensiya büdcəsi
Trafik itkisinin ümumi vaxtı = nasazlığın aşkarlanması + LSA/LSP yaradılması və flooding + SPF gecikməsi + yenidən hesablama və FIB-ə yazma. 300 ms BFD ilə aşkarlama 300 ms çəkir, throttling ilə LSA yaradılması və SPF (initial 50 ms) 50-100 ms əlavə edir, flooding və FIB quraşdırılması isə daha onlarla millisaniyə; cəmi default OSPF-in 40 saniyəsi əvəzinə 400-600 ms olur. Müqayisə üçün: OSPF fast hello (dead-interval minimal hello-multiplier 4, saniyədə 4 Hello) təxminən 1 s verir, lakin bütün interfeyslərdə CPU-nu yükləyir; Cisco-da carrier-delay msec 0 və Junos-da hold-time up ... down 0 açıq link-down-a reaksiyanı sürətləndirir, lakin L2 seqmenti və ya transponder vasitəsilə "səssiz" nasazlığa kömək etmir. BFD məhz gizli nasazlıqlar üçün lazımdır.
Throttling CPU-nu qoruyur: timers throttle spf 50 200 5000 (Cisco OSPF) "hadisədən 50 ms sonra SPF işə sal, təkrar dəyişikliklərdə 200 ms gözlə, sonra 5 s-ə qədər ikiqat artır" deməkdir. timers throttle lsa all 10 100 5000 eyni şəkildə LSA yaradılmasını məhdudlaşdırır, timers lsa arrival 80 isə eyni LSA-nın qəbulu üçün minimal intervalı təyin edir və qonşunun hold intervalından çox olmamalıdır. Çox böyük initial konvergensiyanı uzadır, qeyri-sabit linkdə çox kiçik olan isə SPF fırtınası yaradır.