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

CSPF (Constrained Shortest Path First) TED qrafı üzərində işləyən təkmilləşdirilmiş Deykstra alqoritmidir. Standart SPF-dən fərqli olaraq CSPF yolu hesablamazdan əvvəl şərtləri ödəməyən bütün linkləri topologiyadan kəsir (pruning): 1. Zolaq məhdudiyyəti (Bandwidth): boş zolağı tunelin tələbindən az olan linklər dərhal kəsilir. 2. Link rəngləri (Affinity / Admin Groups): hər fiziki linkə 32-bitlik rəng maskası verilir (məsələn, bit 0 = Qızıl optik xətt, bit 1 = Peyk rabitəsi). Tunel yaradılarkən 'yalnız qızıl xətlərlə get' (Include-any) və ya 'peyk xətlərini qadağan et' (Exclude-any) təyin edilir. 3. Açıq yollar (Explicit Path): mühəndis tunelin keçəcəyi tranzit qovşaqları Strict Hop (birbaşa qoşulu) və ya Loose Hop (sərbəst keçid) ilə əllə təyin edə bilər.

CSPF nə edir

CSPF (Constrained SPF) LSP-nin head-end-ində TED üzrə işləyir və siqnallaşma üçün ERO qaytarır. Alqoritm: TED qrafını götürmək, məhdudiyyətləri pozan hər şeyi atmaq və qalanın üzərində Dijkstra işlətmək. Kənarlaşdırma ardıcıllığı:

  1. TE atributları olmayan linklər və lazımi prioritetdə boş zolağı olmayan linklər (unreserved bandwidth[setup priority] tələb olunandan azdır).
  2. Administrative group (affinity) yoxlamasından keçməyən linklər.
  3. Explicit path-in exclude-address / exclude siyahısında göstərilən qovşaqlar və linklər.
  4. İstifadəsi qadağan olunmuş SRLG-lərdəki linklər (qoruyucu yollar üçün).
  5. Qalan qrafda TE metric (və ya seçilibsə IGP metric) üzrə Dijkstra.

Kənarlaşdırmadan sonra tail-ə yol qalmırsa, tunel Path: not valid vəziyyətində qalır və RSVP ümumiyyətlə işə düşmür: Path göndərilmir. CSPF TED-də əks olunmayan heç nəyi bilmir, ona görə köhnəlmiş məlumatla yarış mümkündür: yol hesablanıb, lakin tranzit PathErr ilə cavab verir.

Dəyər üzrə bir neçə bərabər yol alınarsa, seçim platformadan asılıdır. Cisco ən böyük minimal boş zolağı olan yolu, sonra daha az hop-lu yolu, sonra təsadüfi yolu seçir. Junos susmaya görə təsadüfi (random) seçir və ya konfiqurasiya ilə least-fill (daha az dolu) və most-fill istifadə edir. Fərqli qaydalar eyni konfiqurasiyanın müxtəlif platformalarda fərqli yol verməsinin tez-tez rast gəlinən səbəbidir.

Metrika: TE metric yoxsa IGP metric

TE metric sub-TLV 5-də (OSPF) / sub-TLV 18-də (IS-IS) ayrıca ədəddir və susmaya görə IGP metrikasına bərabərdir. Onun müstəqilliyi TE yolunu başqa çəkilərlə, məsələn gecikməyə görə hesablamağa imkan verir: IGP metric buraxılış qabiliyyəti üçün saxlanılır, TE metric isə linkin gecikməsinə mütənasib verilir. Cisco-da tunel üçün metrikanın seçimi tunnel mpls traffic-eng path-selection metric te|igp ilə verilir və susmaya görə TE metric istifadə olunur. Junos ospf traffic-engineering qoşulubsa və te-metric verilibsə TE metric, əks halda IGP metric istifadə edir. Laboratoriya konfiqurasiyasında P2 üzərindən linkin TE metric-i (5) P1 üzərindəkindən (10) azdır: məhdudiyyətlər olmasa, CSPF P2-ni seçərdi, affinity məhdudiyyəti isə daha bahalı yolu seçməyə məcbur edir.

Administrative groups (affinity)

Linkin administrative group-u 32 bitlik maskadır (OSPF sub-TLV 9, IS-IS sub-TLV 3). Hər bit ixtiyari "rəngdir": bit 0 - GOLD, bit 1 - SAT. Cisco bunu ədədlə verir, mpls traffic-eng attribute-flags 0x1, Junos isə adlarla, admin-groups GOLD 0 (ad bit nömrəsi ilə əlaqələndirilir) və interfeysə bağlamaqla. Bitin mənasını administrator özü müəyyən edir, o standartlaşdırılmayıb.

Tunel tərəfində SESSION_ATTRIBUTE (C-Type 1, RFC 3209) üç 32 bitlik maska daşıyır: exclude-any, include-any, include-all. Link o halda icazəlidir ki:

  • (link & exclude-any) == 0: qadağan olunmuş rəng yoxdur;
  • include-any == 0 və ya (link & include-any) != 0: tələb olunan rənglərdən ən azı biri var;
  • (link & include-all) == include-all: bütün məcburi rənglər var.

Cisco bunu affinity VALUE mask MASK cütü ilə konfiqurasiya edir: maskadakı hər bit üçün linkin biti affinity bitinə uyğun gəlməlidir. Yəni affinity 0x1 mask 0x3 "bit 0 mütləq 1, bit 1 mütləq 0 olmalıdır, qalanı vacib deyil" deməkdir - include-all (0x1) və exclude-any (0x2) birləşməsi. Junos eyni şeyi admin-group include-any, include-all və exclude açar sözləri ilə ifadə edir.

Cisco ilə işləyən hər kəsin bildiyi tələ: susmaya görə dəyər affinity 0x0 mask 0xFFFF-dir. Bu o deməkdir ki, açıq ayarları olmayan tunel aşağı 16 bitdə ən azı bir bit qoyulmuş istənilən linki yan keçir. Linkə "monitorinq üçün" attribute-flags 0x4 qoymaq kifayətdir ki, susmaya görə ayarları olan bütün tunellər bu linkdən istifadəni dayandırsın. Başqa tələ: məhdudiyyətlərin dəyişməsi işləyən LSP-ni dərhal yenidən qurmur. Yeni yol re-optimization zamanı hesablanır: taymerlə (Cisco-da susmaya görə 3600 s), hadisə ilə və ya əllə.

Explicit və dinamik yollar

Path-option ERO-nun necə alınacağını təsvir edir.

VariantCSPF nə edirNə vaxt istifadə etməli
dynamicbütün yolu məhdudiyyətlərə görə hesablayırəsas rejim, nasazlıqlara uyğunlaşır
explicit, strict hopsyolu TED üzrə yoxlayır, lakin seçmirsərt bağlama, məsələn kanal üzrə müqavilə tələbi ilə
explicit, loose hopsgöstərilən qovşaqlar arasındakı seqmentləri hesablayır"P1-dən keç, qalanını özün tap"
explicit, excludeünvanları qrafdan silir və qalanını hesablayırproblemli qovşağı və ya linki yan keçmək

ERO alt obyekti strict (növbəti qovşaq qonşu olmalıdır) və ya loose (ona gedən yolu ERO-dakı əvvəlki qovşaq öz TED-i üzrə hesablayır, ona görə loose yol head-end-in iştirakı olmadan dəyişə bilər) olur. Cisco variantların prioritetini dəstəkləyir (path-option 10, path-option 20 dynamic): birincisi mümkün olmasa, head növbətini yoxlayır. verbatim (Cisco) və no-cspf (Junos) parametrləri TED yoxlamasını söndürür və head-end-in görmədiyi yolun, məsələn başqa area-da olan yolun siqnallaşdırılmasına icazə verir: düzgünlüyə məsuliyyət tamamilə operatorun üzərindədir.

Explicit path interfeys ünvanlarını və ya router-id-ləri göstərir. Ünvan dəyişib, yol isə konfiqurasiyada qalıbsa, tunel PathErr 24/2 (Bad strict node) alır və ya TED yoxlamasından keçmir. Adlandırılmış yolları tunellərdən ayrı saxlamaq və bir yerdə dəyişmək rahatdır.

SRLG

Shared Risk Link Group birlikdə nasaz olan linkləri işarələyən ədəddir: bir kartdakı iki port, bir kabeldəki iki lif. SRLG qiymətlərini IGP flood edir (OSPF sub-TLV 16, RFC 4203; IS-IS TLV 138, RFC 5307). Qoruyucu yol üçün CSPF əvvəlcə əsas yolun SRLG-lərindəki linkləri silir (strict rejim) və ya ortaq SRLG-si olmayan yola üstünlük verir (soft rejim). SRLG olmadan iki "müstəqil" yol bir kabel qırılandan sonra eyni anda yoxa çıxa bilər.