systemd-resolved 中的链接“范围”是什么?

systemd-resolved 中的链接“范围”是什么?

systemd-resolve --status当尝试在 Ubuntu 上使用 NetworkManager 的 ModemManager 修复 DNS 问题时,我在连接时的输出中发现了这种差异。 (pingip 有效,手动编辑/etc/resolv.conf可以解决问题,设置 FallbackDNS 也可以解决问题,但都有副作用。

工作安装 - PPP 调制解调器(乌班图17.10)

Link 3 (wwp0s20u6)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 198.142.0.51
                      211.29.132.12

安装损坏 - PPP 调制解调器(相同硬件 - Lubuntu 17.04)

Link 2 (wwp0s20u6)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

它们都是 Ubuntu 的版本,并且硬件相同。中的网络连接配置/etc/NetworkManager/system-connections也相同。

在使用 DHCP 的链接(例如以太网和 Wifi 适配器)上,DNS 范围将添加到链接中,并且 DNS 在两台计算机上都能正常工作。例如

安装损坏 - WiFi 适配器工作正常

Link 3 (wlan0)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.0.1

所以,我推测这不是它systemd-resolved本身的问题,而是告诉systemd-resolved它应该寻找 DNS 的问题。

什么是 systemd 链接“范围”?

为什么一台机器分配“DNS”范围而另一台机器不分配?

答案1

systemd-resolve是服务的前端systemd-resolved,它将自己描述为“网络名称解析管理器”。systemd-resolved.service配置在/etc/systemd/resolved.conf.该文件可以包含选项DNS=,该选项应具有 DNS 服务器地址列表作为值。如果缺少此选项,/etc/resolv.conf则使用此选项。

/etc/resolv.conf反过来可以是 的符号链接/run/systemd/resolve/resolv.conf,它由其systemd-resolved自身维护,或者/etc/resolv.conf可以由独立于 的其他程序创建systemd-resolved

我的猜测是您的 Lubuntu 机器没有DNS=条目/etc/systemd/resolved.conf并且/etc/resolv.conf丢失了,或者它不包含 DNS 服务器条目。

LLMNR (RFC 4794) 代表“链路本地多播名称解析”,是 DNS 解析名称的替代方案。 LLMNR 没有中央服务,但当匹配名称的查询作为多播数据报通过本地 LAN 发送时,每个主机都会使用自己的地址进行响应。顾名思义,LLMNR 仅限于本地网络;它具有链接本地范围。 LLMNR 的一个竞争协议是多播 DNS (RFC 6762)。

相关内容