使用 dnsmasq 设置 srv 记录 - 我需要使用 FQDN 吗?

使用 dnsmasq 设置 srv 记录 - 我需要使用 FQDN 吗?

我目前正在运行一个基于 Linux/DIY 的路由器,它提供了一些额外的服务。我目前没有设置域,我想为路由器本身托管的某些服务设置 srv 记录。我使用 dnsmasq 进行内部 DHCP 和 DNS。我没有设置域选项,但我可以为其设置一个未使用的域/子域

路由器的内部 IP 是 192.168.1.1,它有一个router似乎可以从其他 PC 解析的主机名。

dnsmasq.conf 中的相应行如下所示

# A SRV record sending LDAP for the example.com domain to
# ldapserver.example.com port 389 (using domain=)
#domain=example.com
#srv-host=_ldap._tcp,ldapserver.example.com,389

dnsmasq 中给出的示例如下所示 - 我可以对域使用任意有效域吗 - 并且我可以使用 IP 地址或像路由器这样的普通主机名作为主机吗?

或者我需要设置一个我知道未使用的域并将其用作主机名?

答案1

经过一些测试后,我发现具体的在这种情况下,当服务与 dnsmasq 运行在同一台机器上时,通过 IP 设置 srv 记录似乎是一种更好的选项。

因此,测试过程是通过主机名和 IP 测试对路由器进行 ping 操作,以确保问题得到解决。

然后我测试了两个选项

srv-host=_aserv._tcp,hostname,1688srv-host=_aserv._tcp,192.168.1.1,1688dnsmasq 中

然后我用nslookup -type=srv _aserv._tcp

按 IP

Server:  router
Address:  192.168.1.1

_aserv._tcp     SRV service location:
          priority       = 0
          weight         = 0
          port           = 1688
          svr hostname   = 192.168.1.1

按主机名

C:\Users\faile_000\Desktop>nslookup -type=srv _vlmcs._tcp
Server:  UnKnown
Address:  192.168.1.1

_aserv._tcp     SRV service location:
          priority       = 0
          weight         = 0
          port           = 1688
          svr hostname   = router
heckate_router  AAAA IPv6 address = ::1
heckate_router  internet address = 127.0.0.1

在这种情况下,通过主机名进行设置会导致它解析为自身。如果我明确设置服务器的主机名,或者如果它是另一台服务器,这可能会起作用。

答案2

是的,您可以使用任何有效的域作为域。

在浏览器(或其他地方)中请求域名将首先搜索您的主办方文件以匹配域,然后将该请求升级到其注册的 DNS 服务器(很可能是您的路由器),该服务器将首先解析其自己的 DNS 条目(本质上也是一个 hosts 文件)。如果您的路由器找不到正确的条目,它将把它升级到其自己的注册 DNS 服务器。

因此,要在您自己的网络中执行此操作,最简单的解决方案是在您的路由器中为该特定域添加 DNS 记录,如果您的路由器有它,请将相同的域添加到它的DNS 重新绑定保护以防止任何针对该域的 DNS 请求离开您的本地网络。

例如,您甚至可以使用外部 IP 地址(如 8.8.8.8)作为主机名,但您必须通过 Iptables 或类似方式重新路由该请求,以防止其直接路由到 Google。

公平警告:如果您在路由器上重新映射(真实)域/Ip地址,则将无法访问它们。

相关内容