具有相同 IP 的多个 VLAN(Ubuntu/Mint)

具有相同 IP 的多个 VLAN(Ubuntu/Mint)

我在设置一些 Linux 机器时遇到了麻烦。

我必须使用具有相同 IP 地址的多个 Vlan ID。

因此我在 /etc/network/interfaces 中添加了几个条目,如下所示:

    auto eno1.42
    iface eno1.42 inet static 
    address 10.1.0.1
    netmask 255.255.255.0
    broadcast 10.1.0.255
    vlan-raw-device eno1

    auto eno1.43
    iface eno1.43 inet static 
    address 10.1.0.1
    netmask 255.255.255.0
    broadcast 10.1.0.255
    vlan-raw-device eno1

等等。我在几个基于 Debian 的嵌入式系统上执行了此操作(使用 eth0 而不是 eno1)...并且运行良好。

但是当我尝试使用最新版本的 Ubuntu/Mint 时遇到了麻烦。

如果我向另一台 Linux 机器(基于 Debian)发送 ping 命令,该机器的设置方式相同 - 但 IP 为 10.1.0.2...

    ping -I eno1.43 10.1.0.2

...我没有得到回应。

但是在 wireshark 中,我有时可以看到带有正确标签 43 的响应。但我还可以看到来自基于 debian 的机器的许多未答复的 ARP 请求查询“谁有 10.1.0.1”。

顺便说一句:IP 转发已启用。

我究竟做错了什么?

我是否需要在路由表中添加一个条目?

对于这种情况(同一 IP 上的多个 VLAN)有没有更好的解决方案?

答案1

将同一个 IP 添加到多个网络接口是行不通的,无论是 VLAN 网络接口还是其他接口。除非每个应用程序都绑定到一个接口(您可能很幸运,因为无法做到这一点的应用程序没有处于活动状态),否则它在嵌入式机器上也行不通。

这看起来很像XY问题,因此请编辑问题并描述为什么你想这样做吗?主要目标是什么你想要实现什么目标?

VLAN 的 IP 范围重叠也可能导致严重的网络问题,所以不要这样做。

如果你真的真的需要做一些有趣的事情,您可以为每个 VLAN 创建一个网络命名空间。但修复您的设置可能更好。

相关内容