一、DNS的工作过程。
DNS是工作在应用层的协议,主要功能是提供域名转化为IP地址的服务。
在世界范围内有很多的域名服务器,当你在浏览器上键入baidu.com的时候
你主机首先就会向DNS服务器发出请求,将baidu.com的域名换成百度服务器
的IP地址。
大致的过程:
<1>我的主机想DNS提交域名。
<2>DNS查找到对应的IP后向我的机子返回域名对应的IP地址。
---------------------------------------------------------------------------------------------
二-使用tcpdump分析该过程。
首先是ping pachelbel.linux31.net 该域名对应的IP地址为192.168.1.44
DNS服务器的地址为192.168.1.144
- linux@linux:~$ sudo tcpdump -vvv -X udp port 53
- tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
- 09:28:36.952823 IP (tos 0x0, ttl 64, id 40182, offset 0, flags [DF], proto UDP (17), length 67)
- linux.53653 > example.local.domain: [bad udp cksum 40664+ A? pachelbel.linux31.net. (39)
- 0x0000: 4500 0043 9cf6 4000 4011 196e c0a8 0165 E..C..@.@..n...e
- 0x0010: c0a8 0190 d195 0035 002f 8486 9ed8 0100 .......5./......
- 0x0020: 0001 0000 0000 0000 0970 6163 6865 6c62 .........pachelb
- 0x0030: 656c 076c 696e 7578 3331 036e 6574 0000 el.linux31.net..
- 0x0040: 0100 01 ...
- 09:28:36.953118 IP (tos 0x0, ttl 64, id 12173, offset 0, flags [none], proto UDP (17), length 113)
- example.local.domain > linux.53653: [udp sum ok] 40664* q: A? pachelbel.linux31.net. 1/1/1 pachelbel.linux31.net. [1d] A 192.168.1.44 ns: linux31.net. [1d] NS linux31.net. ar: linux31.net. [1d] A 192.168.1.144 (85)
- 0x0000: 4500 0071 2f8d 0000 4011 c6a9 c0a8 0190 E..q/...@.......
- 0x0010: c0a8 0165 0035 d195 005d 67df 9ed8 8580 ...e.5...]g.....
- 0x0020: 0001 0001 0001 0001 0970 6163 6865 6c62 .........pachelb
- 0x0030: 656c 076c 696e 7578 3331 036e 6574 0000 el.linux31.net..
- 0x0040: 0100 01c0 0c00 0100 0100 0151 8000 04c0 ...........Q....
- 0x0050: a801 2cc0 1600 0200 0100 0151 8000 02c0 ..,........Q....
- 0x0060: 16c0 1600 0100 0100 0151 8000 04c0 a801 .........Q......
- 0x0070: 90
如上是使用tcpdump监听53端口得到的两个数据包。上面红色的数字码就是DNS向
我的主机返回的域名对应的IP地址。----------------------------------------------------------------------------------------------
阅读(1382) | 评论(1) | 转发(0) |