Nəzəri əsaslar və memarlıq

MPLS shim başlığı (RFC 3032) L2 və L3 başlıqları arasında yerləşən 32-bitlik sahədir. Dörd sahədən ibarətdir: 20-bitlik Label (0-15 rezerv olunub), 3-bitlik Traffic Class (TC/EXP QoS üçün), 1-bitlik Bottom of Stack bayrağı (S: ən daxili etiketdə 1, xarici etiketlərdə 0 olur) və 8-bitlik TTL (hər LSR-də 1 vahid azaldılır). Hər etiket steki 4 bayt artırır. Müasir şəbəkələrdə etiket sayı 3-5-ə çatır (Nəqliyyat + VPN xidmət + FRR bypass = 16-20 bayt). Bu, MPLS MTU problemini yaradır: interfeys MTU 1500 bayt qaldıqda, 1500 baytlıq IP paketi və 8 bayt etiket 1508 bayt edir və MTU-nu aşır: DF=1 olduqda LSR paketi atır və ICMP Fragmentation Needed qaytarır (LSP boyunca, RFC 3032), L2 çərçivə həddi aşıldıqda isə paket səssizcə itir. Tipik əlamət: ping və BGP OPEN işləyir, böyük paketlər isə donur. Buna görə nüvə interfeyslərində MTU ehtiyatla artırılır (adətən 1530-1548 bayt, Jumbo frames).

Etiket stekinin qeydi (LSE): L2 ilə L3 arasında 32 bit

Etiket stekinin bir qeydi (Label Stack Entry, RFC 3032) dəqiq 4 bayt tutur və kanal səviyyəsi başlığı ilə IP başlığı arasında yerləşir. Buna görə MPLS-i bəzən "2.5-ci səviyyə" adlandırırlar. Ethernet-də kadr tipi dəyişir: IPv4 üçün 0x0800 əvəzinə unicast üçün 0x8847, multicast üçün 0x8848. Sahələr yüksək bitdən başlayaraq belədir:

text
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Label (20)                 | TC (3)|S|   TTL (8)   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 bits 0-19: Label | bits 20-22: TC | bit 23: S | bits 24-31: TTL

Etiket 20 bitdir, yəni 1 048 576 qiymət, onlardan 16-sı (0-15) rezerv olunub, dinamik və statik bölgü üçün 1 048 560 qalır. TC sahəsi (Traffic Class, 3 bit, 8 sinif) əvvəllər EXP adlanırdı; RFC 5462 (2009) onu yenidən adlandırdı, çünki o çoxdan eksperimentlər üçün deyil, DiffServ üçün istifadə olunur. S biti (Bottom of Stack) yalnız stekin son qeydində 1-dir; LSR həmişə yalnız yuxarı qeydə baxır, S isə onu çıxardıqdan sonra növbəti elementin başqa etiket yox, faydalı yük (IP, Ethernet və s.) olduğunu anlamağa imkan verir. TTL 8 bitdir və IP TTL ilə eyni məqsədə xidmət edir: dövrələrdən qorunma və traceroute-un əsası.

Rezerv olunmuş 0-15 etiketləri

Bu qiymətlər LDP/RSVP/BGP ilə adi etiket kimi paylanmamalıdır. Onların bir hissəsi hər gün praktikada işlədilir, digərləri demək olar ki, heç vaxt.

EtiketAdTəyinatı
0IPv4 Explicit NullEtiketi çıxarıb paketi IPv4 kimi emal etmək; PHP söndürüldükdə TC-ni egress-ə qədər saxlayır.
1Router AlertPaketi yerli LSR-in control plane-inə təhvil vermək; adi yönləndirmə etiketi kimi seçilmir.
2IPv6 Explicit Null0 ilə eynidir, lakin IPv6 üçün.
3Implicit NullBaşlıqda heç vaxt görünmür: egress onu LDP/RSVP ilə elan edir ki, sondan əvvəlki hop etiketi çıxarsın (PHP).
7ELI (Entropy Label Indicator, RFC 6790)Stekin növbəti qeydi yük balanslaşdırması üçün entropy etiketidir; ELI-nin TTL-i adətən 0 olur.
13GAL (RFC 5586)Generic Associated Channel Label, MPLS-TP OAM tərəfindən istifadə olunur.
14OAM Alert (RFC 3429)Xidməti OAM paketləri (Y.1711); IP/MPLS şəbəkələrində nadir hallarda rast gəlinir.
15ReservedXüsusi təyinatlı etiketlər fəzasının genişləndirilməsi üçün rezerv edilib.

4-6 və 8-12 qiymətləri təyin olunmayıb. İlk "adi" qiymət 16-dır; Cisco IOS-XE LDP etiketlərini defolt olaraq 16-dan paylayır, Junos LDP təxminən 300000 ətrafındakı diapazondan istifadə edir, SR-MPLS isə defolt olaraq SRGB 16000-23999 işlədir. Bu, show mpls forwarding-table-da müxtəlif protokolların etiketlərinin niyə bu qədər fərqli göründüyünü izah edir.

Stek və onun bayt ilə qiyməti

Hər etiket kadrın ölçüsünə 4 bayt əlavə edir. Nüvədən keçməli olan ölçü belə hesablanır: L3 yükü üçün müştərinin IP MTU-su + 4*N, burada N stekdəki etiketlərin sayıdır; L2 yükü (pseudowire, VPLS, EVPN) üçün FCS-siz müştəri Ethernet kadrının ölçüsü + 4*N + 4 bayt control word (aktivdirsə). IP MTU 1500 olduqda FCS-siz müştəri kadrı 1514 baytdır (dot1q teqi ilə 1518).

SsenariStekdəki etiketlərYükNüvədə minimum MTU
LDP üzərində IPnəqliyyat (1)IP 15001504
LDP və ya SR üzərində L3VPNnəqliyyat + VPN (2)IP 15001508
L3VPN + RSVP-TE, LDP over TEVPN + LDP + TE (3)IP 15001512
L3VPN, TE və aktiv FRR bypassVPN + TE + bypass (3-4)IP 15001512-1516
Inter-AS option CVPN + BGP-LU + IGP (3)IP 15001512
5 SID-dən SR-TE policy + VPN6IP 15001524
VPWS/VPLS, teqsiz Ethernetnəqliyyat + PW + CW (4 bayt)kadr 15141526
VPLS, teqli kadreynikadr 15181530
EVPN: nəqliyyat, EVPN, ELI+EL4 etiketkadr 15141530
ESI etiketli EVPN BUM5 etiketkadr 15141534

Buradan tipik tövsiyə çıxır: bütün nüvə və aqreqasiya linklərində MTU ehtiyatla təyin edilməlidir (1600 və ya avadanlıq və qovşaqlar dəstəkləyirsə jumbo 9000-9216). Laboratoriya dəyəri 1524 "müştəri 1500 + 6 etiket" kimi seçilib, bu, L3VPN, FRR-li TE və beş SID-li SR-TE üçün kifayətdir. Əsas məqam odur ki, stekin mümkün maksimal dərinliyini adi ssenari yox, şəbəkədə ola biləcək ən uzun xidmətlər kombinasiyası müəyyən edir.

TTL-in yayılması: uniform və pipe

RFC 3443 iki modeli təsvir edir. Uniform modeldə (Cisco-da, Huawei-də ictimai şəbəkə üçün və Junos-da defolt) ingress LSR IP TTL-i etiketin TTL-inə kopyalayır, hər LSR onu 1 azaldır, sonuncu etiket çıxarılanda dəyər geriyə IP TTL-ə kopyalanır. Operator və müştəri üçün bu, adi L3 şəbəkəyə bənzəyir və traceroute hər P marşrutlaşdırıcısını görür. Pipe modelində LSP şəffaf boru sayılır: ingress etiketə 255 yazır, tranzit LSR-lər yalnız etiketi azaldır, müştərinin IP TTL-inə toxunulmur; nüvə müştəri traceroute-undan gizlənir.

Əsas əmrlər: Cisco no mpls ip propagate-ttl, Junos set protocols mpls no-propagate-ttl, MikroTik /mpls/set propagate-ttl=no, Huawei mpls rejimində undo ttl propagate public / undo ttl propagate vpn. Yayılmanın söndürülməsi nüvə topologiyasını müştəridən gizlədir və P marşrutlaşdırıcılarının ünvanlarını qoruyur; bunun əvəzi isə odur ki, müştəri traceroute-undan nüvənin hansı hop-unda əlaqənin itdiyini görmək olmur. Onu bütün PE-lərdə eyni cür aktiv və ya deaktiv etmək lazımdır, əks halda egress-də TTL dəyəri yola görə fərqli olacaq.