如何定义同一子网中的多个接口

如何定义同一子网中的多个接口

在我的设置中,我在 Hyper-V Ubuntu Server 22.04 LTS VM 上有一个 Zabbix 服务器,该虚拟机正在运行服务器 A。Ubuntu 服务器有两个虚拟接口,每个虚拟接口都与一个物理接口相关联。

两个接口位于同一子网中;一个连接到 RMC 端口(服务器 B),另一个连接到普通的LAN端口服务器 B

这是当前的网络规划(Zabbix 服务器的):

network:
  ethernets:
    # 1st network interface                              - Goes to RMC
    eth0: 
      dhcp4: false
      addresses: [10.100.100.4/28]                      
      # routes:
      # - to: 10.100.100.12/28
      #   via: 10.100.100.11/28
    # 2nd network interface                              - Goes to standard LAN port
    eth1:
      dhcp4: false
      addresses: [10.100.100.8/28]
      routes:
      - to: 0.0.0.0/0
        via: 10.100.100.11/28

现在的问题是,我一次只能通过一个端口获取数据。

  • 如果我只定义接口eth1,我可以从中获取数据服务器 B
  • 如果我定义两个接口有或无路线,我可以从 RMC 获取数据,但不能从服务器 B. 我可以从服务器 B,但我不能连接到它(打开网络仪表板)。

因此我猜测,如果 Zabbix 服务器接收到数据,那么使困惑并且不知道应该通过哪个接口进行响应。我开始阅读路由策略但它似乎是在同一个接口上有两个 IP 时使用的。

我是否完全误解了某件事或者我遗漏了什么?

答案1

有多种方法可以将多个“接口”配置到同一个子网中。现在我不知道你为什么要这样做:

选项 1)使用子网的多个 IP 地址 Netplan 看起来像

network:
  ethernets:
    # 1st network interface
    eth0: 
      dhcp4: false
      addresses: 
        - 10.100.100.4/28
        - 10.100.100.8/28
      routes:
      - to: 0.0.0.0/0
        via: 10.100.100.11/28

选项 2)(您的用例)在子网内使用多个接口:设置网桥,为网桥分配 IP 地址(路由),并将 eth0 和 eth1 添加到网桥。

network:
  version: 2
    renderer: networkd
    ethernets:
      eth0:
        dhcp4: no
      eth1:
        dhcp4: no
    
    bridges:
      br0:
        dhcp4: no
        addresses: 
          - 10.100.100.4/28
        routes:
          - to: 0.0.0.0/0
            via: 10.100.100.11/28
    
        interfaces:
          - eth0
          - eth1

选项 3)

Bonding 的使用 – 参见 netplan 文档https://netplan.io/examples 我猜你会对桥梁感到满意,但我不知道 Zabbix 服务器接口的配置。

相关内容