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

相关内容