O fato de você ter o multicast passando pela sua caixa do Linux usando o roteamento unicast é uma combinação de algumas circunstâncias de sorte.
O roteamento multicast não é o mesmo que o roteamento unicast. O roteamento Unicast é baseado na face em que o tráfego é enviado para um único endereço, mas o tráfego multicast é enviado para um endereço de grupo que representa hosts que desejam se inscrever no grupo multicast.
Os hosts usam o IGMP para informar a um roteador de multidifusão que desejam ingressar em um grupo de multidifusão, e o roteador de multidifusão começará a enviar o tráfego de multidifusão desse grupo para a rede dos hosts que solicitarem isso.
Os switches modernos usarão IGMP Snooping para determinar quais portas de switch têm hosts que solicitam a associação a um grupo de multidifusão específico e só enviarão tráfego para esse grupo de multicast para as portas de switch onde os hosts solicitaram a associação ao grupo de multicast. / p>
O Linux, por si só, não suporta roteamento multicast, e você precisa adicionar algo ao dispositivo Linux para suportar roteamento multicast. Consulte o diagrama abaixo:
Quando a fonte multicast começa a enviar tráfego multicast para um grupo multicast, o switch provavelmente não viu nenhum pedido IGMP para se juntar ao grupo multicast, então o tráfego multicast para esse grupo não leva a lugar nenhum.
Quando um dos PCs no mesmo switch quiser se unir ao grupo multicast, ele enviará uma mensagem IGMP Join, e o switch irá espioná-lo e enviar o tráfego multicast para a porta na qual o PC solicitante está conectado. / p>
Se um PC do outro lado do roteador Linux quiser se unir ao grupo de multicast, fica sem sorte porque o tráfego multicast não está fluindo para esse lado do Roteador Linux. O Roteador Linux nem sequer se juntou ao grupo multicast, então o switch nunca envia o tráfego multicast para ele.
Quando você executa o roteamento multicast em um roteador, o roteador responderá à solicitação IGMP do host, e o switch saberá que é um roteador multicast e enviará o tráfego multicast à porta do switch na qual o roteador multicast está conectado . Simplisticamente, o roteador não enviará o tráfego multicast para outra interface, a menos que haja um receptor ativo em outra interface (isso depende da versão multicast, por exemplo, o PIM-DM começará a enviar, mas desistirá se nenhuma solicitação IGMP for vista) .
Com o roteamento multicast ativado no roteador, um PC conectado à outra interface enviará uma mensagem IGMP Join e o Roteador Linux começará a enviar o tráfego multicast do grupo solicitado para a interface. O switch analisará a solicitação e enviará o tráfego multicast à porta do switch em que o PC que solicitou a associação ao grupo multicast está conectado.
Isso fica mais complicado se você precisar rotear vários roteadores. O IGMP é usado entre os hosts e o roteador de multidifusão local. O PIM (ou algum outro protocolo de roteamento multicast) é usado entre os roteadores multicast.
Isso tudo impede que o tráfego multicast vá aonde não é desejado.
Existem add-ons no Linux para ajudá-lo a lidar adequadamente com roteamento IGMP e multicast.