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.

Multicast


Quando falamos em Multicast estamos falando em exibir um fluxo de dado a muitos destinos otimizando os recursos da rede, não criando um fluxo unicast para cada destino, mas sim um fluxo unico que diferente do broadcast é enviado somente a segmentos interessados da rede.

A IANA definiu que o grupo Multicast deve usar a classe D de endereços IP (224.0.0.0 - 239.255.255.255).

Dentro da classe D a IANA definiu 4 ranges:

1 - quando o 3 octeto é 0 não deve ser roteado, quando 1 sim (Ex: Auto-RP)
2 - Usa o protocolo SSM
3- Usado para transformar o numero do AS em end Multicast (Ex AS 5663 em binario (00010110 00011111) Separando em 2 octetos e transformando em decimal temos respectivamente 22 e 31, então o endereço de multicast ficaria (233.22.31.0)
4- Endereços para serem usados dentro do AS. Como os endereços privados 192.168.0.0/16 por ex.

Resumindo:

















Os endereços Multicast geram um endereço MAC, segundo os 5 passos do processo a seguir, o administrador apenas deve ter cuidado ao usar um endereço Multicast para não gerar o mesmo numero MAC para aplicações distintas.

















No proximo post vou falar sobre os protocolos que administram os grupos Multicast. IGMP, CGMP e RGMP