希望我们都知道命名 Active Directory 林的建议是什么,而且它们非常简单。也就是说,可以用一句话概括。
使用现有注册域名的子域,并选择一个不会在外部使用的子域。 例如,如果我是纳入并注册hopelessn00b.com
域名,我的内部AD林应该命名internal.hopelessn00b.com
或ad.hopelessn00b.com
或corp.hopelessn00b.com
。
有使用压倒性令人信服的理由,以避免“假”顶级域名或单标签域名,但我有一个很难找到同样令人信服的理由,以避免使用根域(hopelessn00b.com
)作为我的域名,使用子域名,例如corp.hopelessn00b.com
代替. 真的,我似乎能找到的唯一理由是从内部访问外部网站需要 A name
DNS 记录并www.
在浏览器中的网站名称前键入,就问题而言,这非常“meh”。
那么,我错过了什么?为什么使用ad.hopelessn00b.com
作为我的 Active Directory 林名称要好得多hopelessn00b.com
?
只是为了记录,确实需要说服我的雇主 - 老板人在兜售,在让我继续创建以corp.hopelessn00b'semployer.com
我们内部网络命名的新 AD 林后,他想坚持使用名为hopelessn00b'semployer.com
(与我们的外部注册域相同)。我希望我能得到一些令人信服的理由或理由,认为最佳做法是更好的选择,所以我可以说服他……因为这似乎比愤怒辞职和/或找新工作更容易,至少对于此时此刻。现在,“Microsoft 最佳实践”和在内部访问我们公司的公共网站似乎并没有削减它,我真的,真的,真的希望这里有人有更令人信服的东西。
domain-name-system active-directory split-dns best-practices
Windows Server 2016 支持 DNS 策略,在其他场景中提供对裂脑 DNS 的支持:
您可以配置 DNS 策略以指定 DNS 服务器如何响应 DNS 查询。DNS 响应可以基于客户端 IP 地址(位置)、一天中的时间和其他几个参数。DNS 策略支持位置感知 DNS、流量管理、负载平衡、裂脑 DNS 和其他场景。
我已经阅读了DNS 策略概述页面,但是当并非所有 DC 都是 Server 2016 时,我似乎无法在任何地方找到有关它如何在 AD 集成区域上工作的文档。
我无法想象它会工作得那么好,因为下层服务器不知道如何解释策略并相应地采取行动,但是由于信息是在 AD 中复制的,我可以预见到旧 DC 忽略新属性并做出响应的情况以某种“默认”方式(不应用政策),而新的 DC 将根据政策做出响应。
我认为在某些情况下你可以(或已经这样做)让客户端指向 DC 的子集,因为这可以提供一种使用较新功能的方法,而无需一次升级所有 DC。
但是,我找不到任何关于我所描述的是它实际如何工作的信息,或者您是否根本无法在混合环境中使用新功能,或者介于两者之间。
我最近发现-WhatIf
,-Verbose
和-ErrorAction
参数上的DNS策略cmdlet破裂; 在这里投票以解决这个问题。并且要小心!
domain-name-system active-directory split-dns windows-server-2016 dns-policies
我有一个 2 台服务器 BIND 9 设置。服务器 A(“主”服务器)正确设置了两种视图,一种用于本地 DNS 客户端(允许对非授权域进行递归查找),另一种用于世界其他地方,仅允许查询本地授权域。
我想以类似的方式配置第二台服务器(让我们命名为服务器 B,或“从”服务器)。不幸的是,这不能正常工作。一旦启用,来自服务器 A 的任何通知将正确更新/传输相应区域,但只有“受保护”视图将提供更新的信息。服务器 B 上的“外部”视图仍然返回“旧”信息,直到服务器重新启动。
这是快速而肮脏的:在具有在视图之间共享的动态区域的 BIND9 上,如果我从落入与 nsupdate 相同视图的客户端查询该记录,则执行 nsupdate、更新/创建/删除记录将正常工作从。
从一种观点认为,查询是不一样的使用的nsupdate将抛出NXDOMAIN(如果将一个新的记录),或将显示在改变/更新直到某个时间任意长度的情况下,旧的记录信息的一个我(说15分钟)过去了,或者我强行做$ rndc freeze && rndc thaw
。 $ rndc sync
似乎根本没有做任何事情来解决这个问题——我希望这只是一个日志文件的事情,因为日志刷新被记录为刷新大约 15 分钟。
如果这还不清楚,这里有一些伪代码让我们开始:
绑定视图
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Run Code Online (Sandbox Code Playgroud)
示例命令行
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds …
Run Code Online (Sandbox Code Playgroud) 这是设置:
问题:
我想要发生的事情:
我试过的:
我有一个有两个 vlan 的网络,这两个 vlan 都是指我的 AD 服务器的 DNS。此网络上的某些服务器是多宿主的。假设我们有两个子网 A:192.168.7.0/24 和 B:192.168.5.0/24。然后我们有一个主机名为“carrot”的服务器。Carrot 有两个 IP,192.168.5.3 和 192.168.7.3。我希望每个子网上的用户都能够将“carrot.mydomain”解析为他们的“本地”IP。
这可能与 Windows DNS 服务器吗?我需要完全“裂脑”吗?有没有人得到有关这些设置的文档的任何有用链接,我有点 MS-DNS 新手。
编辑:假设主机“carrot”具有静态 DNS 条目,我很高兴将它们添加到我的 DNS 服务器。它不会以任何方式注册自己。
我需要提供一种 DNS 裂脑场景,有两个关键目标:
换句话说,我想创建一种“DNS 重写”或覆盖,其中对于某些客户端来说几乎没有记录会有所不同。我希望通过 Server 2016 中的 DNS 策略来实现这一目标,该策略将“split Brain/horizon”描述为预期场景之一,例如https://blogs.technet.microsoft.com/networking/2015/05/12/split-brain -dns-deployment-using-windows-dns-server-policies/ - 但看来我无法实现目标2。
在我的测试中,我创建了一个 ZoneScope,其中包含要返回到匹配客户端的备用 IP 地址和基于客户端子网的查询解析策略,从而实现了目标 1)。但是,如果客户端被匹配为来自“特殊”子网,则它只能解析来自特殊 ZoneScope 的记录,但不能解析来自“默认”范围的记录 - 因此目标 2 失败。
我是否错过了一个配置步骤,如果我的特殊区域范围不包含匹配的记录,则可以回退到默认的区域范围?有人告诉我,这可以通过带有响应区域策略的 BIND DNS 轻松完成,但如果可能的话,我想坚持使用 MS。另外,使用主机文件也是不可能的,因为那些“特殊”服务器并不完全在我们的控制之下。
#define subnet of restricted servers
Add-DnsServerClientSubnet -name SpecialServers -IPv4Subnet 192.168.0.0/24
#define ZoneScope for the special records
Add-DnsServerZoneScope -ZoneName "test.local" -Name "SpecialZoneScope"
#Prepare some testing records in the default scope
Add-DnsServerResourceRecord -ZoneName "test.local" -A -Name HostA -IPv4Address 1.1.1.1
Add-DnsServerResourceRecord -ZoneName "test.local" -A …
Run Code Online (Sandbox Code Playgroud) domain-name-system split-dns windows-server-2016 dns-policies
这可能是一个菜鸟问题,但我有一个带有 AD 域 corp.local 的 SMB 网络和带有 DNS 域 corp.co.uk 的外部托管。
因此,如果我在内部机器(如cool-app.corp.co.uk)上添加网络服务,我们无法在内部解决它。
我尝试将 corp.co.uk 域添加到我的 DNS 服务器中,但其中没有条目(希望自动创建 SOA)。我的理解是我的服务器应该尝试在正向查找区域内解析 x.corp.co.uk,并且当它不能只是将请求转发到外部世界时。
但是,如果我向服务器添加主要区域,则不会发生这种情况,然后我无法解析任何 corp.co.uk 地址。
如果它奏效了,我就会开始将cool-app xyzb 等添加到本地查找区域,以便您在办公室时可以解析LAN 上的这些资源。
我的猜测是我犯了一个愚蠢的错误,或者我试图以错误的方式做某事,我认为蜂巢思维是试图找出答案的最佳方式......
如果我理解正确,我需要一些澄清。我一直在阅读有关 Active Directory 并命名我的域的信息,Microsoft 不建议使用外部公共域的原因是 DNS 拆分。如果我理解正确(如果我没有理解,请纠正我)在这种情况下,我有两个域名服务器,都做同样的工作,但其中一个是内部的(在我的公司中),另一个是公共的.
我是否误解了这一点,如果我误解了,有人可以向我解释吗?我希望这个问题对于这个网站来说不是太宽泛!干杯。
我在网上寻找解决方案,并发现了许多具有不同建议的线程。我发现大部分都是在解析器上使用 LUA 来返回记录。其他帖子建议使用 GEO-IP 或 Pipe 后端。我读过的所有内容都使用过
我很想知道是否可以通过 LUA 根据网络范围更改转发器,而不是使用 LUA 存储区域信息。
如果我能让类似于以下的逻辑工作,我应该已经准备好了:
if sourceip comes from (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) {
forwarder = 192.168.0.1;
}else{
forwarder = 8.8.8.8;
}
Run Code Online (Sandbox Code Playgroud)
我没有从 pdns 中看到任何 LUA 示例来演示如何更改 PDNS 本身内的任何设置,并且我很好奇这是否可能。
假设我们有一个活动目录域 corp.mycompany.com 和一个公共 DNS 域 mycompany.com。是否可以为 mycompany.com 创建一个 AD 集成 DNS 区域,并且只需要我们需要在内部和外部以不同方式解析的主机记录?
例如,如果我们只希望 smtp.mycompany.com 在内部解析为私有 IP,那么我们在 AD 中创建一个 mycompany.com 区域并为指向内部 IP 的 smtp 创建单个 A 记录。对此进行测试时,我们的域客户端会将 smtp.mycompany.com 正确解析为私有 IP,但无法解析任何其他 A 记录,除非我们在 AD 集成区域中创建它们。我们希望使用我们的公共 DNS 记录解析 AD 集成区域上不存在的任何记录。有人告诉我这在 unix 世界中称为水平分割 DNS,在 windows 世界中有对应的吗?
提前致谢
domain-name-system active-directory windows-server-2008-r2 split-dns
split-dns ×11
bind ×2
dns-policies ×2
internal-dns ×2
dynamic-dns ×1
powerdns ×1
split-tunnel ×1
vpn ×1
windows-10 ×1