新的 Debian 安裝:如何使用 2 個 NIC 設定安全攝影機流量的路由 -(其中一個是 4 埠 PCI 交換器)?

新的 Debian 安裝:如何使用 2 個 NIC 設定安全攝影機流量的路由 -(其中一個是 4 埠 PCI 交換器)?

我安裝了新的 Debian,並在其上安裝了 Ubiquity NVR(網路錄影機),到目前為止一切順利。這些攝影機目前透過外部交換器設備連接到 U-verse 路由器。

這台電腦的主機板上有一個 Realtek 千兆位,連接到我的 U-verse 路由器(以及我的網路的其餘部分)。它有第二個 Realtek PCI 快速乙太網路卡,它是一個 4 埠交換器 (DNR-17746)。

我想要做的是使用 PCI 4 連接埠交換器將我的所有攝影機連接到錄影機並減少 LAN 上的流量。此外,我想使用 4 連接埠 PCI 交換機,因為 U-verse 路由器並不總是可靠。似乎經常重新啟動電源並鬆開連接。所以我推斷,將攝影機放在 4 連接埠 PCI 卡上,即使 U-verse 路由器故障,軟體也可以繼續錄製。我希望 NVR 軟體和攝影機獨立於網路的其餘部分,這樣故障點就會更少。當網路恢復時,軟體將重新連接到網路並同步錄音。

因此,我認為我需要在 Debian 上安裝路由,以使攝影機即時取景資料僅透過 PCI 4 連接埠交換器傳輸到安裝在同一台 PC 上的錄製軟體。

軟體將偵測運動並進行記錄,但即時取景始終處於開啟狀態。然後錄製的影片會自動上傳到雲端服務。有時我需要遠端連接錄製軟體以查看即時影像,所以仍然需要透傳網路。

對我來說這太複雜了!但是,我能夠將 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 (傑西)"
名稱=“Debian GNU/Linux”
版本 ID="8"
版本=“8(傑西)”
ID=debian

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)
子系統:惠普公司華碩IPIBL-LB主機板
使用的核心驅動程式:r8169

4 埠 PCI 快速乙太網路轉接器有 2 個 Realtek 晶片:RTL8305SC 和 RTL8100CL。該板上印有 DNR-17746,但沒有其他資訊。

答案1

首先,如果您有千兆位元網絡,這可能不是問題。大多數小型千兆交換器可以提供任意連接埠組之間的全部頻寬;因此,即使您的攝影機可能會向視訊盒發送每個20mbps 的串流,但每個連接埠上的輸入速率為20mbps,而PC 連接埠上的輸出速率為80mbps,即使在PC 連接埠上,千兆位元的使用率也不到10%。並且不應該影響交換器上的其他連接埠;兩個不相關的連接埠之間仍應獲得完整的千兆位元。

其次,橋接聽起來正是您想要的。橋接基於MAC位址;路由是基於IP位址的。如果您有 NAT 和 iptables,您可能設定了某種路由,而不是橋接。

在 Debian 上,設置橋接最簡單的方法可能是透過/etc/network/interfaces.你需要bridge-utils安裝。另請注意,網橋是電腦上的虛擬接口,通常將電腦的 IP 位址放在該介面上(而不是兩個真實乙太網路介面中的任何一個)。它看起來像這樣:

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(儘管我的範例使用了靜態 IP)。關鍵是那些bridge_*線。 Ports 表示要橋接哪些乙太網路介面; _stp是多個網橋進行通訊並避免環路的協定(小型網路上絕對不需要); _fd 是啟動介面和實際轉送封包之間等待的時間(預設較長,以允許 STP 設定),_maxwait 是在繼續關閉連接埠之前等待連接埠啟動的時間。所有這些都記錄在man 5 bridge-utils-interfaces

(還有其他方法來設定網橋。網路管理員可以做到這一點。Systemd 有自己的方法。)

相關內容