Cisco IGMP
Internet Group Management Protocol används mellan end systems och intermediate systems för att ta reda på om segmentet ska ha multicast-trafik och isåfall vilken. En router håller inte reda på vilka hostar som är med i vilka grupper utan endast om gruppen är aktiv. Hostar använder det för att joina och lämna multicastgrupper. Switchar kan lyssna på det för att ta reda på vilka switchportar som ska ha vilken trafik. IGMP slås på när man konfar multicast routing och PIM. Se även Cisco PIM.
show ip igmp interface
Contents
Versioner
IGMP härstammar från Host Membership Protocol och finns i flera versioner, IGMPv1 (RFC 1112) är dock förlegat. När en IGMPv2-router får in en IGMPv1 Query slutar den skicka v2-queries och en Version 1 Router Present Timeout startas som resettas varje gång det kommer in en v1-query. Efter 400 sekunder går den ut och routern återgår till IGMPv2.
- IGMPv2 (RFC 2236) är bakåtkompatibel med IGMPv1 och är defaultversion på Cisco IOS. V2 har en förbättrad Leave-mekanism och nu finns det även möjlighet att fråga efter specifika grupper istället för alla.
- IGMPv3 (RFC 3376) är en nyare revision av IGMP som har en egen multicastadress, 224.0.0.22. Den stora nyheten är att end systems kan berätta för routrar vilken source de vill ha multicasttrafik från, Source-Specifik Multicast. Det är bakåtkompatilbelt med IGMPv1 och v2.
Packets
IGMP-paket skickas med IP och har TTL satt till 1.
- Host Membership Query, är en generell Query som skickas default var 60:e sekund till 224.0.0.1 på LAN interface för att kolla om någon är intresserad av multicast. Default har hostar 10 sekunder på sig att besvara detta.
- Host Membership Report, skickas antingen som svar på en Query och innehåller då alla grupper som hosten är med i eller när en host vill joina en ny grupp.
- Leave group message, skickas till 224.0.0.2 och används av hostar för att meddela routrar att de lämnar en grupp.
- Group-Specific Query, när en router får in ett Leave message skickar den ut en gruppspecifik Query (destination är den multicastgruppen) för att se om det fortfarande finns någon på segmentet som är intresserad. Detta innehåller Last Member Query Interval som default säger att members har 1 sekund på sig att svara, det skickas två av dessa när ett Leave kommer in. Om det var den sista hosten som skickade Leave message reducerar detta tiden det tar innan onödig multicasttrafik slutar skickas från minuter till ca 3 sekunder.
IGMP Querier Election
Finns det flera multicast-routrar på ett segment kommer endast en vara aktiv och skicka General Queries. När en router får in en General Query jämförs source-adressen mot det egna interfacets adress och den med lägst vinner och blir vald IGMP Querier. En nonquerier är inte aktiv själv men lyssnar efter Queries och när det slutar komma in kan den ta över. Tiden det tar innan en vald Querier anses död är 2 gånger Query Interval plus en halv Query Response Interval, default är detta 255 sekunder.
Snooping
Switchar använder IGMP snooping för att avlyssna IGMP och ta reda på vilka switchportar som ska ha vilka mac-adresser, dvs är med i vilken multicastgrupp. Default floodas multicast-frames av switchar precis som broadcast och unknown unicast eftersom en multicast-MAC-adress aldrig finns i CAM då de aldrig används som source utan endast destination.
show ip igmp snooping
CGMP
OBS CGMP är gammalt och har spelat ut sin roll. IGMP Snooping är att föredra.
Cisco Group Management Protocol är ett protokoll som används av L3-enheter för att berätta för Cisco-switchar vilka hostar som ska ha multicast-trafik. Routrar lär sig vilka mac-adresser som är med i vilka multicast-grupper genom IGMP så de kan skicka ut CGMP-meddelanden som switchar lyssnar på. Då kan de ställa sina CAM-tabeller utifrån den informationen och inga hostar som inte ska ha multicast får det. CGMP skickas till 01:00:0c:dd:dd:dd så alla switchar får meddelandena. När en router kopplas till en switch skickar den ett CGMP-Join med Group Destination Address satt till 0 och Unicast Source Address satt till sig själv, då vet switchen var det finns en multicast-router. Detta skickas ut var 60:e sekund sålänge routern vill annars skickas ett CGMP-Leave med samma GDA och USA. Det som är skillnad mot vanlig IGMP är att även L2-informationen kollas på när en router får in ett IGMP Join och CGMP är konfigurerat. Denna mac-adress och multicast-grupp kan nu annonseras ut med CGMP-Join. När en switch får in ett CGMP-Join kollar den sin CAM-tabell efter USA och kan då lägga in multicast-mac-adressen (GDA) på samma interface, då blir den porten forwarding även för multicasttrafiken som den hosten har skickat IGMP Join för. Vill en host inte vara med i en viss grupp längre skickar den IGMP Leave och routern använder även här L2-informationen och det skickas ut ett CGMP Leave och switcharna kan ta bort GDA från porten där hosten sitter. Alla enheter som ska använda CGMP måste konfigureras för det.
L3-enhet
interface gi2 ip cgmp
Clear, skicka ut ett CGMP Leave med USA = 0 och GDA = 0 då kommer alla switchar att rensa alla CAM-entries som de satt tack vare CGMP.
clear ip cgmp
Filtering
MVR
Multicast VLAN Registration
int gi2 mvr type receiver
Verify
show mvr show mvr members