Progetto di reti locali/IGMP snooping

Indice del libro

I bridge inoltrano le trame in modi diversi a seconda del tipo di indirizzo MAC di destinazione:

  • trame unicast: sono mandate solo sulla porta verso la singola destinazione, grazie al filtering database;
  • trame broadcast: sono mandate sempre in flooding su tutte le porte, poiché le destinazioni sono tutti gli host nella rete;
  • trame multicast: sono mandate sempre in flooding su tutte le porte, anche se le destinazioni sono solo alcuni degli host nella rete.

Se il bridge conoscesse a quali gruppi multicast appartengono le stazioni collegate alle sue porte, il bridge potrebbe inoltrare le trame dirette a un certo gruppo multicast solo sulle porte su cui sono collegati host registrati a quel gruppo multicast, al fine di ridurre il traffico mandato in flooding.

GMRP modifica

Il GMRP permette a una stazione di comunicare il proprio gruppo multicast di appartenenza al bridge.

Il GMRP tuttavia è scarsamente utilizzato, poiché all'aggiunta di un nuovo protocollo di rete si preferisce sfruttare una tecnologia già esistente e comunemente utilizzata, cioè l'IGMP.

IGMP snooping modifica

IGMP modifica

L'IGMP consente a una stazione di comunicare il proprio gruppo multicast di appartenenza ai router sulla rete IP:

  1. messaggio Host Membership Query: il router invia a tutti gli host un messaggio IGMP chiedendo se qualcuno di essi è interessato a registrarsi ad un certo gruppo multicast;
  2. messaggio Host Membership Report: l'host invia in risposta un messaggio IGMP accettando la richiesta di registrazione al gruppo multicast.
    Il messaggio Host Membership Report arriva, oltre che al router, anche a tutte le altre stazioni sulla LAN → ogni altra stazione interessata al gruppo multicast, sapendo che almeno una stazione sulla LAN si è registrata a quel gruppo, può evitare l'invio di un messaggio Host Membership Report al router, in quanto il traffico relativo a quel gruppo multicast esce dall'interfaccia del router e si propaga a tutta la LAN.

Ogni messaggio IGMP ha:

  • indirizzo IP di destinazione: è l'indirizzo IP del gruppo multicast di cui si sta effettuando la query o il report, che inizia sempre con i bit "1110";
  • indirizzo MAC di destinazione: è derivato dall'indirizzo IP multicast:
24 25 48
01:00:5E 0 ultimi 23 bit dell'indirizzo IP multicast

Gli indirizzi IP multicast del tipo "224.0.0.x" sono indirizzi "well-known" che non richiedono l'IGMP (ad es. i pacchetti multicast inviati dai protocolli di instradamento del livello rete).

Come l'IGMP viene sfruttato modifica

La funzione IGMP snooping permette a un bridge di apprendere a quali gruppi multicast sono registrate le stazioni collegate alle sue porte, osservando i messaggi IGMP che passano per il bridge stesso:

  1. messaggio Host Membership Query: il bridge registra la porta da cui è arrivato come porta verso il router, e lo manda in flooding su tutte le altre porte;
  2. messaggio Host Membership Report: il bridge registra la porta da cui è arrivato come porta verso una stazione interessata, e lo manda solo sulla porta verso il router (cioè quella da cui è arrivato il messaggio Host Membership Query).
    Il bridge non lo manda sulle altre porte, perché altrimenti gli host ricevendolo disabiliterebbero l'invio di messaggi Host Membership Report, impedendo al bridge di sapere quali host sono interessati a quel gruppo multicast;
  3. trama inviata in multicast: il bridge ne analizza l'indirizzo MAC di destinazione per individuare il gruppo multicast[1]:
    • se è un indirizzo multicast "well-known", la inoltra su tutte le altre porte in flooding;
    • se è un indirizzo multicast dinamico, la invia solo sulle porte collegate alle stazioni registrate a quel gruppo multicast.
Svantaggio

L'IGMP snooping è una violazione del modello OSI: ai bridge è richiesto di riconoscere se la trama di livello data-link incapsula un pacchetto IP che a sua volta incapsula un messaggio IGMP → i bridge non operano più in modo indipendente dal livello rete: i bridge che non supportano il protocollo IPv6 potrebbero scartare i pacchetti multicast, molto utilizzati in IPv6 (ad es. nel processo di autoconfigurazione), perché non li riconoscono.

Note modifica

  1. In realtà un singolo indirizzo MAC multicast corrisponde a 25 indirizzi IP = 25 gruppi multicast.