OpenNebula 主机网络更改,丢失所有虚拟机连接
OpenNebula host network change, lost all connectivity for VMs
我最近更改了底层主机网络配置(将 VLAN 标记从主机移到交换机),它似乎完全阻止了我的 VM 的任何类型的网络连接。
我 运行 OpenNebula 5.4.6 Ubuntu 16.04.
我有 4 个物理网络接口,以前在主机上这样配置:
auto br_admin
iface br_admin inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_service
iface br_service inet dhcp
bridge_ports eno2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto eno2.20
iface eno2.20 inet manual
auto eno2.30
iface eno2.30 inet manual
auto br_public
iface br_service inet dhcp
bridge_ports eno2.20
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_data
iface br_service inet dhcp
bridge_ports eno2.30
bridge_stp off
bridge_fd 0
bridge_maxwait 0
我能够将 VLAN 网桥移动到单独的接口上,而不是其他两个网桥未被修改...
auto br_admin
iface br_admin inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_service
iface br_service inet dhcp
bridge_ports eno2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_public
iface br_service inet dhcp
bridge_ports eno3
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_data
iface br_service inet dhcp
bridge_ports eno4
bridge_stp off
bridge_fd 0
bridge_maxwait 0
None 我的虚拟机使用 br_public 或 br_data,它们不构成 OpenNebula 配置的任何部分,所以当我发现我的虚拟机丢失时我非常震惊此更改后的连接。我重新启动了所有的虚拟机,后来又重新启动了主机,但问题仍然存在。
我在 OpenNebula 中删除并重新创建了虚拟网络,分离了旧的网卡,并将新的网卡添加到虚拟机中。即使从头开始创建全新的虚拟机,我似乎也无法恢复任何网络连接。
有什么想法吗??提前致谢...
在使用 tcpdump
进行多次调试后,我发现我的主机桥正在接收来自 M 的数据包,但没有转发它们。我 运行 下面的命令并再次开始获取网络连接。
# echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
我检查并在 /etc/sysctl.d/50-bridge-nf-call.conf
中找到以下内容
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
四处阅读,我在 Ubuntu 中发现了一个非常古老的错误,该错误会导致在引导过程中加载 sysctl 配置 'too early',因此无法为尚未加载的模块应用设置尚未加载。在 Ubuntu 的示例部分 online sysctl.d man page 明确解释了如何使用 udev 规则在正确加载模块后设置网桥过滤。
添加此内容后,我重新启动了主机并确认 VM 将保持连接。
我最近更改了底层主机网络配置(将 VLAN 标记从主机移到交换机),它似乎完全阻止了我的 VM 的任何类型的网络连接。
我 运行 OpenNebula 5.4.6 Ubuntu 16.04.
我有 4 个物理网络接口,以前在主机上这样配置:
auto br_admin
iface br_admin inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_service
iface br_service inet dhcp
bridge_ports eno2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto eno2.20
iface eno2.20 inet manual
auto eno2.30
iface eno2.30 inet manual
auto br_public
iface br_service inet dhcp
bridge_ports eno2.20
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_data
iface br_service inet dhcp
bridge_ports eno2.30
bridge_stp off
bridge_fd 0
bridge_maxwait 0
我能够将 VLAN 网桥移动到单独的接口上,而不是其他两个网桥未被修改...
auto br_admin
iface br_admin inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_service
iface br_service inet dhcp
bridge_ports eno2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_public
iface br_service inet dhcp
bridge_ports eno3
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto br_data
iface br_service inet dhcp
bridge_ports eno4
bridge_stp off
bridge_fd 0
bridge_maxwait 0
None 我的虚拟机使用 br_public 或 br_data,它们不构成 OpenNebula 配置的任何部分,所以当我发现我的虚拟机丢失时我非常震惊此更改后的连接。我重新启动了所有的虚拟机,后来又重新启动了主机,但问题仍然存在。
我在 OpenNebula 中删除并重新创建了虚拟网络,分离了旧的网卡,并将新的网卡添加到虚拟机中。即使从头开始创建全新的虚拟机,我似乎也无法恢复任何网络连接。
有什么想法吗??提前致谢...
在使用 tcpdump
进行多次调试后,我发现我的主机桥正在接收来自 M 的数据包,但没有转发它们。我 运行 下面的命令并再次开始获取网络连接。
# echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
我检查并在 /etc/sysctl.d/50-bridge-nf-call.conf
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
四处阅读,我在 Ubuntu 中发现了一个非常古老的错误,该错误会导致在引导过程中加载 sysctl 配置 'too early',因此无法为尚未加载的模块应用设置尚未加载。在 Ubuntu 的示例部分 online sysctl.d man page 明确解释了如何使用 udev 规则在正确加载模块后设置网桥过滤。
添加此内容后,我重新启动了主机并确认 VM 将保持连接。