MPLS în UDP: entropie pentru stratul inferior, reguli pentru domeniu
Un plic UDP dă stratului IP inferior ceva de hashat fără a pierde eticheta de serviciu. RFC 7510 îl limitează și la domenii gestionate și cooperante.
Doi furnizori descriu aceeași etichetă de serviciu, și doar unul dintre ei menționează un antet UDP. Diferența nu este cosmetică: plasarea MPLS în interiorul UDP schimbă ce poate vedea rețeaua IP externă și, prin urmare, ce poate hasha pe legăturile paralele. Schimbă și cine are voie să îl implementeze.
Straturile sunt destul de scurte pentru a fi memorate: IP extern, apoi UDP, apoi stiva de etichete MPLS, apoi încărcătura serviciului. Stiva de etichete nu dispare; încă decide transmiterea la punctul final care reia comutarea etichetelor.
Ce adaugă plicul UDP
RFC 7510 definește această încapsulare cu portul de destinație UDP 6635 și folosește câmpul portului sursă pentru a transporta entropia fluxului. Dispozitivul care încapsulează decide ce contează drept flux și cum se derivă valoarea; standardul în mod deliberat nu impune un anumit hash. Asta lasă loc comportamentului furnizorului și înseamnă că două implementări pot produce distribuții diferite pentru același amestec de trafic. Citiți valoarea ca un indiciu oferit stratului inferior, nu ca o decizie de rutare luată de standard.
Beneficiul este indirect. O rețea de tranzit care echilibrează sarcina pe un cvintuplu extern are acum ce să hasheze, în timp ce un pachet MPLS gol oferea poate doar eticheta de sus. Dacă asta ajută depinde de platforma care face echilibrarea și de câmpurile pe care le ia efectiv în considerare.
Entropia nu este lățime de bandă
Distribuirea fluxurilor mai uniform pe legăturile disponibile nu este același lucru cu combinarea lor într-o singură cale mai rapidă. Un singur flux de aplicație călătorește în continuare pe o singură cale, iar echilibrarea pe flux nu poate depăși capacitatea legăturii pe care aterizează. Mecanismul nu garantează nici o distribuție uniformă; oferă doar intrări mai bune unei funcții hash.
Păstrați plicul stabil pentru un anumit flux, dacă reordonarea nu este acceptabilă. Dacă portul sursă se schimbă la fiecare pachet, stratul inferior va răspândi bucuros o conversație pe mai multe căi, iar reasamblarea devine problema aplicației. Scopul este entropie consecventă pe flux, nu noutate constantă.
Limita de implementare face parte din specificație
RFC 7510 limitează implementarea la rețeaua unui singur operator sau la un set adiacent de operatori care cooperează, cu traficul gestionat pentru a evita congestia. De asemenea, cere filtrare care împiedică traficul încapsulat să scape din acel domeniu. Nu sunt condiții decorative; ele decurg din faptul că încapsularea nu adaugă securitate proprie. Tratați-le ca pe niște condiții prealabile pentru o implementare legitimă, nu ca pe niște sugestii într-o notă de proiectare.
Nimic din antetul UDP nu autentifică expeditorul și nimic din el nu oferă confidențialitate sau integritate pentru încărcătură. Dacă traficul are nevoie de protecție, aceasta vine dintr-un mecanism separat, cu propria gestionare a cheilor. Alegerea MPLS-in-UDP nu îmbunătățește modelul de încredere.
Atenție la ce face protecția cu hashingul dorit
Adăugați IPsec sau o altă încapsulare de securitate, iar antetul extern pe care îl hashează dispozitivele de tranzit poate să își schimbe complet forma. Modul tunel poate ascunde portul sursă UDP intern în spatele unui nou antet extern, ceea ce înseamnă că entropia furnizată cu grijă poate să nu fie vizibilă acolo unde are loc echilibrarea. Criptarea întâi și încapsularea după este un design diferit de ordinea inversă, iar diferența apare ca o legătură care transportă mult mai mult trafic decât vecinele sale.
Evaluați pachetul complet așa cum apare pe fir, nu doar stratul descris de standard. Acesta este și momentul să reconsiderați MTU și capacitatea punctului final, deoarece un antet UDP plus orice suprasarcină de securitate reduc încărcătura care încape.
Decide cu întreaga cale în vedere
Comparați MPLS-in-UDP cu alternative precum GRE după criteriile care contează pentru rețeaua dumneavoastră: pe ce câmpuri echilibrează stratul inferior, câtă suprasarcină vă puteți permite, ce înveliș de securitate este necesar și dacă limita domeniului poate fi impusă. A-i atribui un avantaj necondiționat de performanță față de GRE este o concluzie pe care standardele nu o susțin.
Apoi testați cu amestecuri reale de trafic și verificați utilizarea legăturii pentru fiecare membru, deoarece un hash care arată bine în laborator poate colapsa pe o singură legătură atunci când toate fluxurile împart același tuplu. Rezumatul onest este că încapsularea expune informații pe care stratul inferior le poate folosi, în interiorul unui domeniu care a acceptat să le gestioneze.