Ubuntu KVM vm nic 连接网桥 dns 解析问题

Ubuntu KVM vm nic 连接网桥 dns 解析问题

安装了多个 NIC 和 KVM 服务器的 Ubuntu 20.04 服务器。

使用 netplan 创建了一座桥梁:

enp0s31f6:
 dhcp4: no
 addresses: []

bridges:
 netbr0:
  addresses: [192.168.14.20/24]
  dhcp4: no
  interfaces:
    - enp0s31f6
  nameservers:
    addresses:
      - 192.168.14.1
      - 8.8.8.8
      - 8.8.4.4
      - 1.1.1.1
  parameters:
    stp: false
    forward-delay: 0

enp0s31f6 连接到路由器端口(VLAN14)。192.168.14.1 是路由器的 VLAN14 地址。

虚拟机的网卡连接到此网桥。虚拟机的 IP 地址手动设置为 192.168.14.25/24,网关为 192.168.14.1,DNS 服务器为 8.8.8.8,8.8.4.4

我可以 ping 外部 IP 地址,但无法 pingwww.google.com。因此名称解析显然不起作用。

(Ubuntu 20.04 虚拟机):

nslookup www.google.com
;; connection timed out; no servers could be reached


resolvectl status
    
    Link 2 (enp3s0)
          Current Scopes: DNS    
    DefaultRoute setting: yes    
           LLMNR setting: yes    
    MulticastDNS setting: no     
      DNSOverTLS setting: no     
          DNSSEC setting: no     
        DNSSEC supported: no     
      Current DNS Server: 8.8.8.8
             DNS Servers: 8.8.8.8
              DNS Domain: ~.  

在服务器上:

ping -I 192.168.14.20 www.google.com 

作品。

当我将计算机连接到路由器(192.168.14.1)时,名称解析就可以正常工作。

我不知道是什么原因导致了这个问题。

答案1

我尝试了以下方法:

  enp5s0:
  addresses: [10.10.5.15/24, 10.10.5.90/24, 10.10.5.110/24]
  gateway4: 10.10.5.1
  dhcp4: no
  match:
    macaddress: 1c:1b:0d:9a:43:d0
  mtu: 1500  
  nameservers:
    addresses:
      - 10.10.5.1
      - 8.8.8.8
      - 8.8.4.4
    search: []
bridges:
 netbr0:
  addresses: [192.168.14.20/24]
  dhcp4: no
  interfaces:
    - enp0s31f6
  mtu: 1500
  nameservers:
    addresses:
      - 8.8.8.8
      - 8.8.4.4
      - 1.1.1.1
      - 192.168.14.1
    search: []
  routes:
    - to: 0.0.0.0/0
      via: 192.168.14.1
      metric: 100
      table: 801
  routing-policy:
    - from: 192.168.14.0/24
      table: 801
      priority: 301
  parameters:
    stp: false
    forward-delay: 0

以下为桥梁工作:

dig www.google.com @8.8.8.8 -b 192.168.14.20

但名称解析在客户机上仍然不起作用。

为了测试目的,我尝试使用 NAT 和路由网络连接到 enp0s31f6,而 netplan 中没有配置网桥。没有用。连接到 enp5s0 的虚拟机运行正常。是什么导致了这个问题 libvirt、netplan 和我的多个 NIC 设置?我不知道。

对我来说唯一完美的解决方案是使用主机设备 enp0s31f6 - macvtap处于桥接模式。为了与主机通信,我创建了一个隔离网络,并为客户虚拟机添加了第二个 NIC(连接到此网络)。

相关内容