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
マルチキャストルーティングは一種の黒魔術だと思いますが、ここにいくつかのショットがあります...
_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.
(コメントを残すことができないので、私は答えを残します)
私が正しく理解していれば、192.168.20.0/24にマルチキャストトラフィックを特定のグループ224.1.1.1に送信しているシステムがあり、そのトラフィックを中間Linuxボックスのトンネルインターフェイスを介してルーティングしたいと考えています。
私はigmpproxyの操作に精通していませんが、名前からすると、IGMPパケットが離れたLANにエコーされるのではないかと思います。 IGMPはローカルネットワーク上でのみ動作し、トンネル上では動作しないため、これはトンネルの実装では機能しない場合があります。
PIMはここであなたの友達になります-それはあなたのLinuxボックスがマルチキャストソースとグループに関する情報を他のルーターと共有することを可能にします。
GREトンネルを終了しているのはどのようなシステムですか? PIMをデンスモードまたはスパースモードで実行できますか?必要に応じて、ローカルLinuxボックスをPIM実行できますか?
簡単なグーグルはLinuxを明らかにします ここにマルチキャストHOWTO 。
HTH!