Internet group management protocol

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
OSI-model

7: Toepassingslaag
6: Presentatielaag
5: Sessielaag
4: Transportlaag
3: Netwerklaag
2: Datalinklaag
1: Fysieke laag

Het Internet Group Management Protocol (IGMP) is een netwerkprotocol dat gebruikt wordt bij multicasting door hosts, routers en multicast routers. Het helpt met het opbouwen van multicasting groepen en het onderhouden van de lijsten die informatie bevatten over welke leden er in een groep zitten.

Indien een client-PC zich wil "inschrijven" voor een multicast-datastroom, stuurt deze een IGMP-bericht naar de router, waarin deze het IP-adres vermeldt van de multicast groep waar hij lid van wil worden. De werking van IGMP speelt zich af op de netwerklaag van het OSI-model.

IGMP wordt gebruikt bij IPv4 netwerken. Bij IPv6 netwerken wordt er gebruik gemaakt van Multicast Listener Discovery (MLD). Dit werkt met ICMPv6 berichten in plaats van IGMP-berichten.

Versies[bewerken]

Er bestaan momenteel drie versies van IGMP. Deze staan elk beschreven in een Request for Comments (RTF) document van de Internet Engineering Task Force (IETF).

  • IGMPv1 staat beschreven in RFC 1112.
  • IGMPv2 staat beschreven in RFC 2236.
    • Bij deze versie is er ingevoerd dat wanneer een groepslid zijn groep verlaat, het onmiddellijk wordt gemeld aan het routing protocol. Dit is veel efficiënter bij multicast groepen met een hoge bandbreedte en/of subnetten met een snel veranderende groepsgrootte.
  • IGMPv3 stond eerst beschreven in RFC 3376, maar staat nu samen met MLDv2 beschreven in RFC 4604.
    • Bij deze versie is er ondersteuning voor "source filtering" ingevoerd. Dit zorgt ervoor dat een host kan aangeven of het pakketten wil ontvangen of filteren van specifieke adressen binnen de multicast groep.

Werking[bewerken]

Multicast-datastromen die over een netwerk worden verzonden en gebruik maken van IGMP, hebben een ander doeladres in hun pakketten dan het doeladres van unicast en broadcast pakketten. Bij unicast pakketten is dit het IP-adres van de ontvanger en bij broadcast pakketten is dit een broadcastadres.

Bij IGMP-pakketten is het doeladres een klasse D IP-adres, zoals 224.2.25.69, dat niet toebehoort aan een specifieke host op het netwerk maar aan een multicast groep. (Klasse D IP-adressen hebben een bereik van 224.0.0.0 tot 239.255.255.255). Deze pakketten worden over het netwerk verzonden tot ze aankomen bij de dichtstbijzijnde router.

Vervolgens beslist de router of de pakketten doorgestuurd moeten worden of dat ze gedropt mogen worden. Hiervoor gaat de router eerst controleren of de groep al bestaat. Indien de groep bestaat, gaat hij de pakketten doorsturen naar de hosts van die groep. Indien de groep niet bestaat, gaat hij de groep aanmaken. Als er echter geen hosts zijn die aan de router vragen om pakketten te ontvangen van deze groep, gaat hij de pakketten droppen.

Voorbeeld[bewerken]

Hieronder is een voorbeeld zichtbaar van een netwerk dat gebruik maakt van multicasting aan de hand van IGMP.

Multicast network architecture example

De video client gaat eerst een toegewijd multicast IP-adres versturen naar alle routers in zijn subnet. Dit IP-adres is een bericht dat zegt dat de client lid wil worden van een multicast groep. Als de router in het subnet de groep herkent, gaat het de datastroom afkomstig van de video server beginnen doorgeven aan de video client. Indien de router het subnet niet herkent, gaat het berichten uitsturen naar andere routers om zo de groep te vinden. De communicatie tussen de routers gebeurt via routing protocollen die zijn aangepast voor het gebruik met IGMP, zoals Protocol Independent Multicast (PIM) en Multicast Open Shortest Path First (MOSPF). Deze zorgen er ook voor dat de datastroom kan doorgegeven worden van de router naar de multicast router en zo naar meerdere multicast clients. Wanneer de multicast groep gevonden wordt door een andere router, gaat deze router zogezegd als video server dienen en de datastroom doorgeven of ze dupliceren en dan doorgeven.

Switches die uitgerust zijn met IGMP snooping gaan de IGMP conversaties tussen hosts en routers afluisteren. Hierdoor kan de switch een map bijhouden waarin staat welke verbinding welke IP multicast datastroom nodig heeft. Dit zorgt er dus voor dat multicast datastromen gefilterd kunnen worden van de verbindingen die ze niet nodig hebben en er dus gecontroleerd kan worden welke poorten specifiek multicast verkeer ontvangen.

Toepassingen[bewerken]

De voornaamste toepassingen die gebruik maken van IGMP zijn:

Beide toepassingen moeten lange tijd veel en dezelfde data verzenden naar meerdere gebruikers waardoor het gebruik van multicasting via IGMP veel efficiënter is tegenover een unicast methode.

Gevaren[bewerken]

IGMP is kwetsbaar voor sommige netwerk aanvallen, zoals spoofing en Denial-of-Service aanvallen.[1][2]

DoS aanvallen kunnen voorkomen worden indien het netwerk beschikt over switches die uitgerust zijn met IGMP snooping. Dit zorgt ervoor dat hosts geen dataverkeer kunnen ontvangen van een multicast groep waar ze niet expliciet lid van zijn geworden.

De beste manier om spoofing tegen te gaan, is door het gebruik van een firewall.

Indien er geen gebruik wordt gemaakt van IGMP of MLD in het netwerk, is het mogelijk om het netwerkverkeer hiervan te laten blokkeren door de firewall.

Bronnen, noten en/of referenties
  • (en) RFC 1112: Host Extensions for IP Multicasting obsoleted RFC 988 and RFC 1054
  • (en) RFC 2236: Internet Group Management Protocol, Version 2 obsoleted RFC 1112
  • (en) RFC 3376: Internet Group Management Protocol, Version 3 obsoleted RFC 2236
  • (en) RFC 4604: Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast obsoleted RFC 3376

  1. (en) Spoofing vulnerability: Microsoft Security Bulletin MS08-001:[1]
  2. (en) DoS vulnerability: Microsoft Security Bulletin MS06-007:[2]