Netplan、VLAN 和名称服务器(所有信息来自哪里?)

Netplan、VLAN 和名称服务器(所有信息来自哪里?)

我为一个物理接口设置了 netplan,该接口又有一个 vlan 子接口。未标记接口和 vlan 接口都是静态寻址的,并在 yaml 文件中列出了相应的名称服务器。我的 netplan 配置如下所示:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      addresses:
        [ 192.168.51.7/24 ]
      gateway4: 192.168.51.1
      nameservers:
        search: [ my.domain ]
        addresses: [ 127.0.0.1, 192.168.51.8 ]
  vlans:
    IOTDevices:
      id: 4
      link: eno1
      addresses:
        [ 192.168.4.7/24 ]
      gateway4: 192.168.4.1
      nameservers:
        search: [ my.domain ]
        addresses: [ 127.0.0.1, 192.168.4.8 ]

这似乎会生成一个文件(IOTDevices.dhcp)/运行/dhcpd/resolv.conf看起来像这样:

# Generated by dhcpcd from IOTDevices.dhcp
domain my.domain
search my.domain
nameserver 192.168.4.8
nameserver 192.168.4.7

这反过来又填充了/etc/resolv.conf文件如下所示:

# Generated by dhcpcd from IOTDevices.dhcp
# /etc/resolv.conf.head can replace this line
domain my.domain
nameserver 192.168.4.8
nameserver 192.168.4.7
# /etc/resolv.conf.tail can replace this line

我还看到一个文件/etc/NetworkManager/no-stub-resolv.conf其中包含主机两个接口的 IP 以及环回地址。由于主机运行 PiHole 和 Unbound,因此所有这些都是有效的名称服务器。

# Generated by NetworkManager
search my.domain
nameserver 127.0.0.1
nameserver 192.168.51.8
nameserver 192.168.4.8

当我使用 dig 测试 DNS 解析时,响应来自 192.168.4.8,这是/etc/resolv.conf

  • 为什么 netplan 会为 vlan 子接口生成配置文件,但为主接口却不生成任何配置文件?(分配了正确的 IP,但名称服务器没有添加到/etc/resolv.conf)。
  • 信息是否/etc/NetworkManager/no-stub-resolv.conf从 yaml 文件生成的文件/etc/netplan
  • 如何让主接口的 IP(192.168.51.7)或环回地址(127.0.0.1)显示在/etc/resolv.conf作为第一个名称服务器?

任何能为我指明正确方向的信息我都会感激不尽。谢谢

答案1

您的配置文件顶部显示“由 dhcpcd 从 IOTDevices.dhcp 生成”。这不是 netplan 的一部分。您dhcpcd安装了软件包,它不是默认 Ubuntu 系统的一部分,并且不与 netplan 集成。您应该删除此软件包以及,resolvconf它也不是标准 Ubuntu 网络堆栈的一部分。

进行这些更改将导致 /etc/resolved.conf 被恢复为 /run 下的 systemd-resolved 管理文件的符号链接。

相关内容