2つのイーサネットポートを持つサーバーがあり、それぞれは別々のNIC(eth0とeth1)で実行されます。他のトラフィックなし(UDP)を介してビデオをストリーミングする別のシステムにeth0を接続し、他のインターフェイス(eth1)をゲートウェイ/ルーターに接続したいと思います。
UDPトラフィックポートがより広いネットワークに接続されていなくても構いません。
ありがとうございます!
編集:この質問は保留中なので、以下の説明に基づいて私のシステムをより明確に説明したいと思います。私のシステムは、2つのイーサネットNICを持つLinuxを実行しているシステムで構成されています。これらのポートの1つからセキュアカメラへの直接LAN-LAN接続を介してUDPストリームを受信しています。カメラからパケットを読み取ることはできますが、それを介して着信tcpdump
パケットは見たことがありません。ビデオを表示するために使用する予定ですgstreamer
。
どちらのポートも静的IPアドレスを持ち、次のように設定されます。
eth0 Link encap:Ethernet HWaddr 5C:F8:21:34:80:F6
inet addr:192.168.1.233 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5ef8:21ff:fe34:80f6%132688/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1237 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113089 (110.4 KiB) TX bytes:14016 (13.6 KiB)
Interrupt:99
eth1 Link encap:Ethernet HWaddr 5C:F8:21:34:80:F7
inet addr:192.168.1.234 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1%132688/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:330 errors:0 dropped:0 overruns:0 frame:0
TX packets:330 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:277171 (270.6 KiB) TX bytes:277171 (270.6 KiB)
内部ルーティングテーブルは次のとおりです。
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
カメラはそのアドレスにあり、192.168.1.239
UDPを介して自分のサーバーに直接放送されます。 (ターゲットMACはパケットにハードコードされています。)MJPEGストリームをブロードキャストしており、保存されたパケットを受信するとtcpdump
MJPEGに再構成できます。
gstreamer
ただし、次のコマンドを使用する場合:
gst-launch-1.0 udpsrc multicast-iface=eth0, port=1234 ! filesink location=foo
foo
データは保存されません。私は過去にgstreamerを使用してUDPストリームを保存するためにこのシステムを使用しましたが、両方のポートが使用されていたときはそうではありませんでした。 IEの場合、ビデオは別のコンピュータから出て、ルーターを介して問題のサーバーに移動します。
それでは、サーバーが明確に見て理解する(少なくとも破棄しない)、これらのパケットが私のgstreamerプログラムに到達できないのはなぜですか?
答え1
通常、RFC1918(プライベート)スペースの他のビットでは、独自の/ 30サブネットをクロス接続に割り当てます。だからあなたは次のようにします:
- 192.168.1.234/24はeth1のLANです。
- 192.168.255.1/30は、eth0(クロスコネクト)にあるこのマシンです。
- 192.168.255.2/30はビデオソースであり、クロスコネクトの一端にあります。
UDP接続用のIPアドレスとして192.168.255.1と192.168.255.2を使用している場合は、eth0を介して送信されます。
LANと同じサブネットを使用して(/ 32ルーティング、ポリシールーティング、またはブリッジングトリックを使用)、これを達成できますが、これらすべての方法はより複雑で、ランダムプログラムの混乱による問題を引き起こす可能性が高くなります。
(/x表記の簡単な説明:これは、左/最上位ビットから始めて1[バイナリ!]の数を数えてネットマスクを指定する簡単な方法です。したがって、/ 30はネットマスク255.255.255.252を意味します。)