重新启动基于“dnsmasq”的相应 DHCP/DNS 服务器后,丢失客户端域名解析

重新启动基于“dnsmasq”的相应 DHCP/DNS 服务器后,丢失客户端域名解析

由于我还不是一个高级网络管理员,所以如果可以的话,请帮助我。

几周前,我使用可管理的 DNS/DNS 中继服务“重新配置”了我的家庭网络,以便我们使用家庭专用域名而不是 IP 地址(因为家里联网设备的数量开始增加太多)。我选择的解决方案是在我的 RPi 上设置通常的“dnsmasq”(基于最新 Ubuntu 的 Home Assistant),并且为了方便起见,我还将其设置为我们的 DHCP 服务器,而不是之前配置的路由器,以便在一个地方管理所有相关内容。这是我第一次使用“dnsmasq”,但最后似乎一切都运行正常……除了一件事:

当我重启 RPi 或其上的相应网络服务时,其所有 DHCP 连接的客户端都会以某种方式丢失 DNS,直到它们重新连接到网络。例如,在 RPi 重启后,我的计算机仍然具有之前租用的 IP 地址(并且似乎所有相应的网络设置),但名称解析无法继续工作,直到我断开并重新连接 NIC 到网络。使用 IP 地址寻址可以继续工作,但名称解析无法继续工作。我的所有其他设备也出现了同样的结果(手机、笔记本电脑等)

“重新连接”后一切都正常,但如果没有它,我根本无法解析域名。

有人能指出正确的方向吗?如果问题很熟悉,那么问题的原因可能是什么?

  • 目前我只使用 RPi 的 WiFi 连接……

  • 路由器/网关IP:192.168.1.1

  • 'netplan' 配置为/etc/netplan/50-cloud-init.yaml

    # This file is generated from information provided by the datasource.  Changes
    # to it will not persist across an instance reboot.  To disable cloud-init's
    # network configuration capabilities, write a file
    # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
    # network: {config: disabled}
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: true
          optional: true
      wifis:
        wlan0:
          optional: true
          access-points:
            "***":
              password: "***"
              hidden: true
            "***":
              password: "***"
              hidden: true
          dhcp4: false
          dhcp6: false
          addresses: [192.168.1.2/24]
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses: [192.168.1.2,8.8.8.8]
    
  • 所有自定义“dnsmasq”设置在/etc/dnsmasq.d/ebola.conf

    domain-needed
    bogus-priv
    no-resolv
    server=8.8.8.8
    server=4.4.4.4
    local=/home/ebola/
    dhcp-range=192.168.1.201,192.168.1.255,255.255.255.0,168h
    dhcp-option=option:router,192.168.1.1
    dhcp-lease-max=50
    dhcp-authoritative
    cache-size=5000
    
    #------------------------------
    
    dhcp-host=...(mac,hostname,ip,infinite)
    dhcp-host=...(mac,hostname,ip,infinite)
    dhcp-host=...(mac,hostname,ip,infinite)
    
  • /etc/hosts

    我想通过本地域名访问的设备及其 IP 地址。

(对我来说最新的要求很有趣,因为我认为“dnsmasq”配置中的 DHCP 主机配置部分将定义它们,以防我在那里定义主机名。)

答案1

几周/几个月后,我发现了以下技巧,解决了这个问题:

https://unix.stackexchange.com/a/716330/540376

修复上述问题后interface=wlan0就我而言)进入我的‘dnsmasq’配置,我的问题就解决了。

相关内容