在我的设置中,我在 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 服务器接口的配置。