如果两个 IP同一子网在 linux 桥端口中具有相同的 mac 地址,如何到达特定的 IP

问题描述

我有一个 linux 网桥,它有 2 个连接到 docker 容器的端口。

创建容器(c1 和 c2):

docker run -d --cap-add NET_ADMIN --privileged --name c1 -i -t --network none baseimage:latest bash
docker run -d --cap-add NET_ADMIN --privileged --name c2 -i -t --network none baseimage:latest bash

创建 Linux 网桥:

ovs-vsctl add-br sw1

将端口添加到容器(c1 和 c2):

ovs-docker add-port sw1 veth0 c1 --ipaddress=1.1.1.1/24
ovs-docker add-port sw1 veth0 c2 --ipaddress=1.1.1.2/24

我已使用以下命令更改了上述两个容器端口的 mac 地址。现在两个容器有相同的 mac 地址。

ifconfig veth0 hw ether 11:22:33:44:55:66

除此之外,我还有一个隧道端口(geneve),它将数据包从主机中取出到隧道的另一端,然后将其封装在 geneve 标头中。

ovs-vsctl add-port sw1 tun1 -- set interface tun1 type=geneve options:remote_ip=10.0.0.3 options:key=123

从Geneve 隧道的另一端,我将形成一个包含geneve 标头和具有以太网和IP 帧的内部帧的数据包。我会随机选择目标ip(1.1.1.1/1.1.1.2)。

我需要了解如果我的两个目标 ip 的目标端口的 mac 地址相同,我将如何到达特定地址。

我知道这是不寻常的场景,但我需要在我的环境中为我的用例 1 模拟这种情况。

请帮忙!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)