Nəzəri əsaslar və memarlıq
MPLS Traffic Engineering (MPLS-TE, RFC 3209 üzrə RSVP-TE siqnalizasiyası) yalnız ən qısa metrikaya görə marşrut quran IGP problemini həll edir: trafik ən yaxşı yollarda toplanır, paralel linklər isə boş qala bilər. MPLS-TE trafiki açıq və ya məhdudiyyətlərlə hesablanmış yolla yönləndirməyə imkan verir. Ekosistem dörd hissədən ibarətdir: 1. IGP-nin TE genişlənmələri (OSPF-TE/IS-IS TE) link atributlarını yayır; 2. hər marşrutlaşdırıcıda TED; 3. CSPF - məhdudiyyətli yol hesablaması; 4. RSVP-TE: PATH və RESV mesajları hesablanmış yolla gedir, etiketləri paylayır və bandwidth rezerv edir. Rezervasiya control plane-də uçotdur: TED-dəki unreserved bandwidth-i azaldır, lakin data plane-də trafiki məhdudlaşdırmır.
Sessiya, LSP və onların identifikatorları
RSVP-TE-də (RFC 3209) TE LSP birtərəflidir: PE1-dən PE2-yə tunel əks istiqamətdə yol yaratmır. Sessiya SESSION obyekti (C-Type 7, LSP_TUNNEL_IPv4) ilə müəyyən edilir: son nöqtənin ünvanı, 16 bitlik Tunnel ID və Extended Tunnel ID (head-end ünvanı). Sessiya daxilində LSP-nin konkret nüsxəsi SENDER_TEMPLATE obyekti ilə təyin olunur: göndərənin ünvanı və 16 bitlik LSP ID. Yenidən qurma zamanı (re-optimization, zolaq dəyişikliyi) head-end eyni SESSION və yeni LSP ID ilə yeni LSP siqnallaşdırır, Shared Explicit (SE) rezervasiya üslubu isə köhnə və yeni nüsxələrə ortaq linklərdə bir rezervasiyanı bölüşməyə imkan verir: make-before-break belə işləyir.
RSVP-TE birbaşa IP üzərində işləyir (protokol 46, TCP/UDP deyil), Path və PathTear IP Router Alert daşıyır, ona görə hər tranzit qovşaq onları idarəetmə müstəvisinə götürür. Protokol 46-nı və ya Router Alert olan paketləri kəsən filtrlər və CoPP, IGP tam sağlam olsa belə, siqnallaşmanı pozur.
IGP genişlənmələri və TED
CSPF üçün məlumatı IGP verir. OSPF-də bu, tip 10 Opaque LSA-dır (area-local), opaque type 1, RFC 3630. TE LSA Router Address TLV (tip 1, TE router-id) və hər link üçün Link TLV (tip 2) ehtiva edir. Link TLV daxilində sub-TLV-lər:
| Sub-TLV | Tip | Məzmun |
|---|---|---|
| Link type | 1 | point-to-point və ya multi-access |
| Link ID | 2 | qonşunun router-id-si (p2p üçün) |
| Local / Remote interface address | 3 / 4 | linkin uclarının ünvanları |
| TE metric | 5 | 32 bit, IGP metrikasından asılı deyil |
| Maximum bandwidth | 6 | fiziki zolaq, IEEE float, bayt/s |
| Maximum reservable bandwidth | 7 | nə qədər rezerv etmək olar (fiziki zolaqdan çox ola bilər) |
| Unreserved bandwidth | 8 | 8 qiymət, 0-7 prioritetlərin hər biri üçün bir |
| Administrative group | 9 | 32 bitlik rəng maskası (affinity) |
IS-IS-də (RFC 5305) eyni məlumat TLV 22 (Extended IS Reachability) daxilindəki sub-TLV-lərdə yerləşir: administrative group - 3, IPv4 interface address - 6, IPv4 neighbor address - 8, maximum link bandwidth - 9, maximum reservable bandwidth - 10, unreserved bandwidth - 11, TE default metric - 18; TE router-id isə TLV 134-dür. IS-IS wide metrics rejimində işləməlidir. Bundan əlavə, RFC 4203 və RFC 5307 SRLG-ni (OSPF sub-TLV 16, IS-IS TLV 138), RFC 4124 isə DS-TE üçün Bandwidth Constraints-i təqdim edir.
TED LSDB-nin üzərində qurulur: hər qovşaq link atributları olan qraf saxlayır və onu CSPF-də istifadə edir. TED IGP marşrut cədvəlini əvəz etmir: TE atributları yalnız tunel yollarının hesablanmasına təsir edir. Linkdə TE atributları yoxdursa (mpls traffic-eng/mpls te/rsvp qoşulmayıb), link TED-də olmur və IGP marşrutu olsa da, CSPF onun üzərindən yol qurmaz.
Məlumat nə vaxt yenilənir: dövri olaraq (Cisco-da susmaya görə 180 s-dən bir) və boş zolaq əhəmiyyətli dəyişəndə. Cisco istifadə dəyişmə hədləri üzrə flood edir (susmaya görə yuxarı istiqamətdə 15, 30, 45, 60, 75, 80, 85, 90, 95, 96, 97, 98, 99, 100 faiz sırası və aşağı istiqamətdə tərs sıra), ona görə uzaq qovşaqlardakı TED faktiki vəziyyətdən geri qalır. Bu, yarışın normal mənbəyidir: head-end yolu köhnəlmiş məlumata görə hesablayıb, tranzit admission control-da imtina edib və PathErr qaytarıb.
RSVP-TE mesajları
Ümumi başlıq: versiya 1, bayraqlar, mesaj tipi, yoxlama cəmi, send TTL, uzunluq. Sonra Length / Class-Num / C-Type formatında obyektlər gəlir.
| Mesaj | Tip | İstiqamət | Nə üçün |
|---|---|---|---|
| Path | 1 | head -> tail | LSP-nin qurulması sorğusu, ERO, SESSION_ATTRIBUTE, SENDER_TSPEC, LABEL_REQUEST daşıyır |
| Resv | 2 | tail -> head | təsdiq, etiketlərin paylanması (LABEL), rezervasiya (FLOWSPEC) |
| PathErr | 3 | head tərəfə | Path vəziyyətində xəta (səhv ERO, marşrut yoxdur, admission control) |
| ResvErr | 4 | tail tərəfə | rezervasiya xətası, o cümlədən sıxışdırılma |
| PathTear | 5 | head -> tail | LSP-ni silmək |
| ResvTear | 6 | tail -> head | rezervasiyanı silmək |
| Hello | 20 | qonşuya | qonşunun nasazlığını aşkar etmə (RFC 3209) |
| Srefresh | 15 | qonşuya | ümumiləşdirilmiş yenilənmə (RFC 2961) |
Path-in əsas obyektləri: EXPLICIT_ROUTE (ERO) - IPv4 prefiks alt obyektlərinin siyahısı, hər birində L (loose) biti var; qovşaqdan keçərkən onun alt obyekti silinir. RECORD_ROUTE (RRO) - faktiki yol və (label recording bayrağı ilə) etiketlər, döngülərin aşkarlanması və FRR üçün lazımdır. SESSION_ATTRIBUTE - tunelin adı, setup və hold priority, bayraqlar (0x01 local protection, 0x02 label recording, 0x04 SE style, 0x08 bandwidth protection, 0x10 node protection) və C-Type 1-də əlavə olaraq include-any/exclude-any/include-all. SENDER_TSPEC - tələb olunan zolaq (token bucket rate, IEEE float formatında bayt/s). LABEL_REQUEST - L3PID, IPv4 üçün 0x0800. Resv STYLE (SE), FLOWSPEC, FILTER_SPEC, LABEL və öz RRO-sunu daşıyır.
LSP-nin addım-addım qurulması
Head-end yolu TED üzrə hesablayır (CSPF) və ERO qurur. Path ERO-dakı ilk qovşağa gedir, hər qovşaq özünün ERO-da göstərildiyini yoxlayır, öz alt obyektini silir, əvvəlki hop (RSVP_HOP) ilə Path State Block (PSB) yadda saxlayır və Path-i irəli ötürür. Tail ERO-nun boş olduğunu görür, etiket ayırır və Resv ilə cavab verir. Susmaya görə tail implicit-null (etiket 3) elan edir: sondan əvvəlki qovşaq etiketi çıxarır (PHP). Resv RSVP_HOP zənciri ilə geri gedir; hər tranzit qovşaq Reservation State Block (RSB) yaradır, admission control-da zolağı rezerv edir, gələn etiketi təyin edir, (gələn etiket -> çıxan etiket, interfeys) cütünü LFIB-ə yazır və Resv-i yuxarı ötürür. Paylama modeli downstream-on-demand və ordered control-dur: aşağıdakı qovşaq cavab verməyənə qədər etiket yaranmır.
Resv head-ə çatanda LSP qalxmış sayılır. Bu ana qədər tunel qurulma vəziyyətindədir; RRO olmadan head-end faktiki yolu görmür.