Routing

Routing Multicast

PIM-SM, PIM-DM i IGMP dla efektywnej komunikacji jeden-do-wielu.

Wprowadzenie: komunikacja multicastowa

Większość codziennych zastosowań Internetu korzysta z modelu jeden-do-jednego, czyli unicast. Podczas przeglądania strony komputer wysyła żądanie do jednego serwera, a serwer kieruje odpowiedź do tego komputera. Unicast sprawdza się przy pojedynczym odbiorcy, lecz wymaga osobnego strumienia dla każdego odbiorcy tej samej treści.

W transmisji na żywo dostawca korzystający z unicastu tworzyłby oddzielną kopię strumienia wideo dla każdego widza. Duża liczba odbiorców zwiększa wtedy obciążenie serwera oraz łączy dostawcy, nawet gdy wszystkie kopie zawierają identyczne dane.

Komunikacja broadcast (rozgłoszeniowa) kieruje pakiet do wszystkich urządzeń w danym segmencie sieci lokalnej. Odbiorca nie wybiera w tym modelu udziału w transmisji. Broadcast bywa użyteczny przy lokalnym wykrywaniu urządzeń, lecz przy dużej liczbie urządzeń zwiększa ruch i obciążenie hostów, które nie potrzebują danych.

Routing multicastowy dostarcza tę samą transmisję do wybranej grupy odbiorców. Zapewnia komunikację jeden-do-wielu i wielu-do-wielu. Źródło wysyła pakiet do adresu grupy, a router powiela go dopiero w punktach, w których drzewo dystrybucyjne rozgałęzia się do kilku interfejsów. Odbiorcy spoza grupy nie otrzymują tego ruchu.

W IPv4 adres grupy jest adresem docelowym, a adres źródłowy nadal identyfikuje nadawcę. Routery utrzymują stan przekazywania zależny od grupy, źródła i interfejsów wyjściowych. Router może więc kopiować pakiet dopiero tam, gdzie jest to potrzebne, zamiast wysyłać osobny strumień przez całą trasę do każdego hosta.

Multicast nie oznacza automatycznego dostarczenia do każdego hosta w Internecie. Odbiorca musi mieć stan członkostwa, router musi znać właściwy interfejs RPF, a kolejne routery muszą zbudować odpowiednie gałęzie drzewa. Te warunki ograniczają zakres transmisji i pozwalają współdzielić pakiety między odbiorcami bez tworzenia osobnej kopii na każdym łączu.

Podstawowe pojęcia multicastu

Do opisu routingu multicastowego potrzebne są grupa, adres grupy oraz drzewo dystrybucyjne.

  • Grupa multicastowa: Jest to zbiór odbiorców zainteresowanych określonym strumieniem danych. Host może dołączyć do grupy lub ją opuścić, a router utrzymuje stan członkostwa dla lokalnego segmentu.
  • Adres grupy multicastowej: Grupa jest identyfikowana przez adres IP używany jako adres docelowy pakietów multicastowych. Specjalny zakres IPv4, znany jako , jest przeznaczony do tego celu. Zakres ten to od 224.0.0.0224.0.0.0 do 239.255.255.255239.255.255.255. Gdy źródło wysyła pakiet na adres grupy, routing multicastowy dostarcza go do aktywnych członków tej grupy.
  • Drzewo dystrybucyjne: Sieć buduje wolną od pętli ścieżkę od źródła do odbiorców. Pakiet jest wysyłany raz w dół każdej gałęzi, a router powiela go w punkcie, w którym drzewo rozgałęzia się na kilka interfejsów.

Adres grupy nie wskazuje pojedynczego hosta. Host zapisuje zainteresowanie grupą w lokalnym routerze, a router wykorzystuje tę informację do wyboru interfejsów wyjściowych. Adresy multicastowe mają także ograniczenia zakresu, dlatego nie każdy pakiet z zakresu klasy D jest przekazywany poza lokalny segment.

IGMP: członkostwo hostów w grupie

Lokalny router musi otrzymać informację, że host chce dołączyć do grupy multicastowej. Za lokalne członkostwo hostów i routerów IPv4 odpowiada Internet Group Management Protocol (IGMP).

IGMP działa między hostem a bezpośrednio podłączonym routerem ostatniego skoku. Protokół nie buduje ścieżki między routerami. Przekazuje routerowi informację o odbiorcach w lokalnym segmencie.

Wymiana komunikatów IGMP

  1. Router wysyła zapytanie: Okresowo router wysyła komunikat IGMP Membership Query na adres 224.0.0.1224.0.0.1, czyli adres multicastowy wszystkich hostów w lokalnej sieci. Zapytanie służy do odświeżenia stanu członkostwa.
  2. Hosty wysyłają raporty: Gdy aplikacja chce dołączyć do grupy, na przykład 239.1.1.5239.1.1.5, system operacyjny wysyła komunikat IGMP Membership Report dla tego adresu 239.1.1.5239.1.1.5. Host może także wysłać raport w odpowiedzi na okresowe zapytanie routera.
  3. Router utrzymuje stan: Router przechowuje listę grup, dla których w lokalnej sieci istnieje co najmniej jeden aktywny członek. Na podstawie raportów i timerów decyduje, czy przekazywać ruch danej grupy.

Wersje IGMP i opuszczanie grupy

Kolejne wersje IGMP zmieniały sposób obsługi opuszczania grup i filtrowania źródeł:

  • IGMPv1: Nie definiowała jawnego komunikatu opuszczenia grupy. Host przestawał wysyłać raporty, a router usuwał stan po wygaśnięciu odpowiednich timerów. Opóźniało to zatrzymanie ruchu po odejściu ostatniego odbiorcy.
  • IGMPv2: Wprowadziła jawny komunikat Leave Group dla grupy 239.1.1.5239.1.1.5, który pozwala szybciej sprawdzić, czy w segmencie pozostali odbiorcy. Wprowadziła także wybór queriera w sieciach z wieloma routerami.
  • IGMPv3: Dodała filtrowanie źródeł używane przez Source-Specific Multicast (SSM). Host może określić grupę 239.1.1.5239.1.1.5 oraz źródło 198.51.100.10198.51.100.10, z którego chce otrzymywać dane.

Router pełniący funkcję queriera wysyła zapytania ogólne, a hosty odpowiadają z opóźnieniem wybranym zgodnie z parametrami protokołu. Router może skrócić stan po komunikacie Leave, lecz musi sprawdzić, czy inny host nadal zgłasza członkostwo. W IGMPv3 raport zawiera rekordy źródeł, więc router może przekazać tylko wybrany kanał (S,G).

PIM: budowanie drzewa dystrybucyjnego

IGMP przekazuje routerowi informację o lokalnych odbiorcach. Za budowę drzewa między routerami odpowiada protokół routingu multicastowego, między innymi Protocol Independent Multicast (PIM).

PIM nie definiuje własnej metryki unicastowej do wyboru ścieżek. Wykorzystuje istniejącą , zbudowaną przez IGP, na przykład OSPF, albo przez trasę statyczną. PIM-DM i PIM-SM różnią się sposobem tworzenia stanu i dołączania odbiorców do drzewa.

PIM korzysta z informacji o następnym skoku do źródła albo do RP. Kontrola RPF wyznacza interfejs wejściowy, a stan grupy wyznacza interfejsy wyjściowe. Router nie przekazuje pakietu przez wszystkie interfejsy tylko dlatego, że są włączone w PIM.

PIM Dense Mode (PIM-DM): zalewanie i przycinanie

Tryb gęsty zakłada, że odbiorcy są licznie rozmieszczeni w sieci. Źródłowy ruch jest początkowo przekazywany przez domenę PIM, a routery bez odbiorców odsyłają komunikaty Prune.

PIM-DM stosuje początkowe zalewanie, a następnie usuwa z drzewa interfejsy bez odbiorców. Odbiorcy mogą później ponownie dołączyć po odświeżeniu stanu.

Jak Działa PIM-DM

  1. Początkowe zalewanie: Gdy źródło zaczyna wysyłać ruch multicastowy, router pierwszego skoku przekazuje go przez interfejsy z PIM, z uwzględnieniem kontroli RPF. Routery odbierające pakiety kontynuują przekazywanie w kierunku kolejnych segmentów.
  2. Komunikaty Prune: Router, który nie ma lokalnych odbiorców ani sąsiadów downstream zainteresowanych grupą, wysyła komunikat Prune do routera upstream, od którego otrzymał ruch.
  3. Budowanie drzewa: Router upstream usuwa interfejs wskazany przez Prune ze stanu przekazywania dla grupy. Kolejne komunikaty Prune ograniczają drzewo do gałęzi prowadzących do aktywnych odbiorców. Rezultatem jest drzewo oparte na źródle, określane jako Drzewo Najkrótszej Ścieżki (SPT).
  4. Odświeżanie stanu: Stan przycięcia jest kontrolowany przez timery PIM-DM i komunikaty State Refresh. Po wygaśnięciu stanu interfejs może ponownie otrzymać ruch, co pozwala nowym odbiorcom dołączyć do grupy.

Stan PIM-DM opisuje źródło i grupę jako (S,G). Router może użyć komunikatu Graft, aby szybko odtworzyć przyciętą gałąź po pojawieniu się odbiorcy. Mechanizmy RPF, Prune, Graft i State Refresh ograniczają powstawanie pętli oraz utrzymują aktualność drzewa przy zmianach członkostwa.

Zalety i Wady PIM-DM

  • Zaleta: Niewielka liczba stanów konfiguracyjnych i szybkie początkowe dostarczenie w domenie z licznymi odbiorcami.
  • Wada: Początkowe zalewanie zużywa przepustowość na wszystkich odcinkach, również tam, gdzie nie ma odbiorców. Ogranicza to skalowalność PIM-DM, dlatego w większych domenach często wybiera się inne tryby.

PIM Sparse Mode (PIM-SM): drzewa budowane na żądanie

Tryb rzadki zakłada, że tylko część potencjalnych odbiorców żąda danego strumienia. PIM-SM tworzy stan po otrzymaniu żądania odbiorcy, więc ogranicza przekazywanie ruchu do gałęzi wybranych przez komunikaty Join.

W PIM-SM router odbiorcy wysyła Join w kierunku RP, a router źródła rejestruje źródło w RP. Początkowo powstaje drzewo współdzielone, a później może zostać utworzone drzewo SPT.

Punkt spotkań (Rendezvous Point, RP)

PIM-SM używa routera zwanego Punktem Spotkań (RP). RP jest początkowym punktem dla grupy multicastowej, a mapowanie grup na RP musi być dostępne routerom domeny PIM.

Mapowanie może pochodzić z konfiguracji albo z mechanizmu wyboru używanego w domenie PIM. Routery muszą znać adres RP dla grup, które obsługują. RP przechowuje stan (*,G), a routery źródłowe mogą zgłaszać do niego źródła przez Register.

Jak Działa PIM-SM

  1. Odbiorca dołącza: Host wysyła raport IGMP. Lokalny router, znając RP, wysyła komunikat PIM Join w jego kierunku. Kolejne routery tworzą gałąź łączącą odbiorcę z RP. Początkowy stan jest przechowywany jako Drzewo Współdzielone (*,G).
  2. Źródło wysyła dane: Źródło wysyła pakiety multicastowe, a jego router pierwszego skoku enkapsuluje początkowe pakiety w komunikaty unicastowe Register kierowane do RP. RP otrzymuje w ten sposób informację o aktywnym źródle grupy.
  3. RP przekazuje ruch: RP otrzymuje dane ze źródła oraz stan Join od odbiorcy. Przekazuje ruch w dół Drzewa Współdzielonego do odbiorców. Początkowo ścieżka może przechodzić przez RP, nawet gdy istnieje krótsza ścieżka między źródłem i odbiorcą.
  4. Przełączenie na Drzewo Najkrótszej Ścieżki (SPT): Po otrzymaniu ruchu router odbiorcy poznaje adres źródła z nagłówka. Jeśli polityka i implementacja przewidują przełączenie, używa tablicy unicastowej i wysyła Join bezpośrednio do źródła. Powstaje gałąź Drzewa Najkrótszej Ścieżki (S,G).
  5. Przycinanie drzewa współdzielonego: Gdy ruch dociera przez SPT, router odbiorcy wysyła Prune w kierunku RP, aby zatrzymać zduplikowane pakiety z drzewa współdzielonego. Stan przekazywania zostaje ograniczony do wybranej gałęzi.

W klasycznym wariancie Any-Source Multicast (ASM) PIM-SM odbiorca zgłasza grupę bez wskazania źródła. W Source-Specific Multicast (SSM) odbiorca wskazuje źródło i grupę, więc router tworzy stan (S,G) bez współdzielonego drzewa z RP. W obu przypadkach routery utrzymują stan Join i Prune, lecz sposób znalezienia źródła oraz rola RP zależą od trybu pracy.

Zalety i Wady PIM-SM

  • Zaleta: Skalowalny przy rozproszonych odbiorcach. Ruch jest przekazywany po utworzeniu stanu członkostwa, a drzewa mogą przełączyć się na ścieżkę SPT.
  • Wada: Konfiguracja wymaga mapowania grup na RP i obsługi dodatkowego stanu. Pierwsze pakiety mogą podążać przez RP, zanim zostanie utworzone drzewo SPT.

Reverse Path Forwarding (RPF): kontrola interfejsu wejściowego

W PIM mechanizmem ograniczającym pętle i duplikaty jest Reverse Path Forwarding (RPF), czyli sprawdzenie interfejsu, przez który pakiet od źródła powinien dotrzeć do routera.

RPF porównuje interfejs wejściowy z interfejsem wyznaczonym przez tablicę routingu unicastowego. Dla stanu (S,G) router sprawdza trasę do źródła S. Dla stanu (*,G) w PIM-SM celem kontroli może być RP, ponieważ Join do drzewa współdzielonego kierowany jest właśnie do RP.

Router odczytuje adres IP źródła pakietu i wykonuje wyszukiwanie w tablicy unicastowej. Jeśli pakiet dotarł przez interfejs wskazany przez RPF, kontrola kończy się pomyślnie i PIM może przekazać pakiet na interfejsy wyjściowe. Przy innym interfejsie pakiet jest odrzucany, ponieważ może być duplikatem albo wynikiem pętli.

Po pomyślnej kontroli RPF router wybiera interfejsy wyjściowe z bieżącego stanu multicastowego. Jeżeli kilka routerów na wspólnym segmencie może przekazywać ten sam ruch, mechanizm Assert wybiera urządzenie odpowiedzialne za przekazywanie. RPF kontroluje wejście, a lista interfejsów wyjściowych kontroluje dalszą dystrybucję.

Zmiana trasy unicastowej może zmienić interfejs RPF i wymusić ponowne obliczenie stanu multicastowego. PIM korzysta z informacji unicastowej do wyboru drogi, lecz osobno utrzymuje członkostwo grup, komunikaty Join i Prune oraz reguły powielania pakietów. Sam RPF nie tworzy członkostwa i nie wyznacza wszystkich interfejsów wyjściowych. W IPv4 IGMP dostarcza informacji o członkostwie hostów, a PIM wymienia stan przekazywania między routerami. ASM i SSM określają, czy odbiorca wskazuje tylko grupę, czy także źródło.

Powiązane artykuły