如何将 DNS 服务器传递到另一个接口?

如何将 DNS 服务器传递到另一个接口?

我在 ubuntu 17.04 上有两个以太网接口,eth0 和 eth1。eth0 配置为 DHCP,并获取 IP 地址、网关和 DNS 服务器。这是一台移动 PC,因此这些每次都会发生变化。

eth1 是一个本地网络,我想在其中提供一个 DHCP 服务器,该服务器具有提供 IP(静态或动态)、网关、搜索域以及主 DNS 和辅助 DNS 的基本功能。我想传递 eth0 的 DNS 服务器,而不是一些静态的已知选项。如何实现这一点?

一旦我连接 eth0,dnsmasq 似乎正在进行解析,而且我似乎找不到(a)两个服务器的存储位置以及(b)动态指示 DHCP 服务器 isc-dhcp 或 dnsmasq 或其他任何服务器在报价中使用它们。

非常感激!

答案1

我想知道您是否需要为第二个接口传递 DNS 服务器,因为我很确定只有一个系统解析器。但您可以使用以下命令检查 DNS 服务器:

$ nmcli connection show <CONNECTION_NAME> | egrep "DNS|\sdomain_name_servers"

您可以使用以下命令列出您的活动连接名称:

$ nmcli connection show --active

您可以使用以下命令设置新的 DNS 服务器(本例中为 8.8.8.8 和 8.8.4.4):

$ sudo dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers "array:string:8.8.8.8,8.8.4.4"

并检查是否成功:

$ journalctl -n -b _COMM=dnsmasq

$ sudo kill -USR1 `cat /var/run/NetworkManager/dnsmasq.pid` && sleep .5; journalctl -n -b _COMM=dnsmasq

更新: 如果您想提供自己的提供 DNS 记录的 DHCP 服务器,最好让您的dnmasq实例提供 DNS 查询。因此,请在您的接口dnsmasq上进行监听:eth0

$ sudo tee <<< "interface=eth0" /etc/NetworkManager/dnsmasq.d/bind-eth0.conf
$ sudo systemctl reload NetworkManager

并设置您的 DHCP 服务器以提供 eth0 的 IP 地址作为 DNS 服务器。

相关内容