netplan 配置的名称服务器可以取代(不合并)DHCP 名称服务器吗?

ala*_*nwj 10 networking dns dhcp 17.10 netplan

我想使用 DHCP 为我的服务器分配 IP 地址,但手动指定 DNS 服务器。我尝试了以下简单配置:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      nameservers: [8.8.8.8,8.8.4.4]
Run Code Online (Sandbox Code Playgroud)

运行后,netplan apply我检查名称服务器systemd-resolve --status并显示:

DNS Servers: 8.8.8.8
             8.8.4.4
             192.168.1.1
Run Code Online (Sandbox Code Playgroud)

最后是DHCP提供的DNS服务器,我不想在列表中。

netplan 有办法做到这一点吗?

ala*_*nwj 11

这已在 github 上的 netplan 存储库中修复,并且可能会在某个时候进入 Ubuntu。

添加了两个新选项,dhcp4-overrides并且dhcp6-overrides. 要从 DHCP 中忽略 DNS 服务器,您可以执行以下操作:

dhcp4: yes
dhcp4-overrides:
  use-dns: no
Run Code Online (Sandbox Code Playgroud)

  • 我同意这是最好的解决办法。但是,如果您没有最新的网络计划(例如,您像我一样使用 18.04),则可以将“UseDNS=false”附加到 /run/systemd/network/10-netplan-*.network,然后执行 systemctl restart systemd-networkd。请注意,未来的 netplan 应用将破坏这一点。(信息来自 https://bugs.launchpad.net/netplan/+bug/1759014/comments/5) (3认同)

tim*_*mbo 5

不幸的是,netplan github 存储库中没有变更日志来确定新功能何时引入。但是, https://github.com/CanonicalLtd/netplan/releases中的发行版本在 2018 年 11 月从 0.40 大幅跃升至 0.90

在 Ubuntu 18.10 上,netplan 目前版本为 0.40.2.2

使用该 netplan 版本,尝试无线配置来执行 DHCP,但使用 Cloudflare 匿名 DNS 服务器:

network:
  version: 2
  renderer: NetworkManager
    ethernets:
      wlp4s0:
        dhcp4: yes
        dhcp4-overrides:
          use-dns: no
        nameservers:
          addresses: [1.1.1.1,1.0.0.1]
Run Code Online (Sandbox Code Playgroud)

产生Unknown key dhcp4-overrides错误:

在此输入图像描述

根据ubuntu.packages.org,没有向后移植到 cosmic

在 Ubuntu 19.04 beta 上,安装了 netplan 0.96 版本并且dhcp4-overrides可以使用:

在此输入图像描述


小智 2

这是一个非常常见的设置,在 Ubuntu 18.04 中完全无用,Netplan 在使用 DHCP 时需要支持 NetworkManager 选项:

nmcli connection modify ${ID} ipv4.ignore-auto-dns yes
nmcli connection modify ${ID} ipv4.dns 'xx.xx.xx.10 xx.xx.xx.20'
nmcli connection modify ${ID} ipv4.dns-search 'abc01.domain.com. abc02.domain.com.' 
Run Code Online (Sandbox Code Playgroud)