Przypadki z życia multicastów Piotr Wojciechowski (CCIE #25543)
AGENDA 1. Multicasty to każdy wiedzieć musi 2. Podstawowe polecenia diagnostyczne 3. Problemy z rejestracją w sieci multicast
Multicasty to każdy wiedzieć musi Multicasty: Ruch UDP Best effort Dynamiczna zmiana stanów rozgłaszania multicastów i sygnalizacji na urządzeniach Kontrola rozgłaszania na poziomie aplikacji Replikacja Wymaga zarejestrowania się zarówno nadawcy jak i odbiorcy
Multicasty to każdy wiedzieć musi Jeden nadawca wielu odbiorców Nadawca ma określony adres z klas A, B lub C Odbiorca jest dla nadawcy nieznany, dane są wysyłane na adres grupy z kasy D
Multicasty to każdy wiedzieć musi Trzy tryby pracy: Dense Mode założenie, że każda podsieć chce otrzymywać rozsyłany content. Routery muszą jawnie zadeklarować, że nie mają klientów zainteresowanych odbieraniem danych i odświeżać tą informację Sparse Mode budowane jest jednokierunkowe drzewo ze zdefiniowanego w sieci punktu (RP) do odbiorców, którzy muszą jawnie zadeklarować chęć odbioru danych. W kolejnych etapach możliwa jest przebudowa tego drzewa tak by jego podstawą było źródło danych.
Multicasty to każdy wiedzieć musi Sparse-Dense Mode Tryb hybrydowy. Grupy dla których zdefiniowany jest RP traktowane są jako sparse mode, pozostałe obsługiwane są jak dense mode. Tryb ten jest niezbędny jeżeli do rozsyłania informacji o RP stosujemy mechanizm Auto-RP ale nie wykorzystujemy Auto-RP Listener a.
Multicasty to każdy wiedzieć musi Sposoby budowania drzewa rozgłaszania multicastów: Shared Tree podstawą budowy drzewa jest RP, który jest punktem do którego rejestrują się odbiorcy, zarządza on rozsyłaniem ruchu do nich.
Multicasty to każdy wiedzieć musi Sposoby budowania drzewa rozgłaszania multicastów: Source Tree podstawą budowy drzewa jest nadawca dla danej grupy. Dla każdego odbiorcy budowany jest osobny wpis (S,G)
Multicasty to każdy wiedzieć musi Any Source Multicast (ASM) Klasyczny tryb działania PIM-SM Rozgłaszanie za pomocą Shared Tree i Source Tree Dla Shared Tree istnieją RP Source Specific Multicast (SSM) Rozgłaszanie za pomocą Source Tree Nie istnieje RP Adres grupy z zakresu 232.0.0.0/8 (IPv4) i FF3x::/96 (IPv6) Bidirectional PIM (BiDir)
Multicasty to każdy wiedzieć musi (*,G) oznaczenie dla Shared Tree Budowany od RP Znamy adres grupy, nie znamy nadawcy (S,G) oznaczenie dla Source Tree Budowany od źródła Znamy adres nadawcy i adres grupy IIF Incoming Interface Interfejs w kierunku źródła (Source) lub RP (Shared) OIL Outgoing Interface List Lista interfejsów na które rozgłaszany jest multicast
Multicasty to każdy wiedzieć musi RP Randezvous Point. Dla trybu Sparse punkt referencyjny dla budowy wspólnego drzewa rozgłaszania multicastów. FHR First Hop Router. Pierwszy router w ścieżce nadawania multicastów. Odpowiedzialny m.in. za rejestrację źródła w RP. LHR Last Hor Router. Ostatni router w ścieżce nadawania multicastów, znajduje się najbliżej odbiorcy
Multicasty to każdy wiedzieć musi Reverse Path Forwarding Check Służy zapobieganiu powstawania pętli przy rozsyłaniu kopii danych do grupy multicast Weryfikacja odbywa się na bazie adresu źródłowego nadawcy: Jeżeli najlepsza ścieżka w tablicy routingu do nadawcy jest przez interfejs, z którego pakiet został odebrany należy go przetworzyć Jeżeli otrzymano pakiet przez inny interfejs należy go odrzucić Jeżeli ten sam pakiet zostanie odebrany z kilku źródeł jedynie raz zostanie on zreplikowany
Reverse Path Forwarding Check Podlegają mu zarówno pakiety z danymi (data plane) jak i część pakietów kontrolnych protokołów (control plane): PIM (*,G) Join wysyłane zawsze najkrótszą ścieżką do RP Adresy BSR/RP przesyłane w wiadomościach BSR Dla każdego pakietu przesyłanego w ramach data plane
Reverse Path Forwarding Check
Reverse Path Forwarding Check
Outgoing interface flags: H - Hardware switched, A - Assert winner Podstawowe polecenia diagnostyczne R8#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet, Informacja Flagi o RP stanu dla Shared Tree X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, (*,G) U - URD, I - Received Source Specific Host Report, Shared Tree Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data (S,G) group, V - RD & Vector, v - Vector Source Tree
Podstawowe polecenia diagnostyczne R8#sh ip igmp interface Ethernet0/0 is up, line protocol is up Internet address is 10.0.89.8/24 IGMP is enabled on interface Current IGMP host version is 2 Current IGMP router version is 2 IGMP query interval is 60 seconds IGMP configured query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP configured querier timeout is 120 seconds IGMP max query response time is 10 seconds Last member query count is 2 Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 1 joins, 0 leaves
Podstawowe polecenia diagnostyczne R8#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter Group Accounted 224.100.0.1 Ethernet0/0 00:07:19 00:02:56 10.0.89.8 224.0.1.40 Ethernet0/1 00:30:09 00:02:47 10.0.78.8
Podstawowe polecenia diagnostyczne R8#sh ip igmp groups detail Flags: L - Local, U - User, SG - Static Group, VG - Virtual Group, SS - Static Source, VS - Virtual Source, Ac - Group accounted towards access control limit Interface: Ethernet0/0
R1R2 E0/2E0/0 FHRP SOURCE R3 E0/1 E0/2 R7 R8 E0/1 E0/0LHR RECEIVER Nasza Sieć
Kiedy najczęściej powstają problemy Wiele protokołów IGP w sieci i redystrybucje pomiędzy nimi możliwy brak stabilności tras i asymetrie routingu PIM nie jest uruchomiony na wszystkich interfejsach Połączenia typu NBMA Duża liczba tuneli transportujących multicasty Problemy z wydajnością sprzętu Zła architektura sieci i rozmieszczenie RP
Generalne zasady diagnostyki Rozpoczynamy sprawdzanie w przeciwnym kierunku niż ma miejsce przepływ danych, czyli od odbiorcy do nadawcy Problem może dotyczyć tylko wybranej grupy odbiorców szukajmy ich cech wspólnych Na każdym z routerów w ścieżce wykonujemy kompletną diagnostykę
PROBLEM: Nie buduje się drzewo (S,G) Problem: w tablicy mroute na LHR widzimy wpisy (*,G) dla naszej grupy Nadawca jest aktywny Ścieżka badana na podstawie wpisów (*,G) jest prawidłowa Brak wpisów (S,G)
PROBLEM: Nie buduje się drzewo (S,G) Rozwiązanie: Potrzebujemy odbiornik! Drzewo SSM nie buduje się jeżeli nie ma zarejestrowanego odbiorcy dla danej grupy multicastów Prawidłowo zarejestrowany odbiorca to taki, który wysłał PIM Join dla danej grupy
Gdy timery wygasną proces floodingu, pruningu i elekcji są powtarzane co może skutkować zduplikowanymi PROBLEM: Otrzymujemy zduplikowane pakiety Problem: Stacja końcowa co jakiś czas otrzymuje zduplikowane, pakiety dla grupy, którą nasłuchuje Możliwa przyczyna: dane rozsyłane w trybie dense Router okresowo rozsyła dane na wszystkich interfejsach (flooding) Jeżeli brak chętnych do odbioru danych na danym interfejsie rozsyłanie jest zaprzestawane (pruning) aż do wygaśnięcia timerów Jeżeli w danym segmencie są dwa routery które mogą do stacji końcowych przesyłać multicasty dokonują one między sobą elekcji forwardera.
PROBLEM: Otrzymujemy zduplikowane pakiety Rozwiązanie: Zmiana trybu dense na sparse Krótkotrwałe okresy otrzymywania zduplikowanych pakietów mogą być wynikiem problemów sprzętowych, na przykład przeładowania karty liniowej w urządzeniu. Nie przejmować się to zadanie aplikacji odpowiednio obsłużyć odbierany ruch
R1R2 E0/2E0/0 FHRP SOURCE R3 E0/1 E0/2 R7 R8 E0/1 E0/0LHR RECEIVER Proces rejestracji w PIM-SM 1 (*,G) (S,G) 2 (*,G) (S,G) 1. Nadawca rozpoczyna transmisję danych 2. FHR rejestruje źródło w RP za pomocą PIM Register 3. Na RP i wszystkich routerach na ścieżce do źródła powstają wpisy (*,G) oraz (S,G)
R1R2 E0/2E0/0 FHRP SOURCE R3 E0/1 E0/2 R7 R8 E0/1 E0/0LHR RECEIVER Proces rejestracji w PIM-SM 1 2 (*,G ) 2 (*,G ) 1. Odbiorca wysyła IGMP Membership Report w segmencie LAN odbiera go R8 2. R8 wysyła żądanie rejestracji do RP za pomocą PIM Join 3. Stany (*,G) tworzą się na wszystkich routerach w ścieżce do RP 2 1 (*,G )
R1R2 E0/2E0/0 FHRP SOURCE R3 E0/1 E0/2 R7 R8 E0/1 E0/0LHR RECEIVER Proces rejestracji w PIM-SM 1 2 2 1. Ruch zaczyna być przekazywany w oparciu o zbudowane Shared Tree 2 1
PROBLEM: Odbiorca nie może zarejestrować się Problem 1: Jesteśmy pewni, że odbiorca wysyła IGMP Membership Report Pakiet poprawnie dociera do pierwszego routera w jego ścieżce do RP Zgłoszenie rejestracji nie jest przetwarzane przez router FHR RP ani przesyłane dalej SOURCE E0/2 E0/0 E0/1 R1 R2 R3 E0/2 E0/2 IGMP Report R7 E0/1 R8 LHR E0/0 RECEIVER
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny: W ścieżce L2 pomiędzy odbiorcą a routerem następuje filtracja pakietów IGMP Access-lista na interfejsie routera PIM nie jest uaktywniony na interfejsie w kierunku odbiorcy R8#sh run int e0/0 Building configuration... Current configuration : 83 bytes!
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny: PIM nie jest uaktywniony na interfejsie w kierunku odbiorcy Ethernet0/0 is up, line protocol is up Internet address is 10.0.89.8/24 Broadcast address is 255.255.255.255 Address determined by setup command MTU is 1500 bytes2 Helper address is not set Directed broadcast forwarding is disabled Multicast reserved groups joined: 224.0.0.5 224.0.0.6 Outgoing access list is not set Brak rejestracji do interesującej grupy (224.10.0.1)
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny: PIM nie jest uaktywniony na interfejsie w kierunku odbiorcy R8#conf t Enter configuration commands, one per line. End with CNTL/Z. R8(config)#int e0/0 R8(config-if)#ip pim sparse-mode R8#sh ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter Group Accounted
PROBLEM: Odbiorca nie może zarejestrować się Problem 2: Na routerze LHR widać żądanie rejestracji PIM Join nie jest przesyłany wewnątrz sieci Możliwe przyczyny (1): Problem z przekazaniem IGMP Membership Report przez router brak wiedzy o RP R8#show ip pim rp 224.10.0.1 Group: 224.10.0.1, RP: 10.10.0.1, v2, uptime 03:30:41, expires 00:02:19 R8#show ip mroute IP Multicast Routing Table
PROBLEM: Odbiorca nie może zarejestrować się Problem 2: Na routerze LHR widać żądanie rejestracji PIM Join nie jest przesyłany wewnątrz sieci SOURCE FHR RP E0/2 E0/0 E0/1 R1 R2 R3 E0/2 E0/2? R7 E0/1? R8 LHR E0/0 RECEIVER
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (1): Problem z wysłaniem PIM Join przez router brak wiedzy o RP R8#sh ip pim rp mapping 224.10.0.1 PIM Group-to-RP Mappings Group(s) 224.0.0.0/4 RP 10.10.0.1 (?), v2 Info source: 10.10.0.1 (?), via bootstrap, priority 0, holdtime 150 Uptime: 03:49:01, expires: 00:02:03
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (1): Problem z wysłaniem PIM Join przez router brak wiedzy o RP Jak router może nauczyć się gdzie jest RP? Auto-RP BSR Static
failed, no route exists PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (2): Problem z wysłaniem PIM Join przez router brak wiedzy o ścieżce do RP R8#show ip mroute (*, 224.10.0.1), 00:33:17/00:02:36, RP 192.168.2.2, flags: SJCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet0/0, Forward/Sparse, 00:33:17/00:02:36 R8#show ip rpf 192.168.2.2
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (3): Problem z wysłaniem PIM Join przez router nieprawidłowa ścieżka do RP Znamy adres IP RP R8#show ip pim rp mapping 224.10.0.1 PIM Group-to-RP Mappings Group(s) 224.0.0.0/4 Znamy ścieżkę do RP RP 10.10.0.1 (?), v2 Info source: 10.10.0.1 (?), via bootstrap, priority 0, holdtime 150 Uptime: 04:13:05, expires: 00:02:06
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (3): Problem z wysłaniem PIM Join przez router nieprawidłowa ścieżka do RP SOURCE FHR RP E0/2 E0/0 E0/1 R1 R2 R3 E0/2 E0/2? R7 E0/1? R8 LHR E0/0 RECEIVER
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (3): Problem z wysłaniem PIM Join przez router nieprawidłowa ścieżka do RP R8#sh ip mroute 224.10.0.1 PIM nie wie skąd ruch ma przychodzić (*, 224.10.0.1), 2d04h/00:02:22, RP 10.10.0.2, flags: SJCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet0/0, Forward/Sparse, 2d04h/00:02:21 Reguła RPF dla multicast nie R8#show jest spełniona! ip rpf 10.10.0.1 PIM nie zna swojego sąsiada dla tej grupy
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (3): Problem z wysłaniem PIM Join przez router nieprawidłowa ścieżka do RP Gdzie jest problem?: Brak aktywacji PIM na wskazanym interfejsie Asymetria routingu Load balancing
PROBLEM: Odbiorca nie może zarejestrować się Możliwe przyczyny (3): Problem z wysłaniem PIM Join przez router nieprawidłowa ścieżka do RP R8#sh ip mroute 224.10.0.1 (*, 224.10.0.1), 00:17:20/00:02:41, RP 10.10.0.2, flags: SJCL Incoming interface: Ethernet0/2, RPF nbr 10.0.38.3
PROBLEM: Odbiorca nie może zarejestrować się Problem rozwiązany :) Mamy wszystkie informacje niezbędne do zbudowanie drzewa i rozesłania PIM Join (*,G) R8#sh ip mroute 224.10.0.1 (*, 224.10.0.1), 00:17:20/00:02:41, RP 10.10.0.1, flags: SJCL Incoming interface: Ethernet0/2, RPF nbr 10.0.38.3 Outgoing interface list:
PROBLEM: Odbiorca nie może zarejestrować się A co jeżeli problem występuje gdzieś na ścieżce do RP? Powtarzamy cała diagnostykę na kolejnych routerach w ścieżce Monotonne ale skuteczne
PROBLEM: Nadawca nie rejestruje się w RP SOURCE FHR Problem 1: RP E0/2 E0/0 E0/1 Router FHR nie odbiera i nie przetwarza multicastów R1 R2 R3 E0/2 E0/2 R7 E0/1 R8 LHR E0/0 RECEIVER
PROBLEM: Nadawca nie rejestruje się w RP Problem 1: Router FHR nie odbiera i nie przetwarza multicastów Możliwe przyczyny: W ścieżce L2 pomiędzy odbiorcą a routerem następuje filtracja pakietów IGMP Access-lista na interfejsie routera PIM nie jest uaktywniony na interfejsie w kierunku odbiorcy
PROBLEM: Nadawca nie rejestruje się w RP Problem 2: Rejestracja źródła strumienia dla grupy nie jest przesyłana do RP SOURCE FHR RP E0/2 E0/0 E0/1 1 2 R1 R2 R3 1. Ruch Multicast 2. PIM Register E0/2 E0/2 R7 E0/1 R8 LHR E0/0 RECEIVER
PROBLEM: Nadawca nie rejestruje się w RP Możliwe przyczyny: Router FHR nie zna RP dla grupy Router FHR nie wie jak dotrzeć do RP Router FHR nie wie kto jest prawidłowym sąsiadem na ścieżce do RP zła ścieżka do RP R1#show ip mroute (*, 224.0.1.40), 01:07:32/00:02:32, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Loopback0, Forward/Sparse-Dense, 01:07:32/00:00:00
PROBLEM: Nadawca nie rejestruje się w RP Możliwe przyczyny: Router FHR nie zna RP dla grupy Router FHR nie wie jak dotrzeć do RP Router FHR nie wie kto jest prawidłowym sąsiadem na ścieżce do RP zła ścieżka do RP R1#show ip mroute 224.10.0.1 count IP Multicast Statistics 3 routes using 1520 bytes of memory 2 groups, 0.50 average sources per group Forwarding Counts: Pkt Count/Pkts per second/avg Pkt Size/Kilobits per second
PROBLEM: Nadawca nie rejestruje się w RP W kolejnym kroku RP buduje drzewo (S,G) w kierunku źródła danych SOURCE FHR RP E0/2 E0/0 E0/1 R1 R2 R3 E0/2 E0/2 R7 E0/1 R8 LHR E0/0 RECEIVER
PROBLEM: Nadawca nie rejestruje się w RP W kolejnym kroku RP buduje drzewo (S,G) w kierunku źródła danych SOURCE FHR RP E0/2 E0/0 E0/1 R1 R2 R3 E0/2 E0/2 Source Tree (S,G) R7 E0/1 Shared Tree (*,G) R8 LHR E0/0 RECEIVER
Podsumowanie Rzeczy, które musimy sprawdzić w pierwszej kolejności: Sprawdzamy czy ip multicast-routing jest aktywny Czy PIM jest aktywny na interfejsach (loopback też!) Jeżeli korzystamy z PIM-SM lub PIM-BiDir sprawdzamy czy RP jest skonfigurowany i poprawnie rozgłaszany (AutoRP, BSR, Static) Czy routing dla unicast działa poprawnie Czy spełniona jest reguła RPF Czy mechanizmy bezpieczeństwa nie blokują ruchu (ACLki, policery, multicast boundary, BSR boundary, wartości TTL itp.)
Pytania?
Dziękuję za uwagę