multicast tcpdump e assinaturas

2

Do howto de multicast :

IP_ADD_MEMBERSHIP.

Recall that you need to tell the kernel which multicast groups you are interested in. If no process is interested in a group, packets destined to it that arrive to the host are discarded.

Se você não fizer isso, não verá esses pacotes com tcpdump .

  • É possível se inscrever em todo o tráfego multicast para que eu possa fazer um tcpdump para todo o tráfego existente? Eu acho que o IGMP não permite isso, então provavelmente não .. mas talvez você possa configurar um switch para ainda enviar todo o tráfego multicast. Isso é possível?
  • É possível fazer uma assinatura (para um IP específico) com uma ferramenta de linha de comando? (nota: eu sei como fazer isso em C .. mas preferiria usar uma ferramenta existente e não compilar um programa separado para isso)
por Karoly Horvath 28.10.2011 / 13:57

2 respostas

3

Depende da sua infra-estrutura multicast: Por exemplo, você pode ter muitos roteadores multicast e várias regras definidas em seus switches (tornando as assinaturas estáticas, dinâmicas ou até mesmo banidas em certas portas / nós).

Mas, se você quiser se inscrever em um grupo multicast ... Basta se inscrever. Envie um pacote IGMP JOIN por meio de alguma infraestrutura, que obviamente tem a detecção IGMP ativada. Você pode gerar um pacote IGMP com uma variedade de ferramentas.

Dando um passo para um nível mais alto, use iperf para se inscrever em qualquer multicast grupo. Se a sua infra-estrutura de rede não for muito complexa, e se você for "permitido" para se inscrever em qualquer grupo multicast, use o seguinte:

iperf -s -u -B 239.100.100.100 Em que 239.100.100.100 é o endereço do grupo de multidifusão.

tcpdump simultaneamente para obter um relatório detalhado.

Note que acredito que o iperf suporta apenas IGMP v1 e v2. Se você deseja criar um pacote IGMP v3 JOIN, não deve ser muito difícil escrever um programa, como você afirmou. Mas haveria muito mais ferramentas por aí que provavelmente fariam o mesmo.

    
por 28.10.2011 / 15:13
1

A página vinculada ao HOWTO multicast não diz nada sobre o tcpdump.

O tcpdump usa o libpcap para capturar pacotes de rede e, na Ethernet, o libpcap suporta ambos:

  • modo promíscuo, no qual o adaptador de rede entrega ao host todos os pacotes que vê, independentemente do endereço de destino, e a pilha de rede entrega cada pacote passando o filtro ao mecanismo de captura e

  • modo não-promíscuo, no qual o adaptador de rede entrega pacotes host, pacotes de difusão e pacotes multicast que ele está configurado para entregar, e a pilha de rede entrega todos os pacotes que passam o filtro de captura para o mecanismo de captura.

Tcpdump padrão para solicitar o modo promíscuo; nesse modo, você verá até mesmo pacotes unicast não enviados ao seu host (contanto que você não esteja em uma rede comutada ou esteja em uma rede comutada, mas esteja conectado a uma porta "espelho" que recebe todo o tráfego). / p>

Se você passar o tcpdump o -p flag, ele solicitará o modo não-promíscuo, caso em que você verá apenas os pacotes que sua máquina "deveria" obter; Nesse caso, se nenhum processo tiver registrado interesse em um grupo de multidifusão específico, você não verá os pacotes enviados para o endereço multicast desse grupo, mas, nesse caso, isso não é um bug, isso é um recurso, já que sua máquina não é t fazendo qualquer coisa com esses pacotes.

Portanto, se você quiser ver todos os pacotes (pacotes unicast para todos os hosts, pacotes multicast para todos os endereços multicast e pacotes de broadcast), execute tcpdump (ou Wireshark ou qualquer outro) em modo promíscuo e, se estiver em um comutador rede, executado em uma "porta de espelho" ou "porta SPAN" ou qualquer que seja o nome do fornecedor do switch (se ele suportar "portas de espelho").

Veja a página Wiki do Wireshark sobre captura de pacotes Ethernet para obter muitos detalhes sobre o modo promíscuo e redes comutadas; as informações nessa página se aplicam a todos os sniffers de pacotes, incluindo o tcpdump, não apenas ao Wireshark.

    
por 10.06.2014 / 02:03