Dwaj dostawcy opisują tę samą etykietę usługi, a tylko jeden z nich wspomina nagłówek UDP. Różnica nie jest kosmetyczna: umieszczenie MPLS wewnątrz UDP zmienia to, co widzi zewnętrzna sieć IP, a więc co może hashować przez równoległe łącza. Zmienia też, kto może to wdrożyć.

Warstwy są dość krótkie, by je zapamiętać: zewnętrzny IP, potem UDP, potem stos etykiet MPLS, potem ładunek usługi. Stos etykiet nie znika; nadal decyduje o przekazywaniu w punkcie końcowym, który wznawia przełączanie etykiet.

Co dodaje otoczka UDP

RFC 7510 definiuje tę enkapsulację z portem docelowym UDP 6635 i używa pola portu źródłowego do przenoszenia entropii przepływu. Urządzenie enkapsulujące decyduje, co liczy się jako przepływ i jak wyprowadzić wartość; standard celowo nie narzuca jednego konkretnego hasha. To zostawia miejsce na zachowanie dostawcy i oznacza, że dwie implementacje mogą dawać różne rozkłady dla tej samej mieszanki ruchu. Czytaj wartość jako wskazówkę oferowaną warstwie niższej, nie jako decyzję routingu podjętą przez standard.

Korzyść jest pośrednia. Sieć tranzytowa, która równoważy obciążenie według zewnętrznej piątki, ma teraz co hashować, podczas gdy goły pakiet MPLS oferował być może tylko górną etykietę. Czy to pomaga, zależy od platformy wykonującej równoważenie i od tego, które pola naprawdę bierze pod uwagę.

Entropia to nie przepustowość

Równomierniejsze rozłożenie przepływów na dostępne łącza nie jest tym samym co połączenie ich w jedną szybszą ścieżkę. Pojedynczy przepływ aplikacji nadal podróżuje jedną ścieżką, a równoważenie na przepływ nie może przekroczyć przepustowości łącza, na którym wyląduje. Mechanizm nie gwarantuje też równomiernego rozkładu; daje jedynie funkcji hash lepsze dane wejściowe.

Utrzymuj otoczkę stabilną dla danego przepływu, chyba że zmiana kolejności jest akceptowalna. Jeśli port źródłowy zmienia się z pakietem, warstwa niższa chętnie rozproszy jedną rozmowę na kilka ścieżek, a ponowne składanie stanie się problemem aplikacji. Celem jest spójna entropia na przepływ, nie ciągła nowość.

Granica wdrożenia jest częścią specyfikacji

RFC 7510 ogranicza wdrożenie do sieci jednego operatora lub do sąsiedniego zbioru współpracujących operatorów, przy czym ruch jest zarządzany tak, by uniknąć zatorów. Wymaga też filtrowania, które uniemożliwia enkapsulowanemu ruchowi wydostanie się z tej domeny. To nie są ozdobne warunki; wynikają z faktu, że enkapsulacja nie dodaje własnego bezpieczeństwa. Traktuj je jako warunki wstępne legalnego wdrożenia, a nie jako sugestie w notatce projektowej.

Nic w nagłówku UDP nie uwierzytelnia nadawcy i nic w nim nie zapewnia poufności ani integralności ładunku. Jeśli ruch potrzebuje ochrony, pochodzi ona z osobnego mechanizmu z własnym zarządzaniem kluczami. Wybór MPLS-in-UDP nie podnosi modelu zaufania.

Uważaj, co ochrona robi z hashowaniem, którego chciałeś

Dodaj IPsec lub inną enkapsulację bezpieczeństwa, a zewnętrzny nagłówek, który hashują urządzenia tranzytowe, może całkowicie zmienić kształt. Tryb tunelowy może ukryć wewnętrzny port źródłowy UDP za nowym zewnętrznym nagłówkiem, co oznacza, że starannie dostarczona entropia może nie być widoczna tam, gdzie odbywa się równoważenie. Najpierw szyfrowanie, potem enkapsulacja to inny projekt niż odwrotna kolejność, a różnica objawia się jako łącze przenoszące znacznie więcej ruchu niż sąsiednie.

Oceniaj cały pakiet tak, jak wygląda na drucie, nie tylko warstwę opisaną przez standard. To także moment, by przemyśleć MTU i pojemność punktu końcowego, ponieważ nagłówek UDP plus jakikolwiek narzut bezpieczeństwa zmniejsza mieszczący się ładunek.

Decyduj, widząc całą ścieżkę

Porównaj MPLS-in-UDP z alternatywami takimi jak GRE według kryteriów ważnych dla twojej sieci: na jakich polach równoważy warstwa niższa, na jaki narzut możesz sobie pozwolić, jaka otoczka bezpieczeństwa jest wymagana i czy granica domeny może być egzekwowana. Przypisywanie mu bezwarunkowej przewagi wydajności nad GRE to wniosek, którego standardy nie popierają.

Potem testuj z rzeczywistymi mieszankami ruchu i sprawdzaj wykorzystanie łączy poszczególnych członków, ponieważ hash, który dobrze wygląda w laboratorium, może się zapaść na jednym łączu, gdy wszystkie przepływy dzielą tę samą krotkę. Uczciwe podsumowanie jest takie, że enkapsulacja ujawnia informacje, których warstwa niższa może użyć, wewnątrz domeny, która zgodziła się nimi zarządzać.

Powiązane artykuły