DNS
DNS 权威应答 非权威应答
权威应答就是权威服务器给出的域名解析。权威服务器就是这个域名的“源解析服务器”也是最权威的解析。
什么是权威服务器呢,先讲一下子域的概念很简单例如 http://sina.com.cn 这个域名,最右边.cn就是一个顶级域名 http://com.cn 只是.cn下的一个子域。而 http://sina.com.cn 只是 http://com.cn 下的一个子域。
像 http://qq.com 、http://360.com 就属于顶级域名.com下的子域。这些子域在创建的时候都要向.com服务器申请。申请成功后在.com顶级服务器下就会建立 http://qq.com 对应的一台服务器,假设这台服务器叫X,X这台服务器就会全权负责 http://qq.com 子域下的主机以及其它子域的查询。像 http://mail.qq.com http://pc.qq.com 凡是 http://qq.com 后缀的任何主机或者域名都会向X申请注册。那么X就是 http://qq.com 这个域的权威服务器。
同样如果有.test.qq.com 这个子域,那么 http://qq.com 就会指定某台服务器来(假设这台服务器叫XX)管理.test.qq.com 这个域。那么XX就是.test.qq.com 这个域的权威服务器,凡是通过XX这台服务器解析.test.qq.com 下的主机或者子域都叫权威应答。
如果DNS服务器在自己的区域文件里找到了客户端需要查询的记录,就会返回一个权威性应答。例如客户端要查找srv1.contoso.com主机的IP地址。在contoso.com的DC(也就是DNS服务器)上查找该主机的“A记录”,我们找到了。就把记录内容通过DNS应答的方式发还给客户端,这就是一个权威性应答。当然实际的查询方式比较复杂远没有我说的这么简单。
此外,如果Dns服务器最近被查找过该主机(可能其他客户端也查找过)记录,就会在缓存里找到记录应答客户端――当然上一种方法快。
如果该DC服务器找不到srv1.contoso.com主机的A记录,就会返回(RecordNotFound)应答――同样也是权威性应答
如果接到DNS查询请求的服务器不是contoso.com的DC(Dns服务器),那么有3种方法处理该请求:
首先,查询其他Dns服务器直到找到,然后此服务器将找到的内容返回给客户端――非权威性应答
其次,推荐客户端到上一级Dns服务器找。―――非权威性应答。
nslookup 非权威应答 权威服务器 权威应答
在用 nslookup 查询一个域名时,可能会看到有“非权威应答” 的提示,该提示表示你所查询的域名不使用你当前所用的 DNS 查询服务器上。
下面使用 nslookup 来测试上述过程。
c:\users\administrator>nslookup
默认服务器: unknown
address: 192.168.1.1
上面直接键入 nslookup 命令,“默认服务器: UnKnown” 表示命令不知道我现在使用的是哪一个 DNS 服务器; "地址 192.168.1.1" 表示我是通过路由器上网的,而路由器的内网侧 IP 地址为 192.168.1.1 。
比如我现在将要查询的 DNS 声明为 ISP 分配给我的地址,然后再次查询:
> server 202.96.128.166
默认服务器: cache-b.guangzhou.gd.cn
Address: 202.96.128.166
> set type=ns
> groad.net
服务器: cache-b.guangzhou.gd.cn
Address: 202.96.128.166
非权威应答:
groad.net nameserver = ns13.bigwww.com
groad.net nameserver = ns16.bigwww.com
groad.net nameserver = ns12.bigwww.com
groad.net nameserver = ns14.bigwww.com
groad.net nameserver = ns11.bigwww.com
groad.net nameserver = ns15.bigwww.com
ns16.bigwww.com internet address = 222.208.183.174
ns12.bigwww.com internet address = 125.64.24.43
ns12.bigwww.com internet address = 221.10.253.238
ns12.bigwww.com internet address = 125.65.165.158
ns14.bigwww.com internet address = 221.10.252.206
ns11.bigwww.com internet address = 221.10.252.206
ns11.bigwww.com internet address = 222.208.183.174
ns11.bigwww.com internet address = 121.11.253.194
ns15.bigwww.com internet address = 221.10.253.238
ns13.bigwww.com internet address = 121.11.253.194
上面202.96.128.166 这个 IP 是 ISP 分配使用的默认 DNS 。接着设置要查询的类型,这里设置为要查询该域名所用的 DNS 服务器(set type=ns),此时看到非权威应答。在查询域名的 A 记录时也会看到非权威应答:
> set type=a
> groad.net
服务器: [202.96.128.166]
Address: 202.96.128.166
非权威应答:
名称: groad.net
Address: 121.15.245.7
接下来,我们使用我们域名所用的 DNS :
> server ns13.bigwww.com
默认服务器: ns13.bigwww.com
Address: 121.11.253.194
再次像上面做一下查询:
> set type=ns
> groad.net
服务器: ns13.bigwww.com
Address: 121.11.253.194
groad.net nameserver = ns12.bigwww.com
groad.net nameserver = ns16.bigwww.com
groad.net nameserver = ns11.bigwww.com
groad.net nameserver = ns14.bigwww.com
groad.net nameserver = ns15.bigwww.com
groad.net nameserver = ns13.bigwww.com
ns11.bigwww.com internet address = 222.208.183.174
ns11.bigwww.com internet address = 121.11.253.194
ns11.bigwww.com internet address = 221.10.252.206
ns12.bigwww.com internet address = 221.10.253.238
ns12.bigwww.com internet address = 125.64.24.43
ns12.bigwww.com internet address = 125.65.165.158
ns13.bigwww.com internet address = 121.11.253.194
ns14.bigwww.com internet address = 221.10.252.206
ns15.bigwww.com internet address = 221.10.253.238
ns16.bigwww.com internet address = 222.208.183.174
此时不再提示“非权威应答”,查询该域名的 A 记录时也是如此:
> set type=a
> groad.net
服务器: ns13.bigwww.com
Address: 121.11.253.194
名称: groad.net
Address: 121.15.245.7
由上面比较可知,所谓“权威服务器”简单的说就是,从“权威服务器”上的域名管理面板里可以对该域名进行管理操作,比如添加 A 记录,MX 记录等等。
以对百度进行一次A记录查询为例
1.查询 baidu.com 这个域名的ns记录
C:\Users\yingshen tao>nslookup -type=ns baidu.com
服务器: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
非权威应答:
baidu.com nameserver = dns.baidu.com
baidu.com nameserver = ns2.baidu.com
baidu.com nameserver = ns4.baidu.com
baidu.com nameserver = ns3.baidu.com
baidu.com nameserver = ns7.baidu.com
dns.baidu.com internet address = 202.108.22.220
ns2.baidu.com internet address = 61.135.165.235
ns4.baidu.com internet address = 220.181.38.10
ns3.baidu.com internet address = 220.181.37.10
ns7.baidu.com internet address = 180.76.76.92
2.用系统默认的DNS服务器进行查询(此时默认的DNS并不是baidu.com这个域名的默认DNS)
C:\Users\yingshen tao>nslookup
默认服务器: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
> set type=a
> baidu.com
服务器: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
非权威应答:
名称: baidu.com
Addresses: 111.13.101.208
123.125.114.144
180.149.132.47
220.181.57.217
3.用百度的默认dns进行查询
> server dns.baidu.com
默认服务器: dns.baidu.com
Address: 202.108.22.220
> baidu.com
服务器: dns.baidu.com
Address: 202.108.22.220
名称: baidu.com
Addresses: 180.149.132.47
220.181.57.217
111.13.101.208
123.125.114.144
再来看看步骤2和步骤3中DNS的应答报文有什么不一样
步骤2:非权威的应答报文,应答内容放在Answer字段
步骤3:权威的应答报文
可以看到权威应答字段填充的就是目标域名的ns记录
首先,题目陈述的就是一个简单查询域名对应IP地址的过程,自己操作如下:
什么是nslookup命令呢?
nslookup 发送域名查询包给指定的(或默认的)域名系统(DNS)服务器。取决于使用者正在使用的系统,默认值可能是使用的服务提供商的本地的DNS名字服务器,一些中间名字服务器,或者整个域名系统层次的根服务器系统。
什么是非权威应答呢?
权威DNS服务器,在自己的配置文件中直接写明了域名与主机对应关系并被授权管理该域时,可以认为这个dns是该域的权威dns。从权威服务器上的域名管理面板里可以对该域名进行管理操作,比如添加 A 记录,MX 记录等等。
相对的说,如果是从你的缓存中查找到的不是你自己配置文件中写明的对应关系,那么该dns对所查询的域就不是权威dns。
那么为了获得权威应答,步骤如下:
1) 将域名服务器切换到谷歌的开放dns服务器上,"server 8.8.8.8"
2) 设置DNS请求的记录类型为name server,也即权威域名服务器,"set type=ns",得到一堆非权威应答
3) 得到应答后,切换域名服务器到权威域名服务器,"server ns1.ieee.org"
4) 设置DNS请求类型为A记录,"set type=a"
5) 再次输入"grouper.ieee.org",即可得到权威服务器ns1.ieee.org给予的权威应答
使用nslookup定位权威域名服务器得到权威应答