最佳实践 DNS(将 IP 解析为 LAN 中的主机名)?

最佳实践 DNS(将 IP 解析为 LAN 中的主机名)?

最近,我创建了自己的瘦客户端操作系统(基于 Xubuntu,所以基本上是 Linux),它将在我们的瘦客户端上运行。目前我正在我的测试环境中测试操作系统,但遇到了以下问题。

我们的生产环境将为它们分配 DHCP 专用 IP 地址,并使用 SAMBA4 将客户端添加到域中。现在可以根据 IP 进行访问,但由于是 DHCP,因此 IP 基本上每两周就会更改一次。对我来说,每周记下所有 IP 并记录下来太困难了。所以解决方案可能是 DNS,但我很不确定最有效的方法是什么?

我考虑过以下解决方案:

  • 将主机置于特殊子网中,为其提供静态 IP 地址并在 DNS 中创建 A 记录。
  • 为什么我要访问它的主机名?
  • 我希望 UltraVNC 使用标准主机名,而不是每 2 周就必须更改另一个 IP。
  • 我将使用 Ansible 推送更改,我更喜欢使用标准主机名,而不是随机 IP。

答案1

我会使用多种策略。

为台式电脑的网络/网络块定义静态 IP 地址,人们在其中向您提供 MAC 地址,然后您注册名称。

为 BYOD 网络(例如 wifi 网络)定义动态 IP 地址。

拥有静态 IP 地址的另一个优点是能够获取几个月前的日志,而不必将它们与 DHCP 日志交叉引用来找出您正在处理的机器。

另一种方法可能是 DDNS 的 @roaima 解决方案,但在这种情况下,我将使用远远超过 1-2 周的租用时间。

答案2

动态 DNS 正是您所需要的。客户端每次更改时都会更新自己的 A 记录。 (这不是您可以为 Internet 上基于 DHCP 的主机提供的付费动态 DNS 服务,但原理相同。)bindDNS 服务器可以处理区域的 DDNS;dnsmasq也会做。

加入域的 Windows 客户端长期以​​来一直自动将 DDNS 与 AD 结合使用。我现在在最近加入域的 Linux 客户端上针对 Windows AD 看到了这一点,但我还没有针对 SAMBA AD 进行测试。

您应该发现 SAMBA 将自动提供此服务 - 请参阅https://wiki.samba.org/index.php/Samba_Internal_DNS_Back_End#Setting_up_Dynamic_DNS_Updates_Using_Kerberos似乎是通过allow dns updates服务器smb.conf文件中的参数支持它的声明。然而,正如我已经提到的,我不将 SAMBA 作为 AD 域控制器运行,因此我没有对此进行测试。

答案3

如果它是私有IP地址,我肯定会分配静态租约。例如,在 ISC dhpcd 中,您可以使用fixed-address关键字来执行此操作,例如在hardware ethernet(即 MAC)地址上进行匹配。

ISC dhcp也可以动态更新您的 DNS 服务器(如果您在分配静态租约后仍然需要它)。该关键字hostname将设置主机名。

恕我直言,让每个客户端动态更新 DNS 服务器是多余的;当 ISP 分配地址并且您无法控制它时,这对于公共 IP 有意义,但对于私有 IP 则不然。

答案4

我有一个类似的设置,我有一个 AD 域(在 Windows 2008 上运行),但想使用 Linux 盒子管理网络。我已将其设置dnsmasq为网络的权威 DHCP 服务器和 AD 区域的权威 DNS 服务器,将基础设施 DNS 查询转发到 AD 服务器;dnsmasq然后自动维护 DNS 条目。

这是我的编辑版本dnsmasq.conf(删除了大部分评论):

domain-needed
bogus-priv

server=8.8.8.8
server=4.4.4.4
server=2001:4860:4860::8888
server=2001:4860:4860::4444
# Refer infrastructure DNS requests to an AD server
server=/_msdcs.ad.domain.example/_sites.ad.domain.example/_tcp.ad.domain.example/_udp.ad.domain.example/DomainDnsZones.ad.domain.example/ForestDnsZones.ad.domain.example/2001:db8:1234::254
local=/ad.domain.example/

no-resolv
no-hosts
addn-hosts=/etc/dnsmasq/hosts
expand-hosts

domain=ad.domain.example
dhcp-range=set:normal,10.100.0.20,10.100.0.200,255.255.255.0,24h
dhcp-range=2001:db8:1234::20,2001:db8:1234::ffff,slaac,ra-names,64,24h
enable-ra

dhcp-option=option:router,10.100.0.1
dhcp-option=option:ntp-server,0.0.0.0
dhcp-option=option:time-offset,-25200
dhcp-option=101,Canada/Mountain
dhcp-option=option:domain-search,ad.domain.example

dhcp-option=option6:ntp-server,[::]
dhcp-option=option6:domain-search,ad.domain.example
dhcp-option=vendor:MSFT,2,1i

dhcp-leasefile=/var/cache/dnsmasq/dnsmasq.leases
dhcp-authoritative
local-ttl=3600

包含/etc/dnsmasq/hosts联系 AD 服务器(或使用静态 IP 地址)所需的任何主机:

10.100.0.254 ad1
2001:db8:1234::254 ad1
10.100.0.253 ad2
2001:db8:1234::253 ad2
10.100.0.1 router
2001:db8:1234::1 router
10.100.0.2 dns
2001:db8:1234::2 dns

您不需要更改 AD 服务器上的任何 DNS 设置,但您可能需要将转发器设置为该dnsmasq框(AD 服务器将在本地以水平分割模式工作,这很好。)

相关内容