TCP/IP笔记 四.应用层(1)——DNS

时间:2022-10-07 21:13:47

1. DNS

DNS(Domain Name System ):域名系统,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP

2. 域名结构

通常 Internet 主机域名的一般结构为:

主机名.三级域名.二级域名.*域名

2.1 *域名 TLD (Top Level Domain)

(1) 国家*域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
(2) 国际*域名 iTLD:采用.int。国际性的组织可在 .int 下注册。
(3) 通用*域名 gTLD:最早的*域名是:
    .com 表示公司企业
    .net 表示网络服务机构
    .org 表示非赢利性组织
    .edu 表示教育机构(美国专用)
    .gov 表示*部门(美国专用)
    .mil 表示军事部门(美国专用)
TCP/IP笔记 四.应用层(1)——DNS

2.2 域名服务器

本地域名服务器应该是大型单位或当地的网络运营商拥有;主域名服务器应该归网通、电信这种等级的主干运营商或*所有;

根域名服务器(Root Name Server)

根域名服务器是网络中的核武,根域名服务器出现故障将会导致大面积,如果所有的RNS瘫痪,那么整个DNS系统就无法工作。

全球的13组根域名服务器,名字从a到m。域名分别为a.rootservers.net,...,m.rootservers.net。RNS中1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本,由互联网域名与号码分配机构ICANN统一管理。

3. DNS解析

(1)host向本地域名服务器的查询一般都是采用递归查询(recursive query)

Recursive Query:如果host(主机)询问的LNS(Local Name Server 本地域名服务器)不知道被查询的IP地址,那么LNS就替代host向RNS查询。

(2)本地域名服务器向根服务器查询一般采用迭代查询(iterative query)

Iterative Query:当RNS收到LNS的查询时,其返回结果为:a.被查询的IP;b.应该向哪一个DNS查询的IP

TCP/IP笔记 四.应用层(1)——DNS

TCP/IP笔记 四.应用层(1)——DNS

4. 故障排查

4.1 nslookup(网路查询)

要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。
(1)确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
(2)输入nslookup命令后回车,将进入DNS解析查询界面。
(3)命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。
(4)接下来输入你无法访问的站点对应的域名。假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。
小提示:如果DNS解析正常的话,会反馈回正确的IP地址。

4.2 查询DNS服务器工作是否正常:

这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。
(1)通过“开始->运行->输入CMD”后回车进入命令行模式。
(2)输入ipconfig/all命令来查询网络参数。
(3)在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的DNS服务器地址即可解决问题。
(4)如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决DNS服务器上的DNS服务故障,一般来说问题也能够解决。

4.3 清除DNS缓存信息法:

(1)通过“开始->运行->输入CMD”进入命令行模式。
(2)在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。
(3)执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。
(4)接下来我们再访问域名时,就会到DNS服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。

4.4 修改HOSTS(主机)文件法:

(1)进入c:\windows\system32\drivers\etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:\winnt\system32\drivers\etc目录中寻找。
(2)双击HOSTS文件,然后选择用“记事本”程序将其打开。
(3)之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)
(4)将你希望进行DNS解析的条目添加到HOSTS文件中。具体格式是先写该域名对应的IP地址,然后空格接域名信息。
(5)设置完毕后我们访问网址时就会自动根据是在内网还是外网来解析了。