Nəzəri əsaslar və memarlıq
Rabitə operatorunun nüvə dizaynı sərt və dəqiq IP ünvanlama planı tələb edir. Bütün PE və P routerləri /32 maskalı Loopback0 interfeysinə malik olmalıdır. Bu Loopback ünvanı üç əsas rolu icra edir: IGP (OSPF/IS-IS) üçün unikal Router-ID, LDP/SR üçün LSR-ID və MP-BGP (VPNv4/EVPN) sessiyaları üçün Next-Hop sonluğu. Nüvə daxili fiziki linklər /30 və ya /31 (RFC 3021) maskaları ilə ünvanlanır. Əsas qayda: müştəri şəbəkələri (VRF LAN) HEÇ VAXT nüvə IGP-sinə daxil edilməməlidir! Nüvə IGP-si yalnız router loopback-ləri və tranzit linklər üçün nəzərdə tutulub. Əgər fiziki link qırılarsa, IGP trafiki ehtiyat linkə yönləndirir; iBGP/MP-BGP sessiyaları sabit Loopback-ə bağlı olduğu üçün qırılmır (yalnız yol dəyişir). Qırılmış linkdəki qonşu ilə LDP sessiyası öz adjacency-si ilə birlikdə bağlanır, LSP-lər isə qalan sessiyalar üzərindən yenidən qurulur.
Bir /32-nin üç rolu
SP nüvəsində Loopback0 "sadəcə bir interfeys" deyil, düyünün şəxsiyyətidir. Eyni 10.255.0.1/32 ünvanı eyni zamanda bunlara xidmət edir: (1) IGP router-id (OSPF router-id və IS-IS System-ID-nin əsası); (2) LDP üçün LSR-ID və transport ünvanı (LDP sessiyası transport ünvanları arasında TCP/646 ilə açılır, Hello-lar isə UDP/646 ilə 224.0.0.2-yə göndərilir); (3) iBGP/MP-BGP sessiyalarının mənbəyi və hədəfi (update-source Loopback0) və VPN marşrutları üçün next hop. /32-yə ən azı bir sağ yol varsa, konkret fiziki link qırılsa belə sessiyalar və LSP-lər qırılmır. Sessiya link ünvanına bağlansa, həmin linkin qırılması BGP-ni və VPN-ləri söndürür, halbuki ehtiyat yol mövcuddur.
/32 maskası iki səbəbə görə məcburidir. Birincisi, LDP default olaraq FEC-ləri RIB prefikslərindən qurur və dəqiq uyğunluq gözləyir: PE2-yə LSP yalnız cədvəldə məhz 10.255.0.2/32 olduqda mövcuddur. İkincisi, zona sərhədində (ABR, L1/L2) loopback-ların summarizasiyası dəqiq uyğunluğu pozur və LSP Untagged/No Label vəziyyətinə düşür. Nüvəni domenlərə bölmək lazımdırsa, IGP summarizasiyası əvəzinə Seamless MPLS (BGP-LU, RFC 8277) və ya açıq etiket filtrləri istifadə olunur.
IGP məhz nəyi elan edir
OSPF loopback-ı Router-LSA-da (Type 1) stub link kimi elan edir. Cisco-da loopback konfiqurasiya olunmuş maskadan asılı olmayaraq həmişə /32 host marşrutu kimi elan olunur; digər platformalarda və IS-IS-də (TLV 135 Extended IP Reachability) prefiks interfeysdə verilmiş maska ilə göndərilir, buna görə Huawei və Junos-da /32-ni açıq göstərin. Router-LSA-da loopback metrikası Cisco-da 1, Huawei-də 0, passive lo0 üçün Junos-da 0-dır. Buna görə "eyni düyünə metrika" platformalar arasında fərqlənir - yollar bir istehsalçı daxilində müqayisə olunduqca bu normaldır. IS-IS-də loopback TLV 135-də interfeys metrikasını alır.
IGP-də yalnız iki kateqoriya prefiks yaşayır: düyünlərin loopback-ları və nüvənin tranzit linkləri. Müştəri şəbəkələri, VRF prefiksləri və PE-CE link ünvanları ora düşməməlidir: onlar MP-BGP ilə daşınır. Bu qaydanın pozulması LSDB-ni şişirdir, SPF-i uzadır və (Cisco-da) hər IGP prefiksi üçün LDP etiketlərinin ayrılmasına gətirib çıxarır, çünki etiketlər default olaraq RIB-dəki bütün marşrutlar üçün yaradılır. Junos default olaraq etiketləri yalnız /32 loopback-lar üçün elan edir (egress-policy), Huawei isə yalnız host marşrutları üçün (lsp-trigger host default). Cisco-da məhdudiyyət mpls ldp label allocate global prefix-list və ya mpls ldp advertise-labels for ilə edilir.
Ünvan planı
Yüzlərlə düyünə qədər miqyaslanan işlək sxem:
| Blok | Təyinat | Qeyd |
|---|---|---|
| 10.255.0.0/24 | Düyünlərin Loopback0-ı | .1-.10 PE, .11-.20 P, .100-.109 RR; hər düyün üçün bir /32 |
| 10.0.0.0/16 | Nüvənin P2P linkləri | hər link üçün bir /31 (RFC 3021) |
| 172.16.0.0/16 | PE-CE linkləri (VRF-lərdə) | nüvə IGP-sinə elan olunmur |
| 2001:db8:ffff::/64 | IPv6 loopback-lar | hər düyün üçün bir /128 (sənədləşmə blokundan nümunə) |
IPv6 linkləri üçün /127 istifadə edin (RFC 6164): nöqtə-nöqtə linkdə /64 qonşu keşinə hücumlar (ND exhaustion) üçün imkan buraxır. /31 hər linkdə iki ünvana qənaət edir və Network/Broadcast-ı aradan qaldırır; /31 olan Ethernet linkini yenə də point-to-point rejiminə keçirmək lazımdır, əks halda OSPF iki düyün arasında DR/BDR seçkisi aparacaq.
Loopback-dan Router-ID və NET
OSPF router-id IPv4 formasında 32-bit ədəddir və domendə unikal olmalıdır; təkrarlanan router-id iki düyünün LSA-nı daim yenidən yaratmasına və SPF fırtınalarına səbəb olur (Cisco jurnala %OSPF-4-DUP_RTRID_NBR yazır). Router-id açıq göstərilməyibsə, Cisco ən yüksək loopback IP-ni, o yoxdursa aktiv interfeyslər arasında ən yüksəyini seçir, bu ünvanın dəyişməsi isə düyünün şəxsiyyətini səssizcə dəyişir - buna görə router-id həmişə əllə verilir. IS-IS System-ID 6 baytdır; ümumi təcrübə loopback-ın hər oktetini üç onluq rəqəmlə yazıb 4 rəqəmlik qruplara bölməkdir: 10.255.0.1 -> 010.255.000.001 -> 0102.5500.0001, NET = 49.0001.0102.5500.0001.00 (AFI 49 - şəxsi ünvan fəzasıdır, 0001 - area, 00 - NSEL). Onda show isis hostname və jurnallarda System-ID-dən dərhal hansı düyünün nəzərdə tutulduğu görünür.
Praktikada nə pozulur
LDP router-id loopback-a bağlanmayıbsa, Cisco onu OSPF kimi seçir (ən yüksək loopback, yoxdursa ən yüksək interfeys), transport ünvanı isə link ünvanı ola bilər: Hello-lar bir ünvandan gəlir, TCP başqasına açılır, sessiya qalxmır və ya titrəyir. mpls ldp router-id Loopback0 force bunu düzəldir. İkinci tipik xəta IGP-yə "ehtiyat üçün" redistribute connected-dir: PE-CE şəbəkələri nüvəyə sızır, əlavə prefikslər etiket alır, müştərilərin üst-üstə düşən ünvanları isə qlobal cədvəllə toqquşur. Üçüncüsü - /32-siz və ya passive-siz loopback: loopback-da Hello-lar görünür, Junos-da və IS-IS-də isə prefiks yanlış maska ilə çıxır və FEC uyğun gəlmir. Dördüncüsü - IGP-də unudulmuş 10.0.1.0/31 link şəbəkəsi: loopback-lar əlçatandır, lakin link next hop-u yoxdur və traceroute mpls hop ünvanlarını qeyri-dəqiq göstərir.