最近,我创建了自己的瘦客户端操作系统(基于 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 服务,但原理相同。)bind
DNS 服务器可以处理区域的 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 服务器将在本地以水平分割模式工作,这很好。)