AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1089349
Accepted
Appleoddity
Appleoddity
Asked: 2022-01-08 11:13:21 +0800 CST2022-01-08 11:13:21 +0800 CST 2022-01-08 11:13:21 +0800 CST

Windows DNS 服务器在查询自身时如何使 localnetpriority / 网络掩码排序工作?

  • 772

我们正在使用 Windows 2016+ DNS 服务器。我们依赖 DNS 服务器上的 LocalNetPriority。我们有多个跨多个站点的 Active Directory DNS 服务器。预期的行为是,当对 DNS 服务器进行特定查询时,如果同一主机存在多个 A 记录,它将返回与发起查询在同一子网中的 IP 地址。这在大多数情况下都可以正常工作。

但是,对于来自 DNS 服务器本身的请求,它不起作用。首先,默认情况下,DNS 服务器(或 Active Directory)将其网络接口配置为通过 localhost(127.0.0.1 和 ::1)将自己用作选择的 DNS 服务器。这会导致 LocalNetPriority 选择失败,因为原始 IP 地址不在我们的子网之一中。

其次,服务器更喜欢 IPv6 而不是 IPv4。我们不使用 IPv6,但也不想禁用它,因为它显然在过去在不同的场景中造成了问题,微软声称它是强制性的,不支持或不建议禁用它。使用 IPv6 是不可能的。

最后,这必须在网络中断时起作用。当卫星位置与网络的其余部分断开时,此特定要求要求 localnetpriority 正常工作。因此,使用对等 DNS 解析器作为主服务器并不能单独满足此要求。

似乎将 IPv4 设置为优先于 IPv6,并将服务器的实际 IP 地址配置为选择的 DNS 服务器,可能是唯一的解决方案。但是,我很久以前就知道使用 127.0.0.1 是最好的选择,因为在重新启动或拔下网线时,活动目录可能会完全崩溃。

我错过了什么?有没有更直接的方法来解决这个问题?也许我应该为我们遇到问题的特定主机添加一个 HOSTS 文件条目。

domain-name-system active-directory localhost
  • 2 2 个回答
  • 263 Views

2 个回答

  • Voted
  1. John Mahowald
    2022-01-08T19:32:48+08:002022-01-08T19:32:48+08:00

    对于 DNS 服务器的解析器,首先配置不同的 DNS 服务器的 IP 地址,然后配置此 DNS 服务器的 IP 地址,然后配置本地主机 IP。

    即使 DNS 服务重新启动,它仍然可以从远程服务器解析。此外,在使用 AD DS 时,首先使用不同的主机不太可能导致复制问题。

    其次,服务器更喜欢 IPv6 而不是 IPv4。我们不使用 IPv6,但也不想禁用它,因为它显然在过去在不同的场景中造成了问题,微软声称它是强制性的,不支持或不建议禁用它。

    是的,首选 IPv6 是标准行为,Microsoft 不会测试禁用 IPv6。如果您不使用 IPv6,请不要将 IPv6 地址分配给主机。包括,确保路由器不发送 IPv6 RA。如果名称只有 A 记录而不是 AAAA,则主机解析并使用 IPv4,无需进一步配置。

    • 1
  2. Best Answer
    Appleoddity
    2022-01-11T07:44:42+08:002022-01-11T07:44:42+08:00

    为了解决这个问题,我不得不考虑几件事:

    • 无论我们是否使用 IPv6,都会启用 IPv6 链路本地寻址。因此,每个服务器/主机都将拥有一个 IPv6 地址,并尽可能使用 IPv6。
    • 将服务器提升为带 DNS 的域控制器会在 IPv4 和 IPv6 的本地网络接口上添加“localhost”作为 DNS 服务器。这是 MS 的最佳实践。
    • 我们无法禁用 IPv6,因为 Microsoft 不支持此功能。
    • Windows 更喜欢 IPv6 而不是 IPv4,因此任何已配置的 IPv6 DNS 服务器都将具有优先权。
    • 在多 DC 环境中,服务器应将对等方称为主 DNS,并将其自身称为二级、三级等。
    • 即使其他 DNS 服务器/站点不可用,我也需要 localnetpriority 才能工作。
    • 当 Windows DNS 服务器查询自身时,如果它使用“localhost”进行查询,它将破坏 localnetpriority。
    • MS 最佳实践分析器提供了对 DNS 服务器配置问题的有用洞察,并会抱怨网络接口上的 DNS 设置配置不正确。

    经过这一切,我发现最好的解决方案是更改网络接口上的 DNS 服务器设置,而不是对 Windows 中的任何内容进行其他更改。为了解决上述所有问题,我:

    • 删除了在 IPv6 中配置的“localhost”DNS 服务器。现在没有配置 IPv6 DNS 服务器。
    • 我重新配置了 IPv4 DNS 服务器列表,如下所示:
      1. 基本的:<Peer DNS Server IP>
      1. 次要:<IPv4 address of this DNS server>
      1. 第三:(127.0.0.1本地主机)

    BPA 的任何相关投诉均已解决。Localnetpriority 在网络功能齐全且站点因网络故障而中断时起作用。并且,即使本地网线被拔掉,或者出现其他网络接口问题,AD仍然可以正常工作。

    最终结果回答了这个问题,“当 DNS 服务器查询自身时,如何使 localnetpriority 工作? ”还有一个次要要求,即我不会破坏其他任何东西。

    • 0

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve