您的位置:首页 > 其它

DNS中Forwarders与Conditional Forwarders分析及应用 推荐

2010-03-30 14:43 274 查看
首先我们需要简单了解DNS对域名解析的类型及基本过程。
查询请求的类型:[/b][/b]
当一个Name Server (NS)收到一个请求时;它的处理过程依赖于查询请求类型。请求类型不是迭代模式[/b]就是递归模式[/b]。

在迭代查询模式中, 客户端向Name Server 发送域名解析请求,以获取可能的回答,Name
Server会检查它的缓存及区域中记录;从缓存中获取的记录为非权威回答[/b],从自身DNS 区域中获取的记录为权威回答[/b]。客户端或收到这样的回答“here is the IP address of the host you are looking for… ”或这样的回答“"try this other name server instead, it might know the answer”.

在递归查询模式中,事情有一点区别,客户端或收到一个完全答案”目标主机的IP地址是…”或是”Sorry, name not found”

在Windows DNS查询中,客户端总是发送递归请求到Name Server;然后Name Server通常发送迭代请求到其他的Name Server。

域名解析工作的基本步骤:[/b][/b]

假设,有一家公司有个单独的AD domain, 名为”Test.local.com”, domain controller 及DNS server 集成在一起,服务器名称为SRV2003, 并且已经连接到internet. 一个用户名为Bill[/b], 在他自己的台式机DESK01上打开了网页,输入google.com,需要进行访问,接下来我们会简单描述对google.com的解析过程:
1. Desk01发送一个递归查询到服务器SRV2003, 要求解析www.google.com 成IP地址
2. 服务器SRV2003收到请求,查询其自身的DNS数据库及Test.local.com的区域中信息。通过比对认识到, www.google.com不是其自身Domain的记录,无法解析此域名;接下来的步骤依赖于以下情况
a. 如果SRV2003没有连接Internet网, 并且没有其他的DNS服务器可用;那么服务器不得不返回一个”Name not found”错误给客户端Desk01,那么Bill就无法访问google.com
b. 如果SRV2003已经连接到internet网,那么它会联系第一个可用的Internet 根DNS server(root DNS Server已经存储在dns列表中当创建DNS服务时),然后继续下面的步骤
3. SRV2003发送迭代请求到第一个可用的根DNS Server, 它会返回给SRV2003一个顶级级别.com的权威DNS服务器IP地址
4. SRV2003 发送第二个迭代查询给.com服务器, 它会返回google.com域的一台Name Server IP地址的权威回答.
5. SRV2003发送第三个迭代查询给Google.com域中Name Server,然后Name Server返回google.com的实际主机IP地址
6. SRV2003将实际主机IP地址返回给客户单Desk01,Bill就会在浏览器上看到Google.com的主页
分析:[/b][/b]
通过以上步骤,我们不难看出频繁的请求通讯会占用大量的带宽,导致局域网内访问性能下降。
如果我们使用[/b]Forwarder[/b]将会怎样[/b] [/b]
[/b]
我们可以设置Forwarder用于处理当前DNS Name Server服务器无法处理的请求。
Forwarder的配置过程及界面如下:





设置完毕后,我们重新来看解析步骤
1. Desk01 发送递归查询请求到SVR2003, 要求解析www.google.com,获得IP地址
2. SRV2003检查缓存及自身区域中的记录(只对Test.local.com),意识到其自身无法解析www.google.com, 然后检查它的Forwarder 列表,是有Forwarder已经配置了此信息.
3. 在Forwarders 列表中,它发现公司配置的Internet 服务提供者地址ISP, 然后将这个查询转发ISP服务器
4. ISP服务器同样发送三次迭代查询,以获取最终的www.google.com的主机IP地址,过程参照上一个过程的步骤3,4,5
5. ISP服务器将最终结果转给SVR2003服务器
6. SRV2003将实际主机IP地址返回给客户单Desk01,Bill就会在浏览器上看到Google.com的主页

从解析过程来看,解析的步骤并没有减少,那么有什么益处哪?
由于我们将解析的主过程放置在局域网外的ISP服务器中,这样避免了占用内部带宽,当然如果ISP如果返回IP地址,SRV2003服务器同样会调用根域服务器进行解析。

Conditional Forwarders[/b]的使用[/b][/b]

上面我们讲到了Forwarders的使用,那么Conditional Forwarders的使用哪
Conditional Forwarders 用来解析指定域的信息。假设你能够配置将www.google.com域名直接指向一个特定Name Server, 那么它是如何来提高域名解析的速度,我们来看一下步骤:
1. Desk01 发送递归查询请求到SVR2003, 要求解析www.google.com,获得IP地址
2. SRV2003检查缓存及自身区域中的记录(只对Test.local.com),意识到其自身无法解析www.google.com, 然后检查它的Forwarder 列表,是有Forwarder已经配置了此信息.
3. 在Forwarder列表中,它发现了一个Conditional Forwarder 配置,直接指定了www.google.com 的命名主机name Server, 然后它直接将请求发送给这个命名主机
4. Google.com的命名主机Name Server查询自身的区域记录,直接返回实际的IP 地址给SVR2003, 没有经过根DNS服务器
5. SRV2003将实际主机IP地址返回给客户单Desk01,Bill就会在浏览器上看到Google.com的主页,并且感慨“今天的网速真快”

如何配置Conditional Forwarders[/b]

1. 获取域的命名服务器地址,获取权威的回答,可以去WHOIS网址http://www.networksolutions.com/whois/index.jsp,输入你要查询的域名,获取Name Server; 如果不需要获取权威的回答,使用命令nslookup –qt=ns 域名, 关于nslookup的使用可以参照我以前写的nslookup小结http://blog.vsharing.com/BillMa/A1053860.html
配置Conditional Forwarders



以上界面取自Windows2008 R2的版本,如果是2003Server版本在服务器属性àForwarder中进行配置
[align=left] [/align]
Conditional Forwarders[/b]的适用范围[/b]

1. 用于改善2个分离的域或公司的域名解析;以便读取局域网内的资源
2. 用于改善公司内部同一个森林下的不关联域的解析
3. 不建议用于指定外网的Name Server,虽然我们测试的实例采用www.google.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息