web-dev-qa-db-ja.com

マルチキャストルーティング-CentOS5

CentOS 5のインターフェイスeth1(192.168.20.41)からインターフェイスtun0(192.168.100.40)にマルチキャストストリームを渡そうとしています。

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

しかし、tun0インターフェイスでマルチキャストが表示されません。私が間違っているのは何ですか?構成は以下に添付されています。

/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構成:

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アダプターはeth0上のGREトンネルです: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
1
Dima

マルチキャストルーティングは一種の黒魔術だと思いますが、ここにいくつかのショットがあります...

  • _ip mroute_コマンドを使用して、igmpproxyがマルチキャストルートを作成するかどうかを確認します。

  • もしそうなら、あなたのカーネルはおそらくまだ入力をフィルタリングしています。

  • 最も一般的な原因は、ソースへのルートがないことです。 iptablesを無効にしてみましたか?または、TRACEターゲットを使用しますか?

  • また、マルチキャストルートが作成されていない場合は、pimdを使用することをお勧めします(これは、IPTVマルチキャストのルーティングに使用するものです)。

  • そして、あなたはaltnetを間違って使用しているようです。 mroutedのドキュメントによると、それは

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

1
Fox

(コメントを残すことができないので、私は答えを残します)

私が正しく理解していれば、192.168.20.0/24にマルチキャストトラフィックを特定のグループ224.1.1.1に送信しているシステムがあり、そのトラフィックを中間Linuxボックスのトンネルインターフェイスを介してルーティングしたいと考えています。

私はigmpproxyの操作に精通していませんが、名前からすると、IGMPパケットが離れたLANにエコーされるのではないかと思います。 IGMPはローカルネットワーク上でのみ動作し、トンネル上では動作しないため、これはトンネルの実装では機能しない場合があります。

PIMはここであなたの友達になります-それはあなたのLinuxボックスがマルチキャストソースとグループに関する情報を他のルーターと共有することを可能にします。

GREトンネルを終了しているのはどのようなシステムですか? PIMをデンスモードまたはスパースモードで実行できますか?必要に応じて、ローカルLinuxボックスをPIM実行できますか?

簡単なグーグルはLinuxを明らかにします ここにマルチキャストHOWTO

HTH!

0
B Knight