我在Linux机器上有三个进程:
- 第一种是使用套接字,它绑定到所有网络接口。
- 第二种是使用广播发送ethercat数据包(ethercat不使用IP层)。
- 第三种是使用广播发送ethercat数据包(ethercat不使用IP层)。
我想要实现的目标:
- 从第一个进程发送的数据包应该到达它的 IP 目的地(现在可以了)
- 第二个进程发送的 Ethercat 广播应该只到达交换机的 4 号端口,而不是全部
- 第三个进程发送的 Ethercat 广播应该只到达交换机的 5 号端口,而不是全部
交换机是可配置的,可以使用 VLAN 将交换机端口绑定到 VLAN。在 Linux 机器上,可以为每个 VLAN 创建逻辑网络设备,例如 eno1.04 和 eno1.05。因此将有设备 eno1、eno1.04 和 eno1.05。
现在的问题是:
- 当第一个进程发送数据(不做任何更改)时,将发送多少个以太网帧?它会发送三个几乎相同的帧(除报头外)吗?一个通过 eno1(未标记),一个通过 eno1.04(标记),一个通过 eno1.05(标记)?如果是这样,是否有某种方法可以避免这种情况,而无需更改第一个程序,只需更改 Linux 机器的配置即可?
- 当第二个程序将广播发送到 eno1.04 并且第三个程序向 eno1.05 发送广播时,第二个进程发送的广播是否只会到达端口 4 而第三个进程发送的广播是否只会到达端口 5?
- 当 Linux 机器上接收到 lan id 4 帧时,它是否只到达接口 eno1.04?还是也到达 eno1?这可以配置吗?
提前感谢您的回答。