【问题标题】:How to route only local addresses using dnsmasq如何使用 dnsmasq 仅路由本地地址
【发布时间】:2020-10-30 14:45:13
【问题描述】:

我试图让服务器的 dnsmasq 仅使用其私有 IP 地址侦听和响应本地网络中的查询。所有需要的主机都已经在 /etc/host 文件中了,所以我需要做的就是配置 dnsmasq.conf 文件,使它只响应本地域。

在研究的过程中,我只找到了“如何使用 dnsmasq 创建 DNS/DHCP 服务器”的文档,但在仅路由到某些 IP 地址方面却很少。

我已尝试此链接中的说明: https://www.linux.com/training-tutorials/dnsmasq-easy-lan-name-services/ 它使 dnsmasq 处于失败状态。

当我在 dnsmasq.conf 文件中使用 listen-address=[private ip] 时,我对应该在专用网络上的服务器进行了 nslookup,但它显示了服务器和地址的公共 ip。

【问题讨论】:

    标签: dnsmasq


    【解决方案1】:

    您应该咨询official dnsmasq man page。特别是 local-servicelocalise-queries 选项:

    --local-service

    仅接受来自地址位于本地子网(即服务器上存在接口的子网)的主机的 DNS 查询。此选项仅在没有 --interface--except-interface--listen-address--auth-server 选项时有效。它倾向于在安装时设置为默认值,以允许未配置的安装有用,但也可以避免被用于 DNS 放大攻击。

    -y, --localise-queries

    返回来自 /etc/hosts--interface-name 的 DNS 查询的答案,这取决于接收查询的接口。如果一个名称有多个与之关联的地址,并且这些地址中至少有一个与发送查询的接口位于同一子网上,则仅返回该子网上的地址。这允许服务器在/etc/hosts 中拥有与其每个接口相对应的多个地址,并且主机将根据它们所连接的网络获得正确的地址。目前此设施仅限于 IPv4。

    第一个选项local-service 解决了您的第一个问题,因此dnsmasq 将只回答来自同一子网上的主机的查询。如果 dnsmasq 已知给定名称有多个 IP 地址,则第二个选项 localise-queries 将返回来自同一子网的 IP 地址的答案。

    【讨论】:

      猜你喜欢
      • 2013-08-09
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多