OpenNebula主机网络更改,丢失了VM的所有连接

时间:2018-02-06 21:43:17

标签: networking virtualization opennebula

我最近更改了底层主机网络配置(将VLAN标记从主机移动到交换机),它似乎完全阻止了我的VM的任何类型的网络连接。

我在Ubuntu 16.04上运行OpenNebula 5.4.6。

我有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

我的VM都没有使用br_public或br_data,并且它们不构成OpenNebula配置的任何部分,所以当我发现我的VM在此更改后丢失了连接时,我感到非常震惊。我重新启动了所有虚拟机,后来重新启动了主机,但问题仍然存在。

我删除并重新创建了OpenNebula中的虚拟网络,并分离了旧的网络,并向虚拟机添加了新网络。甚至从头开始创建全新的虚拟机,我似乎无法恢复任何网络连接。

任何想法?提前谢谢......

1 个答案:

答案 0 :(得分:0)

经过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配置加载太早'在启动过程中,因此无法为尚未加载的模块应用设置。在Ubuntu的示例部分online sysctl.d man page中明确说明了如何在模块正确加载后使用udev规则来设置桥接过滤。

一旦我添加了这个,我重新启动主机并确认VM将保持连接。