Nəzəri əsaslar və memarlıq
Segment Routing-də iki əsas IGP seqment növü istifadə olunur: 1. Prefix SID (Node SID) — routerin Loopback /32 ünvanına bağlı qlobal seqmentdir. Bütün şəbəkədə unikal olur (məsələn, PE1 üçün İndeks 1 -> Etiket 16001; PE2 üçün İndeks 2 -> Etiket 16002). Bütün nüvə routerləri bu ünvana ən qısa yolla (SPF) etiket kommutasiyası edir. 2. Adjacency SID — iki qonşu router arasındakı konkret fiziki linki bildirən lokal seqmentdir. Dinamik olaraq lokal etiketlər arasından ayrılır və routerə 'bu paketi marşrut axtarışı etmədən birbaşa X interfeysindən çıxart' əmrini verir. Prefix SID və Adjacency SID-ləri bir etiket stekində birləşdirərək paketi şəbəkə boyu istənilən trayektoriya ilə yönləndirmək mümkündür.
İki əsas IGP seqmenti
RFC 8402 bir neçə seqment növünü təqdim edir, lakin demək olar ki, hər şey ikisi üzərində qurulur: Prefix-SID ("paketi IGP-nin ən qısa yolu ilə prefiksə çatdır" göstərişi) və Adjacency-SID ("paketi məhz bu xəttə göndər" göstərişi). Birincinin qlobal mənası var və SRGB-dəki indekslə bağlıdır, ikincinin lokal mənası var və bir qovşaqdakı qonşuluqla bağlıdır. Onların steki istənilən marşrutu verir: Prefix-SID-lər paketi şəbəkə üzrə hərəkət etdirir, Adjacency-SID-lər ən qısa yolun uyğun gəlmədiyi yerdə lazımi xətti sabitləyir.
Prefix-SID və Node-SID
Prefix-SID prefiksə bağlanır: çox vaxt bu, /32 loopback olur və onda ona Node-SID deyilir (sub-TLV-də N bayrağı qoyulur). Elan indeksi (və ya V/L bayraqlarında mütləq dəyəri), alqoritmi və bayraqları ehtiva edir. 0 alqoritmi adi IGP SPF-dir, 1 alqoritmi Strict SPF-dir (yol lokal siyasətlərlə dəyişmir, məsələn TI-LFA trafiki ondan yayındırmır), 128-255 dəyərləri Flex-Algo üçün ayrılıb (RFC 9350). IS-IS bayraqları (RFC 8667): R (re-advertisement), N (Node-SID), P (no-PHP), E (explicit-null), V (indeks yox, dəyər), L (lokal dəyər). OSPFv2-də (RFC 8665) Prefix-SID Extended Prefix Opaque LSA-da (Opaque tip 7), 2 tipli sub-TLV-də yerləşir, bayraqlar NP, M (mapping server), E, V, L-dir; eyni mexanizm Anycast üçün də tətbiq olunur.
Hər marşrutlaşdırıcı özü SPF qurur və SID prefiksi üçün bütün bərabər dəyərli ən qısa növbəti addımları götürür: Prefix-SID təbii olaraq ECMP-ni dəstəkləyir, balanslaşdırma başlıqların hash-i və ya entropy etiketi (RFC 8662) ilə gedir. Hər seqment üçün ayrıca vəziyyət yaradılmır.
Anycast SID
Bir neçə qovşaq eyni prefiksi eyni SID ilə elan edirsə (N bayrağı sıfırlanıb), Anycast-SID alınır: paket metrikaya görə qrupun ən yaxın qovşağına gedir, ən yaxın nasaz olduqda isə növbətisinə. Tətbiq: ABR cütü və ya şlüzlər, mərkəzlər arasında balanslaşdırma. Şərtlər: bütün iştirakçılarda eyni indeks və alqoritm olmalıdır, qrupun arxasındakı xidmət vəziyyəti isə uzlaşdırılmalıdır (əks halda paket lazımi məlumatı olmayan qovşağa düşəcək). Belə SID-lərin TI-LFA ilə mühafizəsi realizasiyadan asılıdır: platformanın anycast prefiks üçün ehtiyat yol qurub-qurmadığını yoxlayın.
PHP və ya explicit-null
Standart olaraq Prefix-SID P/NP və E bayraqları olmadan elan olunur: sondan əvvəlki qovşaq etiketi çıxarır (PHP) və sonuncu qovşaq paketi seqmentsiz qəbul edir. P (IS-IS) və ya NP (OSPF) bayrağı "PHP etmə" deməkdir: sondan əvvəlki qovşaq etiketi saxlayır və son qovşaq öz SID-ini görür. E bayrağı explicit-null deməkdir: sondan əvvəlki qovşaq etiketi 0 (IPv4) və ya 2 (IPv6) ilə əvəz edir. Buna nə üçün ehtiyac var: PHP zamanı yuxarı etiketin TC sahəsi tunneldən çıxışdan əvvəl itir (pipe modeli), explicit-null isə onu son PE-dəki QoS siyasəti üçün saxlayır; son qovşaq seqmenti özü emal etməli olduqda no-PHP tələb olunur. Seçimi prefiksin sahibi edir, tranzit yox, və o, bütün göndərənlərə şamil olunur.
RFC 8660 əməliyyatları
RFC 8660 üç əməliyyatı təsvir edir: PUSH (seqmenti steka qoymaq), CONTINUE (aktiv seqment bitməyib, tranzit etiketi növbəti addım üçün dəyərlə əvəz edir, swap) və NEXT (aktiv seqment bitib, etiket çıxarılır, aktiv seqment növbəti olur). Prefix-SID üçün tranzit qovşaqlar CONTINUE, sahib qovşaq isə NEXT yerinə yetirir. Adjacency-SID üçün qovşaq NEXT yerinə yetirir və paketi FIB axtarışı olmadan interfeysə göndərir.
Adjacency-SID
Hər qonşuya qovşaq lokal fəzadan (dinamik pul və ya SRLB) etiket ayırır və onu IGP-də elan edir: IS-IS-də bu, qonşu əlçatanlığı TLV-sinin (22, 222, 23, 223, 141) daxilindəki Adj-SID sub-TLV-dir (tip 31), LAN üçün isə LAN-Adj-SID sub-TLV (tip 32) istifadə olunur; OSPF-də Extended Link Opaque LSA-dakı (tip 8) Adj-SID sub-TLV (tip 2) və LAN Adj-SID (tip 3). IS-IS bayraqları: F (ünvan ailəsi), B (ehtiyatla qorunur, adətən TI-LFA), V (indeks yox, dəyər), L (lokal dəyər), S (bir neçə qonşuluq üçün Adj-SID dəsti), P (daimi dəyər, yenidən başlamada saxlanır). S dəsti ilə bir SID trafiki paralel xətlər üzrə bərabər paylayır. Bir çox platforma hər qonşuluğa iki etiket ayırır: qorunan (ehtiyatla) və qorunmayan.
Adjacency-SID üçün SPF lazım deyil: bu etiketli paket qovşaqda sadəcə xəttə çıxır. Dəyəri yalnız sahib bilir, digər qovşaqlar onu IGP vasitəsilə öyrənir. Dinamik ayrılıbsa, yenidən yükləmədən və ya qonşuluğun itməsindən sonra dəyişə bilər: dinamik Adj-SID olan siyasətlərə əl ilə yazılmış steklər işləməyəcək. Çıxış yolu SRLB-dən SID (daimi dəyərlər), dəyərləri IGP/BGP-LS-dən oxuyan nəzarətçi və ya Node-SID-lərdən istifadədir.