新しい Debian をインストールして、Ubiquity NVR (ネットワーク ビデオ レコーダー) をインストールしましたが、今のところすべて順調です。カメラは現在、外部スイッチ デバイス経由で U-verse ルーターに接続されています。
PC のマザーボードには Realtek Gigabit が搭載されており、U-verse ルーター (およびネットワークの残りの部分) に接続されています。2 つ目の Realtek PCI Fast Ethernet カードは 4 ポート スイッチ (DNR-17746) です。
私がやりたいのは、PCI 4 ポート スイッチを使用してすべてのカメラをレコーダーに接続し、LAN 上のトラフィックを減らすことです。さらに、U-verse ルーターは常に信頼できるわけではないので、4 ポート PCI スイッチを使用したいと思います。頻繁に電源が切れて接続が失われるようです。そこで、4 ポート PCI カードにカメラを取り付ければ、U-verse ルーターが故障してもソフトウェアが録画を続行できると考えました。NVR ソフトウェアとカメラをネットワークの残りの部分から独立させて、故障ポイントを少なくしたいと考えました。インターネットが復旧すると、ソフトウェアはインターネットに再接続し、録画を同期します。
したがって、カメラのライブ ビュー データが PCI 4 ポート スイッチを経由して、同じ PC にインストールされている録画ソフトウェアにのみ送信されるようにするには、Debian にルーティングをインストールする必要があると思います。
ソフトウェアは動きを検知して録画しますが、ライブ ビューは常にオンになっています。録画されたビデオは、クラウド サービスに自動的にアップロードされます。ライブ ビューを表示するために録画ソフトウェアにリモート接続することがあるため、インターネットへのパススルーが必要です。
私にとっては、これはすべて複雑すぎます。ただし、eth0 と eth1 を br0 にブリッジすることはできましたが、これも機能しますが、トラフィック ルーティングは行われません。さらに悪いことに (私にとって)、ルーティングを U-verse ルーターに対して透過的にしたいのです。別のルーター (外部) を接続すると、U-verse ルーターで二重 NAT が検出されたというエラー メッセージが表示されます。
ebtables (おそらく iptables の代わりに) を使用すると、ルーティングは MAC レイヤー ベースになり、U-verse ルーターでより適切に動作するようになると読みました。
3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 名前="Debian GNU/Linux" バージョンID = "8" バージョン="8 (ジェシー)" ID=デビアン 01:00.0 イーサネット コントローラ: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI ファスト イーサネット アダプタ (rev 10) サブシステム: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI ファスト イーサネット アダプタ 使用中のカーネル ドライバー: 8139too 02:00.0 イーサネット コントローラ: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express ギガビット イーサネット コントローラ (rev 02) サブシステム: Hewlett-Packard Company Asus IPIBL-LB マザーボード 使用中のカーネル ドライバー: r8169
4 ポート PCI ファースト イーサネット アダプタには、2 つの Realtek チップ (RTL8305SC と RTL8100CL) が搭載されています。ボードには DNR-17746 と印刷されていますが、その他の情報はありません。
答え1
まず、ギガビット ネットワークをお持ちの場合は、おそらく問題にはなりません。ほとんどの小型ギガビット スイッチは、ポートのグループ間で完全な帯域幅を提供できます。そのため、カメラがビデオ ボックスにそれぞれ 20 メガビットのストリームを送信している場合でも、各ポートで 20 Mbps の入力、PC のポートで 80 Mbps の出力となり、PC ポートでもギガビットの使用率は 10% 未満になります。また、スイッチの他のポートには影響しません。関連のない 2 つのポート間では、完全なギガビットが提供されるはずです。
2 番目に、ブリッジングは必要なことのように思えます。ブリッジングは MAC アドレスに基づいており、ルーティングは IP アドレスに基づいています。NAT と iptables を使用している場合は、ブリッジングではなく、何らかのルーティングが設定されている可能性があります。
Debian では、ブリッジを設定する最も簡単な方法はおそらく を使用することです/etc/network/interfaces
。 をインストールする必要がありますbridge-utils
。また、ブリッジはマシン上の仮想インターフェイスであり、通常はそのインターフェイスにマシンの IP アドレスを設定します (2 つの実際の Ethernet インターフェイスのどちらにも設定しません)。次のようになります。
auto br0
iface br0 inet static
address A.B.C.D
netmask E.F.G.H
gateway I.J.K.L
bridge_ports eth0 eth1
bridge_stp off
bridge_fd 2
bridge_maxwait 20
それ以外は、eth0
およびはeth1
インターフェース ファイルには表示されません。静的 IP を使用する必要はありません (ただし、私の例では使用しています)。重要なのはこれらのbridge_*
行です。Ports は、どの Ethernet インターフェースをブリッジするかを指定します。_stp は、複数のブリッジが通信してループを回避するためのプロトコルです (小規模ネットワークでは必要ありません)。_fd は、インターフェースを起動してから実際にパケットを転送するまでの待機時間です (デフォルトは、STP セットアップを可能にするため、より長くなります)。_maxwait は、ポートが起動してからダウン状態を続けるまでの待機時間です。これらはすべて、man 5 bridge-utils-interfaces
(ブリッジを構成する方法は他にもあります。Network Manager で実行できます。Systemd には独自の方法があります。)