Materiały przygotowawcze do laboratorium 3 Badanie właściwości wieloprotokołowej komutacji etykietowej MPLS (Multi-Protocol Label Switching). Wznawianie pracy po wystąpieniu uszkodzenia w sieciach rozległych Piotr Chołda, Mirosław Kantor, Arkadiusz Zwierz, Grzegorz Rzym, Krzysztof Wajda 31 maja 2016 Przed zajęciami należy dokładnie zapoznać się z niniejszym materiałem. 1. Protokół sygnalizacji RSVP(-TE) RSVP (Resource ReSerVation Protocol) jest protokołem, który zaprojektowano w celu dostarczania aplikacjom internetowym, a dokładniej generowanemu przez nie ruchowi, różnych poziomów jakości obsługi QoS (pierwotnie planowano jego użycie łącznie z modelem IntServ). Dotyczy to przede wszystkim rezerwacji zasobów (pierwotnie przepływność, później np. etykiety). Wiadomości protokołu RSVP nie korzystają z żadnego protokołu transportowego (są wprost przenoszone w datagramach IP). Protokół ten jest wykorzystywany przez rutery w celu zapewnienia odpowiedniej jakości usług żądanych we wszystkich węzłach komunikacyjnych wzdłuż określonej ścieżki transmisji strumieni danych, głosu, obrazu itp. RSVP został opracowany w celu współpracy z istniejącymi protokołami rutingu. Protokół ten dobrze współdziała również z techniką MPLS. Protokół RSVP-TE (Resource ReSerVation Protocol with Traffic Engineering extensions) jest rozszerzeniem protokołu RSVP, które powstało w celu zestawiania ścieżek LSP w sieciach MPLS. Nowymi funkcjami protokołu jest dystrybucja etykiet, jak również przenoszenie informacji o tunelu MPLS. Tunel pozwala na implementację różnych polityk obsługi ruchu w celu optymalizacji działania sieci. Protokół ten pomaga w zestawieniu ścieżki LSP rozsyłając do wszystkich urządzeń, które mają uczestniczyć w transmisji wiadomości: Path w kierunku wysyłania danych, Resv w kierunku przeciwnym do transmitowanych danych. Wiadomość RSVP Path używa pola LABEL REQUEST do zażądania powiązania etykiety wejściowej z wyjściową w każdym węźle. Pole SESSION ATTRIBUTE zawarte w RSVP Path określa atrybuty ścieżki LSP (np. priorytet, wymagany poziom protekcji). Pole EXPLICIT Strona 1
ROUTE zawiera informację o trasie ścieżki, którą podąża wiadomość RSVP Path. Wiadomość RSVP Resv używa z kolei bloku LABEL do dystrybucji etykiet. Pole RECORD ROUTE obecne zarówno w RSVP Path, jak i RSVP Resv gromadzi informacje o węzłach/etykietach, które zostały odwiedzone/przyznane po drodze. W ten sposób wiadomości RSVP Resv przenoszą numery etykiety nadanej danemu węzłowi w kontekście określonego tunelu, dzięki czemu nowa ścieżka zostaje zestawiona. Rezultatem żądania RSVP będzie rezerwacja zasobów w każdym węźle należącym do ścieżki, ale tylko w jednym kierunku (tunele są jednokierunkowe). Proces RSVP korzystając w węźle wejściowym z lokalnej tablicy rutingu stara się dobrać przebieg ścieżki LSP do określonego rutera końcowego (na tym polega właśnie ruting źródłowy). RSVP nie jest więc odpowiedzialny za wybór trasy. W praktyce rezerwacja etykiet za pomocą RSVP wygląda następująco: ruter wejściowy dla tunelu (ścieżki) generuje wiadomość RSVP Path, która jest przesyłana do kolejnych urządzeń na trasie aż do rutera kończącego tunel (ścieżkę). W odpowiedzi ruter kończący ścieżkę generuje wiadomość RSVP Resv, która jest przesyłana do każdego węzła na ścieżce. W trakcie trwania tej operacji każdy ruter na ścieżce dokonuje rezerwacji zasobów (o ile nimi dysponuje). Oprócz omówionych wcześniej wiadomości Path i Resv, RSVP używa kilku innych. Służą one głównie do poinformowania o wystąpieniu jakiegoś problemu. PathTear jest wysyłana przez ruter w celu powiadomienie o usunięciu aktywnej ścieżki. ResvTear jest odpowiedzią na PathTear. PathErr jest to wiadomość przesyłana w kierunku urządzenia wejściowego. Najbardziej prawdopodobną przyczyną jej wygenerowania jest brak zasobów na urządzeniach pośredniczących lub uszkodzenie łącza, a co za tym idzie przerwanie ścieżki lub niepowodzenie w ustanowieniu ścieżki. 2. Przykład konfiguracji MPLS-TE na ruterze Cisco Z tunelem powiązane są następujące elementy: rutery początkowy i końcowy dla tunelu, przypisana przepływność, priorytety, przypisane ścieżki. Zakończeniem tunelu jest identyfikator rutera wyjściowego. Najczęściej jest to ustanowiony wcześniej adres interfejsu loopback. Przypisana przepływność (bandwidth) określa wymaganą wartość dla tego tunelu. Tunel MPLS TE konfiguruje się na urządzeniu wejściowym. Można go utworzyć na dwa sposoby: statycznie (explicit) i dynamicznie (dynamic). Według pierwszej z metod, należy określić wszystkie węzły tworzące tunel, za pomocą ich identyfikatorów, lub po prostu za pomocą odpowiednich adresów IP interfejsów. Według drugiej natomiast, wystarczy zdefiniować węzeł docelowy. Ruter, na podstawie informacji uzyskanych przez protokół rutingu, określi najlepszą ścieżkę dla tunelu (zestawienie zostanie dokonane przez RSVP). Z punktu widzenia rutera Cisco, tunel jest wirtualnym interfejsem. Dla jednego tunelu można Strona 2
skonfigurować do 1000 ścieżek rozróżnianych za pomocą parametru path option. Im mniejsza jego wartość, tym ścieżka jest bardziej preferowana w stosunku do innych ścieżek zdefiniowanych dla tego tunelu. W sytuacji, kiedy żadna ze ścieżek nie będzie mogła zostać zestawiona, cały interfejs zostanie wyłączony. Z każdym tunelem są powiązane dwa priorytety: setup i hold. Niższa wartość wskazuje na wyższy priorytet. Parametr setup związany jest z nowo zestawianymi ścieżkami LSP. Hold określa stosunek do zarezerwowanych zasobów im wyższa wartość, tym tunel ten jest bardziej skłonny do rezygnacji z nich: w przypadku próby utworzenia dodatkowego tunelu, w sytuacji kiedy nie można mu zapewnić wystarczającej szerokości pasma z powodu zajęcia zasobów przez już istniejące tunele, nowa ścieżka zostanie zestawiona, jeżeli wartość setup dla związanego z nią tunelem będzie mniejsza (wyższy priorytet) od wartości hold tunelu konkurencyjnego. Fragment konfiguracji przedstawiono poniżej: hostname Router mpls traffic-eng tunnels interface Loopback0 ip address 10.0.0.21 255.255.255.255 interface Tunnel0 ip unnumbered Loopback0 tunnel destination 10.0.0.22 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 1 1 tunnel mpls traffic-eng bandwidth 100 tunnel mpls traffic-eng path-option 1 explicit name LSP1 tunnel mpls traffic-eng path-option 2 dynamic name LSP2 router ospf 1 mpls traffic-eng router-id Loopback0 mpls traffic-eng area 0 network 10.0.0.21 0.0.0.0 area 0 network 192.168.2.0 0.0.0.255 area 0 network 192.168.7.0 0.0.0.255 area 0 network 192.168.9.0 0.0.0.255 area 0 Strona 3
ip explicit-path name LSP1 enable next-address 192.168.2.31 next-address 192.168.4.33 next-address 192.168.10.34 next-address 192.168.11.22 next-address 10.0.0.22 mpls ldp router-id Loopback0 Komenda mpls traffic-eng tunnels uruchamia MPLS-TE na ruterze Router. W przedstawionej konfiguracji został skonfigurowany jeden interfejs tunelu Tunnel0. Komenda interface Tunnel0 uaktywnia go, umożliwiając administratorowi konfigurację. Zakończenie tunelu wskazuje na ruter z identyfikatorem 10.0.0.22/32 (komenda tunnel destination 10.0.0.22). Z kolei komenda ip unnumbered Loopback0 wiąże adres IP interfejsu Loopback0 z początkiem tunelu. tunnel mode mpls traffic-eng konfiguruje tryb tunelu na TE, natomiast dzięki komendzie tunnel mpls traffic-eng autoroute announce tunel będzie rozgłaszany przez protokół rutingu wewnętrznego: w tablicy rutingu pojawi się Tunnel0. Wartość 100 podana w komendzie tunnel mpls traffic-eng bandwidth 100 określa wymaganą dla niego przepływność w kb/s. Oprócz tego zastosowano dwie metody zestawienia ścieżki. Pierwsza ze ścieżek, LSP1, została wpisana ręcznie (typ explicit, por. komendę tunnel mpls traffic-eng path-option 1 explicit name LSP1), węzeł po węźle (komenda ip explicit-path i następnie name LSP1 enable next-address 192.168.2.31 ). Gdyby jednak operacja zestawienia pierwszej ścieżki się nie powiodła, MPLS TE spróbuje zestawić drugą ścieżkę (LSP2) dynamicznie na podstawie znajomości topologii sieci dostarczonej przez protokół rutingu (por. komenda tunnel mpls traffic-eng path-option 2 dynamic name LSP2). Priorytety tunelu są definiowane za pomocą polecenia: tunnel mpls traffic-eng priority 1 1 (pierwsza jedynka odnosi się do setup, a druga do hold). W protokole rutingu (tutaj: OSPF) również definiuje się parametry związane z MPLS-TE: mpls traffic-eng router-id Loopback0 określa identyfikator rutera dla procesu Traffic Engineering i pozwala na rozgłaszanie interfejsu Loopback0 w procesie rutingu. Natomiast mpls traffic-eng area 0 uaktywnia MPLS TE dla obszaru 0:0:0:0 OSPF. Powyższy przykład pokazuje zatem uniwersalne współdziałanie "ręcznego" oraz "automatycznego" zestawiania tunelu i powinno się zakończyć sukcesem. 3. Odporność sieci rozległych na uszkodzenia Strona 4
We współczesnych sieciach rozległych szybka i efektywna reakcja na uszkodzenia jest niezwykle istotna, ze względu na dużą przepływność łączy (utrata dużej ilości danych w przypadku dłużej trwających niezdatności) oraz zróżnicowanie oferowanych usług. Łatwość realizacji niektórych procedur wznawiania pracy w MPLS wynika ze zorientowania tej techniki na połączenie. Wskutek tego ruch z łączy niezdatnych w wyniku wystąpienia uszkodzenia można bardzo łatwo i szybko przekierować na alternatywne połączenia i to w miejscu najbliższym uszkodzenia, zapewniając oszczędne użycie zasobów (ponieważ nie są one blokowane po uszkodzeniu, wobec czego można je przydzielić nowym połączeniom). Dotyczy to głównie procedur protekcyjnych (proaktywnych). Technika MPLS, w związku z tym, że korzysta z transmisji pakietowej, nie wyklucza jednak procedur odtworzeniowych (reaktywnych), które również mają swoje zalety (wydajność, decentralizacja samodzielność działania). 4. Wznawianie pracy w sieciach opartych na MPLS-TE MPLS TE zapewnia różne metody wznawiania pracy: odtwarzanie (domyślny mechanizm MPLS) zwane przekierowaniem LSP (LSP reroute); protekcja: o globalna; o lokalna (tzw. FRR: fast re-route): facility backup, one-to-one backup. Przekierowanie LSP jest do domyślna technika MPLS TE służąca do przywracania ruchu w tunelu. Opiera się tylko na konfiguracji dodatkowych opcji ścieżek dla tunelu (path option). W razie wykrycia awarii na czynnej ścieżce LSP, ruter wejściowy tunelu jest o niej informowany za pomocą tzw. Sygnału FIS (Fault Indication Signal). W praktyce jest to albo uaktualnienie protokołu rutingu albo wiadomość RSVP PathErr. Następnie ruter wejściowy zestawia nową ścieżkę, którą sygnalizuje za pomocą protokołu RSVP. Z punktu widzenia niezawodności protekcja globalna jest dużo bardziej efektywną metodą niż odtwarzanie. W przypadku protekcji 1:1 dla każdego tunelu zestawiana jest oprócz ścieżki roboczej również ścieżka zapasowa, dlatego nie jest to metoda dobrze skalowalna. Ważne jest, aby obie ścieżki miały jak najmniej punktów wspólnych. Najlepiej, żeby były całkowicie rozłączne oprócz oczywiście ich punktów końcowych. W razie wykrycia uszkodzenia ruch jest natychmiast przekierowywany na wcześniej zasygnalizowaną ścieżkę LSP. Strona 5
Protekcja lokalna odnosi się tylko do fragmentu roboczej ścieżki LSP (pojedynczego łącza lub węzła).podobnie jak w przypadku globalnej protekcji ścieżki, zapasowa LSP musi być wcześniej zasygnalizowana. Jest jednak od niej szybsza i lepiej skalowalna, ze względu na to, że z tej samej rezerwowej LSP może korzystać więcej niż jeden tunel (protekcja typu 1:N). W metodzie tej po wystąpieniu uszkodzenia ścieżka robocza jest enkapsulowana w tunelu zapasowym, który ma obiegać uszkodzone łącze lub niezdatny węzeł. W metodzie o nazwie facility backup tworzony jest pojedynczy tunel wznawiający na raz pracę wiele ścieżek korzystających z chronionego łącza (węzła). W kontraście do niej protekcja one-toone (znowu przykład 1:1) wymaga osobnej rezerwowej ścieżki LSP, która jest tworzona w węźle sąsiadującym z chronionym łączem (węzłem) dla każdej ścieżki, której pracę się wznawia. Jest to rozwiązanie niezbyt skalowalne, za to zapewniające najwyższy poziom niezawodności. Pytania do samodzielnego przestudiowania 1. Omówić przydatność MPLS do realizacji Traffic Engineering. 2. Podać różnice między metodami wznawiania pracy nazywanymi protekcja i odtwarzanie. 3. Scharakteryzować różnice między metodami protekcyjnymi 1:1 i 1+1, a także między 1:1 i 1:N. 4. Omówić rolę i działanie protokołu RSVP-TE w MPLS-TE. Strona 6