roteamento multicast - CentOS 5

1

Estou tentando passar o fluxo mulitcast da interface eth1 (192.168.20.41) para a interface tun0 (192.168.100.40) no CentOS 5.

Eu posso ver o fluxo de multicast de entrada na eth1:

tcpdump -n -i eth1

type=1700 audit(1324681169.542:52): dev=eth1 prom=256 old_prom=0 auid=4294967295 ses=4294967295
Dec 23 17:59:29 localhost kernel: device eth1 entered promiscuous mode
Dec 23 17:59:29 localhost kernel: type=1700 audit(1324681169.542:52): dev=eth1 prom=256 old_prom=0 auid=4294967295 ses=4294967295
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
17:59:29.576192 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328
17:59:29.576277 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328
17:59:29.576801 IP 192.168.20.20.52194 > 224.1.1.1.search-agent: UDP, length 1328

Mas não consigo ver o multicast na interface tun0. O que estou fazendo errado? A configuração está anexada abaixo:

Arquivo

/etc/igmpproxy.conf:

phyint eth1 upstream  ratelimit 0  threshold 1
        altnet 192.168.100.0/24
phyint tun0 downstream  ratelimit 0  threshold 1
phyint eth0 disabled
phyint eth5 disabled

Configuração de iptables:

iptables -A INPUT -p igmp -j ACCEPT
iptables -A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp -j ACCEPT
iptables -A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
modprobe ipt_TTL
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1

O adaptador tun0 é o túnel GRE sobre eth0: cat / etc / sysconfig / scripts de rede / ifcfg-tun0

DEVICE=tun0
TYPE=GRE
ONBOOT=yes
MY_INNER_IPADDR=192.168.100.40
PEER_INNER_IPADDR=192.168.100.30
PEER_OUTER_IPADDR=192.168.20.30
    
por Dima 23.12.2011 / 21:47

2 respostas

1

Eu considero o roteamento multicast como uma magia negra, mas aqui estão algumas fotos ...

  • Verifique se o igmpproxy cria a rota multicast usando o comando ip mroute .

  • Em caso afirmativo, seu kernel provavelmente ainda está filtrando a entrada.

  • A causa mais comum é a falta da rota para a fonte. Você tentou desabilitar o iptables? Ou use TRACE target?

  • E se a rota multicast não for criada, sugiro usar pimd (é isso que eu uso para rotear meus multicasts de IPTV).

  • E parece que você usa o altnet errado. De acordo com a documentação do mrouted, isso significa

Specifies an additional subnet (network) attached to the physical interface described in the phyint entry. mask_len is the length of the network mask.

    
por 24.12.2011 / 00:18
0

(não posso deixar um comentário, por isso vou deixar uma resposta)

Se bem entendi, você tem um sistema em 192.168.20.0/24 enviando tráfego multicast para um grupo específico 224.1.1.1, e você deseja rotear esse tráfego através de uma interface de túnel em uma caixa Linux intermediária.

Eu não estou familiarizado com a operação do igmpproxy, mas apenas pelo nome, suspeito que ele ecoa pacotes IGMP para a LAN distante. Isso pode não funcionar para a sua implementação de túnel porque o IGMP deve funcionar apenas em uma rede local, não em um túnel.

O PIM seria seu amigo aqui - ele permitirá que sua caixa do Linux compartilhe informações sobre origens de multicast e grupos com outros roteadores.

Que tipo de sistema está encerrando o túnel GRE? É capaz de executar o PIM no modo denso ou no modo esparso? A caixa local do Linux pode executar o PIM se você precisar?

Um rápido Google revela o Multicast HOWTO aqui do Linux aqui .

HTH!

    
por 24.12.2011 / 02:00