将以太网端口添加到 Open vSwitch 后域名无法解析

将以太网端口添加到 Open vSwitch 后域名无法解析

为了进行 QoS 实验,我想将两个虚拟机连接到 Open vSwitch。我创建了两个 tap 接口并将虚拟机连接到它们。我将这两个 tap 接口添加到 Open vSwitch。最后,我将 Ubuntu 主机的以太网端口添加到交换机。不出所料,这使我的主机失去了互联网连接。为了恢复连接,我删除了以太网端口 IP 地址并将其分配给桥接端口。虽然互联网连接恢复了,但 DNS 停止解析域名。在/etc/resolv.conf, 我看见

“名称服务器 127.0.1.1
搜索域名”

在进行一些基本搜索后,我发现这些行是由网络管理器使用本地转发名称服务器(dnsmasq)。

我不确定为什么名称解析现在不起作用以及如何修复它(除了禁用 dsnmasq 并在 resolv.conf 中添加固定的名称服务器条目)。我相信名称解析请求没有被转发到我的服务提供商的名称服务器。

我真的非常希望得到一些帮助。提前致谢!

PS 有趣的是,名称解析在虚拟机中运行良好。它们的 resolv.conf 配置为我的服务提供商的 DNS 名称服务器 IP。

答案1

如果我没记错的话,您已将由网络管理器控制的接口纳入 OVS。这通常不是一个好主意,因为它可能会导致混乱的网络行为,就像您的情况一样。

不幸的是,经过快速思考,我无法解释名称解析为何不起作用(我想,这与 NM 处理接口配置的方式有关)。我建议您从 NM 管理的接口中排除以太网设备,并使用 ifupdown(/etc/network/interfaces)来控制此设备。当您完成测试后,您将能够安全地恢复所有更改。
因此,您可以这样做:

  • 编辑/etc/NetworkManager/NetworkManager.conf以包含以下部分:

    [ifupdown]
    managed=false
    
    [keyfile]
    unmanaged-devices=interface-name:your-iface-name
    
  • 重启网络管理器

    sudo service network-manager restart
    
  • 将您的接口配置放入/etc/network/interfaces。应该是这样的

    allow-ovs0 eth0
    iface eth0 inet manual
      ovs_bridge ovs0
      ovs_type OVSPort
    
  • dns-nameservers在 /etc/network/interfaces(拥有您的外部 IP 地址的接口)中向 ovs-internal 端口配置添加指令。示例:

    allow-ovs0 ovs0
    iface ovs0 inet static
      address 10.4.4.254
      netmask 255.255.255.0
      ovs_bridge ovs0
      ovs_type OVSIntPort
      dns-nameservers 8.8.8.8 8.8.4.4
    
  • 最后,关闭并备份您的外部接口和 ovs 内部端口:

    sudo ip link set down dev your-iface
    sudo ip link set down dev your-ovs-internal-port
    sudo ifup your-iface
    sudo ifup your-obs-internal-port
    

这应该足够了。现在您的以太网设备由 ifupdown 控制,/etc/network/interfaces并且您的 OVS 内部端口具有所有需要的配置选项。

链接:

相关内容