使用一个IP与多个设备通信

使用一个IP与多个设备通信

我正在开发一个项目,我必须从我的 Linux (Ubuntu 20.04) 计算机与多个设备(同一制造商、同一型号)进行通信。为简单起见,我将坚持使用两个设备,名为 A 和 B,具有静态 IP [192.168.0.A] 和 [192.168.0.B]。 Linux 计算机(称为Host) 有多个 NIC,每个 NIC 都有多个以太网端口。同样,为了简单起见,我将坚持使用两个 NIC(NIC.x、NIC.y),每个 NIC 具有三个以太网端口。端口的 IP 地址为“192.168.0.x”,其中 N 可以是 1、2 或 3。

为了与设备通信,我必须使用设备制造商提供的 SDK,其中我必须指定主机 IP 以及我希望与之通信的设备 IP。问题是,要同时与多个设备通信,我必须提供一个主机 IP 以及您要通信的设备的 IP。当您有一个外部交换机且所有设备都连接到该交换机时,此功能就有效。就我而言,我希望将设备连接到我的主机 NIC,但这样做每个设备都会有不同的“主机 IP”,而 SDK 不允许这样做。

我找到的解决方案是使用 NIC.y 的“ip link”创建一个桥,将所有三个端口添加到桥中。然后,我将设备连接到 NIC.y2 和 NIC.y3,将 NIC.y1 连接到 NIC.x3,并将 NIC.x3 设置为静态 IP。为了清晰起见,我在下面附上了一张图片。

在此输入图像描述

我的问题是,有没有更好的方法来做到这一点,而不需要添加外部交换机?主要是我想去掉连接 NIC.y1 和 NIC.x3 的电缆。

总之:我需要最终获得具有静态IP的设备列表(192.168.0.A,192.168.0.B,......),并且所有设备都可以从单个主机静态IP(192.168.0.H)访问即使它们通过不同的端口/NIC 进行物理连接。

答案1

Linux有一个叫做虚拟的东西设备,您可以使用它们来构建由多个物理和虚拟以太网接口组成的网络。在您的情况下,您将设置一个带有两个 y 端口的网桥和一个附加静态 IP 地址的虚拟接口。

相关内容