我安装了新的 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 有自己的方法。)