首先我们需要简单了解
DNS
对域名解析的类型及基本过程。
查询请求的类型:
当一个
Name Server
(
NS
)收到一个请求时;它的处理过程依赖于查询请求类型。请求类型不是迭代模式就是递归模式。
在迭代查询模式中,
客户端向
Name Server
发送域名解析请求,以获取可能的回答,
Name
Server
会检查它的缓存及区域中记录;从缓存中获取的记录为非权威回答,从自身
DNS
区域中获取的记录为权威回答。客户端或收到这样的回答“
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
。
域名解析工作的基本步骤:
假设,有一家公司有个单独的
AD domain,
名为
”Test.local.com”, domain controller
及
DNS server
集成在一起,服务器名称为
SRV2003,
并且已经连接到
internet.
一个用户名为
Bill
,
在他自己的台式机
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
的主页
分析:
通过以上步骤,我们不难看出频繁的请求通讯会占用大量的带宽,导致局域网内访问性能下降。
如果我们使用
Forwarder
将会怎样
我们可以设置
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
的使用
上面我们讲到了
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
1.
获取域的命名服务器地址
,
获取权威的回答,可以去
WHOIS
网址
http://www.networksolutions.com/whois/index.jsp,
输入你要查询的域名,获取
Name Server;
如果不需要获取权威的回答,使用命令
nslookup �Cqt=ns
域名
,
关于
nslookup
的使用可以参照我以前写的
nslookup
小结
http://blog.vsharing.com/BillMa/A1053860.html
配置
Conditional Forwarders
以上界面取自
Windows2008 R2
的版本,如果是
2003Server
版本在服务器属性
à
Forwarder
中进行配置
Conditional Forwarders
的适用范围
1.
用于改善
2
个分离的域或公司的域名解析;以便读取局域网内的资源
2.
用于改善公司内部同一个森林下的不关联域的解析
3. 不建议用于指定外网的
Name Server
,虽然我们测试的实例采用
www.google.com