Nəzəri əsaslar və memarlıq
MPLS arxitekturası router rollarını və cədvəlləri dəqiq ayırır. LER (Label Edge Router) MPLS sərhədində yerləşir: giriş ingress LER IP paketi təsnif edir və etiket steki əlavə edir (Push), çıxış egress LER isə etiketi silir (Pop) və paketi müştəriyə ötürür. Operator şəbəkələrində LER PE (Provider Edge), müştəri cihazı isə CE (Customer Edge) adlanır. Nüvədə LSR (Label Switching Router) və ya P (Provider) routerləri işləyir: onlar IP başlığına baxmır, daxil olan etiket əsasında dəyişmə (Swap) edir. Dörd cədvəl istifadə olunur: RIB (ümumi marşrutlar), FIB (aparat IP yönləndirməsi), LIB (bütün LDP etiketləri) və LFIB (Data Plane-də etiket yönləndirmə cədvəli). RIB-də marşrutun olması avtomatik etiket yönləndirməsini sübut etmir: LFIB-də uyğun çıxış etiketi proqramlaşdırılmalıdır.
Cihaz rolları: kim nəyi həll edir
MPLS-də rolu router modeli yox, paket üzərində icra etdiyi əməliyyat müəyyən edir. LER (Label Edge Router) domen sərhədində yerləşir: girişdə (ingress) adi IP paketi qəbul edir, FIB üzrə axtarış (longest prefix match) aparır, FEC-i müəyyən edir və etiketi əlavə edir (push); çıxışda (egress) son etiketi silir və adi IP axtarışı və ya VRF axtarışı aparır. Operator terminologiyasında LER adətən PE (Provider Edge), müştəri router-i isə CE (Customer Edge) adlanır. CE MPLS haqqında heç nə bilmir: təmiz IP göndərir və PE ilə statik marşrutlar, OSPF və ya BGP vasitəsilə əlaqə qurur. Nüvədəki LSR P (Provider) adlanır: paketləri yalnız üst etiketə görə kommutasiya edir, müştəri marşrutları və VRF-i yoxdur. Buradan BGP-free core prinsipi çıxır: müştəri prefiksləri (yüz minlərlə) yalnız PE-lərdə yaşayır, P-lərə isə yalnız PE loopback-ləri və birləşmələr lazımdır - LFIB-də bir neçə yüz qeyd. Eyni fiziki router bəzi servislər üçün PE, digərlərinin tranziti üçün P ola bilər; RR (route reflector) ayrıca control-plane roludur və adətən data yolunda iştirak etmir.
Dörd struktur: RIB, FIB, LIB, LFIB
RIB marşrutlaşdırma protokolları (connected, static, IGP, BGP) tərəfindən qurulur və metrikalar və administrativ məsafələrlə bütün namizədləri saxlayır. FIB IP yönləndirməsi üçün ən yaxşı marşrutların optimallaşdırılmış surətidir (Cisco-da bu adjacency cədvəli ilə birlikdə CEF, Junos-da PFE-dəki forwarding table, Huawei-də xətt kartlarındakı FIB-dir). LIB (Label Information Base) bütün "prefiks -> etiket" bağlamalarının proqram bazasıdır: həm local binding (router-in özünün ayırdığı və qonşulara elan etdiyi etiket), həm də remote binding (hər LDP qonşusundan, hətta next hop olmayandan alınmış etiketlər). LFIB kommutasiya üçün real istifadə olunandır: hər daxil olan etiket üçün əməliyyat və çıxış məlumatı ilə bir qeyd. Data plane üçün FIB (ingress-də push üçün) və LFIB (tranzit və egress-də swap/pop üçün) cütü əhəmiyyətlidir; LIB bu qeydlərin seçildiyi control-plane anbarıdır. RFC 3031 terminologiyası eyni anlayışları əhatə edir: FTN (FEC-to-NHLFE) ingress qaydasıdır, ILM (Incoming Label Map) daxil olan etiket üzrə axtarışdır, NHLFE (Next Hop Label Forwarding Entry) əməliyyat, çıxan etiket və next hop-dur.
Vendorlar üzrə adlar: Cisco - show mpls ldp bindings (LIB), show mpls forwarding-table (LFIB), show ip cef (etiketli FIB). Junos - inet.0 (RIB), inet.3 (push etiketi olan PE-yə marşrutlar, yalnız BGP next hop-u həll etmək üçün istifadə edir), mpls.0 (daxil olan etiketə görə tranzit swap/pop); LIB ayrıca show ldp database ilə baxılır. Huawei - display ip routing-table, display fib, display mpls lsp. MikroTik - /ip/route, /mpls/ldp/local-mapping + /mpls/ldp/remote-mapping, /mpls/forwarding-table.
Prefiks üçün etiket haradan gəlir
Defolt olaraq etiket şəbəkənin qalan hissəsindən asılı olmayaraq ayrılır (downstream unsolicited, liberal label retention; ordered/independent control platformadan asılıdır): IGP marşrutu RIB-də görünən kimi LSR local binding yaradır və onu bütün LDP qonşularına Label Mapping mesajında (FEC TLV + Label TLV) elan edir. Cisco bunu bütün IGP prefiksləri, o cümlədən birləşmələr üçün edir, ona görə mpls ldp label / allocate global prefix-list siyahını /32 loopback-lərə qədər azaldır - bu LIB ölçüsünü kiçildir. Huawei defolt olaraq LSP-ni yalnız /32 host marşrutları üçün işə salır (lsp-trigger host), Junos defolt olaraq yalnız loopback ünvanını (lo0) elan edir, qalanına egress-policy ilə icazə verilməlidir. Prefiks birbaşa qoşuludursa və ya router-in özüdürsə - bu router həmin FEC üçün egress-dir və implicit null (etiket 3) elan edir: sondan əvvəlki hop etiketi özü silir (PHP), egress isə ikiqat axtarışdan azad olur. Rezerv dəyərlər 0-15: 0 - explicit null IPv4, 1 - router alert, 2 - explicit null IPv6, 3 - implicit null (naqildə heç vaxt görünmür), 7 - ELI, 13 - GAL, 14 - OAM alert. Dinamik diapazon 16-dan başlayır (Cisco IOS-XE), Junos LDP etiketlərini 299776-dan ayırır, Huawei VRP-də adətən 1024-dən (diapazon versiyadan asılıdır).
Əsas qayda: LDP FEC ilə marşrutu dəqiq prefiks uyğunluğu ilə uyğunlaşdırır. 10.255.0.2/32 bağlaması yalnız RIB-də məhz 10.255.0.2/32 olduqda və bu marşrutun next hop-u etiketi göndərmiş LDP qonşusu olduqda yararlıdır. Digər qonşulardan gələn etiketlər LIB-də ehtiyat kimi qalır (liberal retention): ən yaxşı yol dəyişəndə LFIB yeni sorğular olmadan yenidən qurulur.
Hər rolda axtarış
Ingress PE: FIB (təyinat IP-sinə görə LPM) -> qeyddə next hop və çıxan etiket var (Cisco-da show ip cef detail-də label 17-(local:21)) -> push; etiket TTL-i IP TTL-dən kopyalanır (propagation defolt olaraq aktivdir), EXP/TC isə siyasətə görə DSCP-dən götürülür. Tranzit P: LFIB-də 20 bitlik daxil olan etiketə görə dəqiq (LPM yox) axtarış -> yeni etiketə swap, TTL 1 azalır. Sondan əvvəlki P: çıxan etiket implicit null-dur, ona görə əməliyyat Pop-dur (Cisco Pop Label, Junos Pop); paket egress-ə bir etiket az ilə gedir. Egress PE: yalnız VPN etiketi qalıbsa, o VRF-i və ya interfeysi müəyyən edir; adi IPv4 LSP üçün paket artıq etiketsiz gəlir və adi IP axtarışı ilə emal olunur. LFIB axtarışı LPM-dən daha sürətli və sadədir: prefiks axtarışı əvəzinə 20 bit üzrə hash/indeks.