terça-feira, 23 de fevereiro de 2010

Multicast II - IGMP

IGMP Internet Group Management Protocol

Para maiores detalhes consulte as RFCs:
IGMPv1 - http://www.ietf.org/rfc/rfc1112.txt
IGMPv2 - http://www.ietf.org/rfc/rfc2236.txt
IGMPv3 - http://www.ietf.org/rfc/rfc3376.txt

O CCIE foca no IGMPv2, então é onde vou concentrar esforços.

O maior objetivo do IGMP é informar o roteador multicast local que um host:
-Deseja receber o tréfeco multicast ingressando em um grupo.
-Deseja deixar o grupo multicast.

Como o IGMP tem um significado local (Host - Router), ele não é propagado a outro roteador, logo seu TTL é setado como 1.

Para multicast L2 é usado outros protocolos (IGMP Snooping, CGMP e RGMP

Existem 4 tipos de menssagens:
-Membership Query (0x11) - O Router Multicast envia essa mensagem depois de receber um "Leave Group" para verificar se existe mais algum Host no segmento, que ainda deseja receber tráfego Multicast.
- V1 MS Report (0x12) - Para compatibilidade com o IGMPv1
- V2 MS Report (0x16) - Informa ao Router Multicast que o host deseja receber tráfego, seja em resposta a MS Query ou enviado sem esperar a MS Query.
- Leave Group (0x17) - Informa ao Router Multicast que o host não deseja mais receber tráfego.

O processo é bem simples.
Aplicação configura o host a ingresar em um grupo multicast, calcula o endereço de MAC de multicast e o host passa a "escutar" o tráfego camada 2 para esse MAC multicast e seu MAC (BIA)
Ou eles enviam um MS Report direto ou aguardam para enviar em resposta ao MS Query.
Quando recebem um MS Query eles enviam o MS Report no tempo aleatório entre 0.1 e MRT (Maximum response time) se um host receber o MS report de outro router ele suprime o envio de seu MS report para evitar envios de MS report desnecessários, uma vez que o router apenas envia ou não tráfego para um determinado segmento.
Quando o host sai do grupo multicast e envia o Leave Group o router multicast envia uma mensagem MS query no segmento para verificar se existe algum host que ainda deseja receber tráfego dai voltamos ao processo de resposta do MS Query.
Se nenhum host responder dentro do MRT o host repete o processo o numero de vezes definido no "Last Member Query Count" Então o tempo que o router demora para parar de enviar tráfego multicast depois de receber o MS Leave do ultimo host é o MRT x LMQC.

Fácil :)

*Afim de evitar ataques de DoS o IGMPv3 utiliza um recurso chamado SSM (Source-Specifc Multicast.
















Comparação entre as versões IGMP.

Nenhum comentário: