Debian:在同一个网卡上,桥接加上不同的 IP 地址,具有不同的 MAC

Debian:在同一个网卡上,桥接加上不同的 IP 地址,具有不同的 MAC

Debian 主机。我有一块 NIC,应该位于两个网络上;172.16.0.0/2410.0.80.0/24

  • 172.16.0.0/24网络上,应该有一个桥接器,以便本地 KVM 主机可以连接到它;主机应该可以在 上使用172.16.0.99
  • 10.0.80.0/24网络上,不需要网桥,并且机器应该可以在 上使用10.0.80.99

一个廉价的 D-Link 交换机连接到该 NIC;它可能与与同一 MAC 关联的多个 IP 地址混淆。

我尝试过为 NIC 设置别名(例如添加设备enp1s0:0)、为网桥设置别名(例如vmbr0:0),但我尝试过的每个排列都失败了,并且我在搜索引擎中所能找到的所有内容一次只处理一个方面(同一 NIC 上的两个 IP、网桥别名、MAC 地址混淆)。

作为参考,这是网桥的设置;我如何10.0.80.99向同一个 NIC 添加地址,最好强制使用不同的 MAC 地址?

iface enp1s0   inet manual

auto  vmbr0
iface vmbr0 inet static
        address      172.16.0.99/24
        gateway      172.16.0.1
        bridge_ports enp1s0
        bridge_stp   off
        bridge_fd    0

答案1

你的担心是错误的。

在 IP 网络中,多个 IP 地址与同一个 MAC 相关联是很常见的,尽管交换机不会理会这一点。我的意思是,路由器后面网络中的任何地址都只能与路由器 MAC 相关联。在代理 ARP(一种“黑客路由”)的情况下也会发生同样的情况;同样,一切正常,如果出现问题,它们与交换机无关。

廉价的 D-Link 交换机仅检查数据包的以太网报头和尾部,并将其他所有内容视为有效载荷。它会解析报头,查找数据包长度以了解要转发多少字节,它会查找目标 MAC 并将数据包转发到关联端口,或者如果该 MAC 仍然没有关联端口,则将其泛洪到除入口之外的所有端口;同时,它会提取源 MAC 并将其与入口端口(一个数据包来自的端口)关联。它不知道 IP 地址是什么以及它在数据包中的位置,即使有非 IP 以太网数据包,所有这些过程也会正常工作。IPv6、IPX、AoE,您能想到的任何内容 — 所有这些都可以工作,即使在同一时间通过同一廉价的 D-Link 交换机在同一以太网段内。此外,在同一个以太网段中拥有多个 IP 网络也很正常,它会完美运行,不会出现任何混乱。别担心。

因此,您完全没有必要设置另一个 IP 地址和另一个 MAC。事实恰恰相反:通过不使用额外的冗余 MAC,您只能让生活更轻松适用于您的交换机。这样,您填充的 ​​MAC 地址表(相当小)就更少,发生冲突的可能性也更小,等等。对于交换机来说,网络中的 MAC 地址越少,工作就越容易!虽然这种好处只是理论上的,但多一个 MAC 地址不会带来任何明显的区别,但您仍然需要考虑这一点。

只需选择此配置

auto  vmbr0
iface vmbr0 inet static
        address      172.16.0.99/24
        gateway      172.16.0.1
        bridge_ports enp1s0
        bridge_stp   off
        bridge_fd    0

iface vmbr0 inet static
    address 10.0.80.99/24

或者点击上面的链接尝试“手动配置”(下一个标题)。


如果您确实需要一台具有两个不同 MAC 的服务器,则可以使用macvlan虚拟接口:

auto  vmbr0
iface vmbr0 inet static
        address      172.16.0.99/24
        gateway      172.16.0.1
        bridge_ports enp1s0
        bridge_stp   off
        bridge_fd    0

auto vmbr0mv1
iface vmbr0mv1 inet static
    pre-up ip link add vmbr0mv1 link vmbr0 type macvlan mode bridge
    address 10.0.80.99/24
    post-down ip link del vmbr0mv1

它将使用随机 MAC 地址创建,但您可以添加另一条预设行来设置您想要的任何 MAC 地址。

但同样,不要仅仅为了“不混淆廉价的 D-Link 交换机”而这样做。这样做反而会让你更加困惑。这是为完全不同的事情而设计的,例如,将 macvlan 接口放入另一个网络命名空间,让容器拥有“自己的”网络接口,同时尽可能减少开销。

相关内容