在 Windows DNS 上注册 Linux 主机名

在 Windows DNS 上注册 Linux 主机名

如何在 Windows 服务器 DNS 中注册 DHCP Linux 客户端的主机名?

我有一个小型企业混合网络,其中:

  • DCHP Windows 工作站(主机名示例win1:)
    • 约10台机器
    • 机器在域上,无需特殊配置。
  • DHCP Linux(Debian stretch)工作站(主机名示例lin1:)
    • 约20台机器
    • sssd使用以下方式连接到域realm join
    • 可以在任何机器上使用 AD 凭据
    • /etc/nsswitch.conf包含hosts: files dns,我认为这意味着 Linux 客户端可以从 DNS 导入主机名
  • 在静态 IP 上运行 Windows Server 的 DHCP/DNS 服务器

从任何机器我都可以ping win1,但不能ping lin1告诉我们:

  • 所有机器都使用 DNS 正常(可以 ping 通win1
  • Windows 主机名会自动注册
  • Linux 主机名不会自动注册

被拒绝的解决方案:

  • hosts:我们没有静态 IP,因此我不会手动维护文件的主副本hosts并在每次发布新的 DHCP 租约时分发它。
  • A向 DNS添加记录:再次,我不想在发布新的 DHCP 租约时手动更新记录。
  • avahi:Windows 客户端看不到 Linux 客户端。

我还没尝试过的事情:

  • likewise:我不想像sssd这样放弃并从头开始重新配置所有 20 台机器。但如果lw-register-dns可以解决问题,并且不会与 冲突sssd,那么这可能是一个解决方案。 我仍然觉得客户端需要创建一个 cron-job 来修改 DNS 很奇怪,我最好限制 DNS 写访问权限。
  • winbind,似乎也可以sssd完全替代。我尝试了链接的建议,但重新启动客户端的网络服务后没有看到任何差异。
  • nmbd. 工作站已经使用了smbclient,它们真的也需要成为功能齐全的 samba 服务器吗?
  • net ads dns register -P。我需要访问 DNS 才能启用不安全的更新。

答案1

所以最终答案根本不是在linux-client端,而是在DHCP配置上。

在“Windows Server 2016 Standard”上,我必须执行以下操作才能使其正常工作。

  1. 打开“DHCP”桌面应用程序
  2. 选择 DNS 选项卡
  3. 展开代表你的域的节点
  4. 右键单击“IPv4”
  5. 从上下文菜单中选择“属性”
  6. 勾选“根据以下设置启用DNS动态更新:”
    1. 选择“始终动态更新 DNS 记录”
  7. 选中“动态更新不请求更新的 DHCP 客户端的 DNS 记录”

结果并不是立竿见影的。重启机器并没有强制更新。我在星期五做了更改,到星期三,所有 Linux 客户端似乎都已列在 DNS 中。

我能够通过查看同一台服务器上的“DNS管理器”来确认添加的内容。

答案2

/etc/nsswitch.conf包含hosts: files dns,我认为这意味着 Linux 客户端可以从 DNS 导入主机名

您所做的假设是错误的。该行表示系统将如何尝试查找您输入的主机名或域名。例如,当 ping 域名时,或者在浏览器中输入 URL 时。files请参阅/etc/hosts和,您可以手动指定域到 IP 绑定。dns请参阅系统正在使用的 DNS 服务器。因此,使用您的配置,如果您输入,ping google.com系统将首先在 (/etc/hosts) 中查找 google.com 和关联的 IP files,然后如果在 中找不到匹配项,它将检查 DNS /etc/hosts

当 Windows 计算机加入域时,它们将成为受信任的资源。如果该服务安装在域上并由 AD 管理,则在加入域时会为它们创建 DNS 记录。要允许非 Windows 计算机在 DNS 中注册其主机名,必须将区域配置为允许更新。非 Windows 计算机还需要在文件中配置正确的域,/etc/hostname以便它与 AD 环境的域名匹配。

相关内容