2

二重インターフェースを持つサーバー。

  1. 1 つ (eht0) は、インターネット ユーザーに http/ssh サービスを提供する WAN に使用されます。

  2. もう一方 (eth1) は、イントラネットからマルチキャスト データを受信するために使用されます。

218.108.132.177 はパブリック ネットワーク ゲートウェイです。

125.210.198.1 はプライベート ネットワーク ゲートウェイです。

233.49.3.*/24 はマルチキャストアドレスです。

10.0.11.*/24 はマルチキャスト データの送信元です。

ルートテーブルが以下のような場合、ffmpeg は eth1 から udp データを読み取ることができず、ffmpeg がハングアップしました。

rrca@rcasnap02:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
218.108.132.176 *               255.255.255.252 U     0      0        0 eth0
125.210.198.0   *               255.255.255.240 U     0      0        0 eth1
default         218.108.132.177 0.0.0.0         UG    100    0        0 eth0
default         125.210.198.1   0.0.0.0         UG    100    0        0 eth1

また

rrca@rcasnap02:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
218.108.132.176 *               255.255.255.252 U     0      0        0 eth0
125.210.198.0   *               255.255.255.240 U     0      0        0 eth1
default         218.108.132.177 0.0.0.0         UG    100    0        0 eth0
10.0.11.0       125.210.198.1   0.0.0.0         UG    100    0        0 eth1

また

rrca@rcasnap02:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
218.108.132.176 *               255.255.255.252 U     0      0        0 eth0
125.210.198.0   *               255.255.255.240 U     0      0        0 eth1
default         218.108.132.177 0.0.0.0         UG    100    0        0 eth0
233.49.3.0      125.210.198.1   255.255.255.0   UG    100    0        0 eth1

ffmpeg を正しく動作させたいのですが、ルート テーブルの 2 つのデフォルト ルートが互いに干渉していると思われるので、パブリック ゲートウェイ ルートが削除された場合、またはプライベート ゲートウェイ ルートがパブリック デフォルト ゲートウェイ ルートの先頭にある場合に試してみます、ffmpegはうまく機能します。eth1からマルチキャストを読み取ったと思います。しかし、ルートテーブルはそうではありません。ffmpegはeth1からデータを読み取れません。eth0(プライベートネットワークインターフェイスではない)でデータを読み取ったと思います。

ffmpeg が同時に 2 つのインターフェースでうまく動作する方法を教えてください。

4

2 に答える 2

5

マルチキャスト トラフィックの正しいルートを構成する必要があります。カーネルは、すべての着信マルチキャスト トラフィックの発信元チェックを行います。トラフィックの送信に使用するインターフェイスとは異なるインターフェイスに着信した場合、そのトラフィックは破棄されます。

eth1 インターフェイスでマルチキャストのルートを設定するだけです。

# route add -net 224.0.0.0/8 dev eth1

または、オリジン チェックを無効にします。

# echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
于 2012-05-22T10:20:33.700 に答える