fragen stichworte

Multicast-Routing - CentOS 5

Ich versuche, den Mulitcast-Stream von der Schnittstelle eth1 (192.168.20.41) an die Schnittstelle tun0 (192.168.100.40) auf CentOS 5 zu übergeben.

Ich kann den eingehenden Multicast-Stream unter eth1:

sehen

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

Ich kann jedoch kein Multicast auf der tun0-Schnittstelle sehen. Was mache ich falsch? Die Konfiguration ist unten angefügt:

Datei/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

iptable Konfiguration:

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

Tun0-Adapter ist GRE-Tunnel über Eth0: cat/etc/sysconfig/network-scripts/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

antworten

Ich betrachte Multicast-Routing als eine schwarze Magie, aber hier sind ein paar Einstellungen ...

  • Überprüfen Sie, ob igmpproxy die Multicast-Route mit dem Befehl ip mroute erstellt.

  • Wenn dies der Fall ist, filtert Ihr Kernel wahrscheinlich immer noch die Eingabe.

  • Die häufigste Ursache ist die fehlende Route zur Quelle. Haben Sie versucht, iptables zu deaktivieren? Oder verwenden Sie ein TRACE -Ziel?

  • Wenn die Multicast-Route nicht erstellt wird, schlage ich vor, Pimd zu verwenden (dies ist das, was ich für das Routing meiner IPTV-Multicasts verwende).

  • Und Sie scheinen altnet falsch zu verwenden. Laut mrouted-Dokumentation bedeutet dies

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

(Ich kann keinen Kommentar hinterlassen, also werde ich eine Antwort hinterlassen)

Wenn ich es richtig verstehe, haben Sie ein System, das über 192.168.20.0/24 Multicast-Verkehr an eine bestimmte Gruppe 224.1.1.1 sendet, und Sie möchten diesen Verkehr über eine Tunnelschnittstelle auf eine zwischengeschaltete Linux-Box leiten.

Ich bin nicht mit der Funktionsweise von igmpproxy vertraut, aber nur aufgrund des Namens vermute ich, dass IGMP-Pakete an das entfernte LAN gesendet werden. Dies funktioniert möglicherweise nicht für Ihre Tunnelimplementierung, da IGMP nur in einem lokalen Netzwerk und nicht in einem Tunnel betrieben werden soll.

PIM wäre hier Ihr Freund - es ermöglicht Ihrer Linux-Box, Informationen zu Multicast-Quellen und Gruppen mit anderen Routern gemeinsam zu nutzen.

Welches System beendet den GRE-Tunnel? Ist es möglich, PIM im dichten Modus oder im spärlichen Modus auszuführen? Könnte die lokale Linux-Box bei Bedarf PIM ausführen?

Ein schnelles Google enthüllt das Linux Multicast-HOWTO hier.

HTH!