- 论坛徽章:
- 0
|
举凡是看到的资料都是这么说的...
假如client需要知道某个域名的ip的时候,首先会查自己的dns cache,如果cache里有,那么就不需要去查询所规定的dns服务器,而且在查到该域名对应的ip之后,会马上存到自己的dns cache里...
我不知道nslookup这个工具是不是会一定会查询,还是跟IE一样的要先查cache...,也许是我对nslookup的理解有问题...
我做了个实验...这里举例说明:
目标: 查询www.chinaunix.net的ip
平台: windows2000
工具: nslookup,windump
注意:在进行实验前,先ipconfig/flushdns已经清掉了本地的dns cache
1 首先开一个cmd窗口,然后用windump listen udp53端口的数据(因是交换式网络,只能listen到自己机器接口上的dns query/answer)
2 再开一个cmd窗口,然后用nslookup
- C:\Documents and Settings\Administrator>;nslookup
- Default Server: ns1.cn-railway.net
- Address: 211.98.4.1
- >; www.chinaunix.net
- Server: ns1.cn-railway.net
- Address: 211.98.4.1
- Non-authoritative answer:
- Name: www.chinaunix.net
- Address: 61.135.136.122
- >; www.chinaunix.net
- Server: ns1.cn-railway.net
- Address: 211.98.4.1
复制代码
再看我抓的包:
- C:\Documents and Settings\Administrator>;windump -n udp port 53
- windump: listening on \Device\NPF_{D33AFA9D-A7A8-4B0D-80BE-EF679BCB9BBB}
- 12:27:20.069808 IP 192.168.37.166.2326 >; 211.98.4.1.53: 1+ PTR? 1.4.98.211.in-a
- ddr.arpa. (41)
- 12:27:20.099498 IP 211.98.4.1.53 >; 192.168.37.166.2326: 1* 1/1/1 PTR[|domain] (
- DF)
- 12:27:26.760405 IP 192.168.37.166.2327 >; 211.98.4.1.53: 2+ A? www.chinaunix.net
- . (35)
- 12:27:26.789353 IP 211.98.4.1.53 >; 192.168.37.166.2327: 2 1/2/0 A 61.135.136.12
- 2 (100) (DF)
- 12:27:31.714224 IP 192.168.37.166.2328 >; 211.98.4.1.53: 3+ A? www.chinaunix.net
- . (35)
- 12:27:31.742295 IP 211.98.4.1.53 >; 192.168.37.166.2328: 3 1/2/0 A 61.135.136.12
- 2 (100) (DF)
- 12:27:42.172844 IP 192.168.37.166.2329 >; 211.98.4.1.53: 4+ A? www.chinaunix.net
- . (35)
- 12:27:42.201470 IP 211.98.4.1.53 >; 192.168.37.166.2329: 4 1/2/0 A 61.135.136.12
- 2 (100) (DF)
复制代码
可以看到在每次查询的时候,都会直接询问dns服务器,而没有查本机有没有cache,假如有cache,那么我应该在第二次输入www.chinaunix.net的时候不会发出请求给dns server才对,而且,我很快的输入,所以不存在cache过期的问题...
由此,我推断,nslookup不会查本机的dns cache,不知道各位有什么高见,请指点,谢谢...主要是我不知道我的这种想法对不对...请指点... |
|