Nəzəri əsaslar və memarlıq
Segment Routing over MPLS (SR-MPLS, RFC 8402) - ayrıca etiket paylama protokolunu (LDP) və yol siqnalizasiyasını (RSVP-TE) aradan qaldıran source routing paradiqmasıdır. Klassik MPLS-də tranzit marşrutlaşdırıcılar LDP sessiyaları və RSVP siqnalizasiyası üçün dinamik vəziyyət saxlayır. SR-də baş node yolu Segment Identifier (SID) sıralı siyahısı kimi kodlayır, hər SID adi 20 bitlik MPLS etiketinə çevrilir, tranzit node-lar isə hər LSP üçün vəziyyət saxlamır: onlara IGP-dən əldə etdikləri SID üzrə LFIB qeydləri kifayətdir. SID-lər IS-IS/OSPF genişlənmələri ilə elan olunur. SR-MPLS-in əsası Segment Routing Global Block (SRGB)-dir: hər marşrutlaşdırıcının qlobal SID-lər üçün ayırdığı etiket diapazonu. Prefix-SID indeks kimi elan olunur, etiket isə SRGB bazası + indeks kimi hesablanır. 16000-23999 tez-tez seçilən diapazon və Cisco default-udur, lakin RFC 8402 onu təyin etmir: digər istehsalçıların default-ları fərqlidir, ona görə SRGB açıq şəkildə və domenin bütün node-larında eyni təyin edilməlidir.
Seqment nədir və nüvə niyə vəziyyətsizdir
Segment Routing (RFC 8402) paketin yolunu paketin özündə daşıyır. Seqment göstərişdir ("X qovşağına ən qısa yolla çatdır", "Y xəttinə çıx"), marşrut isə seqmentlərin sıralı siyahısı ilə təyin olunur. SR-MPLS-də (RFC 8660) seqment adi 20 bitlik MPLS etiketidir, seqment siyahısı isə etiket stekidir, buna görə ASIC-lər və başlıq formatı dəyişmir. LDP və RSVP-TE-dən fərq ondadır ki, etiketlər ayrıca protokolla razılaşdırılmır: onları IGP-nin (IS-IS və ya OSPF) özü yayır, tranzit qovşaq isə yalnız SID-lər üçün LFIB qeydlərini saxlayır, tunnel vəziyyətini yox. Nüvədəki qeydlərin sayı LSP-lərin sayı ilə yox, qovşaqların və qonşuluqların sayı ilə artır.
SRGB: indeks və mütləq etiket
Prefix-SID etiketlə yox, indeks ilə elan olunur: bu, SR domenində unikal olan kiçik ədəddir. Real etiket SRGB başlanğıcı + indeks kimi hesablanır. SRGB (Segment Routing Global Block) hər marşrutlaşdırıcının qlobal SID-lər üçün rezerv etdiyi və qonşulara elan etdiyi etiket diapazonudur. İndeksi 1 olan PE1 və SRGB 16000-23999 üçün etiket 16001, indeksi 2 olan PE2 üçün 16002-dir. 16000-23999 (8000 etiket) diapazonu tipik seçim və Cisco-nun standart qiymətidir, lakin RFC 8402 onu təyin etmir: digər istehsalçılarda standart qiymətlər fərqlidir, buna görə SRGB həmişə açıq şəkildə və bütün qovşaqlarda eyni təyin olunur.
Vacib nüans: naqildəki etiketi qəbul edən tərəf müəyyən edir. A qovşağı indeksi i olan prefiks üçün paketi B qonşusuna göndərərkən SRGB_B.başlanğıc + i etiketini qoyur, burada SRGB_B B-nin elanından götürülür. SRGB-lər eynidirsə, etiket dəyəri bütün yol boyu dəyişmir (LFIB-də bu eyni ədədə swap-dır, RFC 8660 bu əməliyyatı CONTINUE adlandırır) və trassirovka cədvəllərsiz oxunur. B-də fərqli diapazon varsa, yönləndirmə yenə işləyəcək, lakin hər addımda dəyər fərqli olacaq, nasazlıqların axtarışı və əl ilə stek yazılmış siyasətlər çətinləşəcək. SRGB bir neçə diapazondan ibarət ola bilər (indekslər onlar üzrə ardıcıl nömrələnir), lakin praktikada bir ardıcıl blokdan istifadə olunur.
SRGB məhdudiyyətləri:
- 0-15 etiketləri rezerv olunub, blok statik etiketlərlə, LDP/RSVP tərəfindən artıq dinamik ayrılmış etiketlərlə və SRLB ilə kəsişməməlidir;
- indeks blok ölçüsündən kiçik olmalıdır: ölçü 1000 olduqda 1200 indeksi etiket vermir, qovşaq prefiksi proqramlaşdırmır (IGP-də marşrut var, LFIB-də yoxdur);
- eyni indeksi olan iki qovşaq SID konfliktinə səbəb olur: RFC 8660-a görə konfliktli qeydlər proqramlaşdırılmır, davranışın təfərrüatları isə realizasiyadan asılıdır;
- işləyən qovşaqda SRGB-nin dəyişdirilməsi LFIB-in yenidən proqramlaşdırılmasına gətirir və etiketlər məşğul olduqda rədd edilə bilər.
SRLB və lokal seqmentlər
SRLB (Segment Routing Local Block) lokal SID-lər üçün diapazondur, məsələn əl ilə verilmiş Adjacency-SID-lər və ya nəzarətçinin siyasətlər üçün ayırdığı SID-lər. O, qlobal kimi istifadə olunmur: dəyər yalnız sahib qovşaqda məna daşıyır, SRLB isə qonşulara nəzarətçinin icazəli qiymətləri bilməsi üçün bildirilir. Cisco-da standart SRLB 15000-15999-dur, SRGB və SRLB kəsişməməlidir. Dinamik Adjacency-SID-lər SRGB-dən yox, dinamik etiket pulundan götürülür.
SID-lər IGP-yə necə düşür
IS-IS (RFC 8667). Qovşağın imkanlarını Router Capability TLV 242 daşıyır. Onun daxilində: I (SR-MPLS IPv4) və V (IPv6) bayraqları və SRGB deskriptorları (3 baytlıq diapazon ölçüsü və ilk etiketi olan 1 tipli SID/Label sub-TLV) ilə SR-Capabilities sub-TLV (tip 2), SR-Algorithm sub-TLV (tip 19), SR Local Block sub-TLV (tip 22) və Node MSD sub-TLV (tip 23, RFC 8491). Prefix-SID prefiks əlçatanlığı TLV-sinin (135, 235, 236, 237) daxilində 3 tipli sub-TLV-dir. Bunun üçün wide metrikalar lazımdır: narrow metrikalarda (TLV 128/130) sub-TLV-ləri daşımaq mümkün deyil, belə IS-IS-də SR işləməyəcək.
OSPFv2 (RFC 8665). İmkanları Router Information Opaque LSA (tip 4) daşıyır: SR-Algorithm TLV (tip 8), SID/Label Range TLV (tip 9), SR Local Block TLV (tip 14), SRMS Preference TLV (tip 15) və Node MSD TLV (tip 12, RFC 8476). Prefix-SID Extended Prefix Opaque LSA-da (Opaque tip 7), Adjacency-SID isə Extended Link Opaque LSA-da (tip 8) yerləşir. Buna görə OSPF-də işləyən opaque funksionallığı vacibdir, flooding sahəsi isə SID-ləri kimin görəcəyini müəyyən edir.