(T) IGMP (Internet Group Multicast Protocol)*

IGMP (Internet Group Multicast Protocol)

Wprowadzenie do protokołu IGMP

Wersje protokołu IGMP

  • IGMPv1 Zdefiniowany w referencji RFC 1112. Obecnie niewykorzystywany.
  • IGMPv2 – Zdefiniowany w referencji RFC 2236. Często wykorzystywany.
  • IGMPv3 – Zdefiniowany w referencji RFC 3376. Najnowszy wspierany przez SSM.

Wstęp do zagadnienia

  • Protokół IGMP działa w warstwie dostępowej, umożliwiając urządzeniom końcowym wysyłanie wiadomości „join” w celu dołączenia do grupy multicast. Zarówno urządzenia końcowe jak i przełączniki dostępowe muszą wspierać protokół IGMP.

Protokół IGMPv2

  • Wiadomości protokołu IGMPv2 zawierają:
    • Protocol number: 2.
    • Alert option: set.
    • TTL: 1.
  • Wiadomość protokołu IGMPv2 zawiera następujące informacje:
    • Type – Określa jeden z pięciu typów wiadomości IGMP:
      • Version 2 membership report (0x16) – Wiadomość potocznie nazywana IGMP Join, umożliwia urządzeniu końcowemu dołączenie do grupy multicast-owej. Stanowi również odpowiedź na zapytanie Membership Query wysłane przez lokalny ruter.
      • Version 1 membership report (0x12) – Wiadomość wykorzystywana w celu utrzymania wstecznej kompatybilności z protokołem IGMP w wersji 1.
      • Version 2 leave group (0x17) – Wiadomość wykorzystywana w celu wyjścia z grupy multicast-owej.
      • General membership query (0x11) – Wiadomość systematycznie rozgłaszana do wszystkich urządzeń końcowych (244.0.0.1), w celu wykrycia nowych urządzeń chcących dołączyć do sieci multicast.
      • Group-specific query (0x11) – Wiadomość wysyłana w odpowiedzi na zapytanie Version 2 leave group.
    • Max response time – Wartość Max response dotyczy jedynie wiadomości 0x11, w przypadku pozostałych wiadomości protokołu IGMP, jego wartość wynosi 0x00. Wartość Max response określa maksymalny czas oczekiwania na odpowiedź sąsiedniego urządzenia.
    • Checksum – Wartość kontrolna wiadomości IGMP.
    • Group address – Pole o wartości 0.0.0.0 w przypadku wiadomości General query messages, bądź zawierające adres multicast IP w przypadku wiadomości Group-specyfic messages.

Protokół IGMPv2 PIM

  1. Urządzenie końcowe chcące dołączyć do komunikacji Multicast, wysyła zapytanie „IGMP Membership report” (IGMP Join), do lokalnego rutera rozgłaszającego wskazaną grupę multicast.
  2. Lokalny ruter wysyła zapytanie PIM Join do urządzenia rozgłaszającego komunikację Multicast.
  3. Lokalny ruter systematycznie rozgłasza wiadomości „IGMP General membership query” (244.0.0.1), do wszystkich urządzeń końcowych z wartością Max response time ustawioną na 10 sekund.
  4. Jeżeli urządzenie końcowe chce opuścić grupę multicast, wysyła wiadomość „IGMP leave group” do wszystkich ruterów (Na adres IP 224.0.0.1), w przypadku gdy nie ma już innych urządzeń przynależących do danej grupy multicast-owej. Jeśli jednak urządzenie końcowe nie jest ostatnim odbiorcą danej grupy multicast-owej, nie musi wysyłać wiadomości „IGMP leave group”.
  5. Jeśli w sieci znajduje się więcej ruterów obsługujących wskazaną grupę multicast. Rutery rozpoczną proces elekcji za pomocą wiadomości „IGMP General membership query message”, wysyłanych na adres IP 224.0.0.1. Ruter z mniejszą wartością adresu IP wygrywa elekcję stając się IGMP Querier.
  6. Jeśli ruter IGMP Querier zaprzestanie wysyłania wiadomości „IGMP General membership query message”, po 60 sekundach (Podwójna wartość czasu query interval), nastąpi ponowna elekcja rutera IGMP Querier.

Protokół IGMPv3

  • Protokół IGMP w wersji drugiej wysyłając zapytanie „IGMP Membership report” (IGMP Join), nie zawiera w nim adresu multicast IP, grupy jakiej transmisje chce otrzymywać.
  • Protokół IGMP w wersji trzeciej umożliwia sprecyzowanie o jaki adres multicast IP chodzi.
  • IGMPv3 jest kompatybilny z protokołem IGMPv2, zawiera jednak:
    • Dodatkowe pole wiadomości „IGMP membership query”.
    • Nową wiadomość „IGMPv3 membership report”.
  • Protokół IGMPv3 wspiera dwa tryby:
    • Include mode – Urządzenie końcowe ogłasza chęć przynależności do wskazanej grupy adresów multicast-owych, wysyłając listę adresów multicast IP, od jakich chce otrzymywać transmisję.
    • Exclude mode – Urządzenie końcowe ogłasza chęć przynależności do wskazanej grupy adresów multicast-owych, wysyłając listę adresów multicast IP, od jakich nie chce otrzymywać transmisji (Co oznacza że chce otrzymywać transmisję multicast od wszystkich pozostałych adresów IP).

IGMP Snooping

  • Aby ruch multicast docierał jedynie do urządzeń końcowych, które przynależą do wskazanych grupy adresów multicast-owych. Protokół IGMP dodaje do tablicy MAC address table, multicast-owe adresy MAC wraz z przypisanymi do nich interfejsami (Na końcu których znajdują się wskazane urządzenia końcowe).
  • Protokół IGMP Snooping został opisany w referencji RFC 4541.

Pozostałe tematy związane z protokołem multicast

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz