TCP/IP提供了通过IP地址来连接到设备的功能,但对用户来讲,记住某台设备的IP地址是相当困难的,因此专门设计了一种字符串形式的主机命名机制,这些主机名与IP地址相对应。
在IP地址与主机名之间需要有一种转换和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name System)。
DNS使用一种有层次的命名方式,为网上的设备指定一个有意义的名字,并且在网络上设置域名解析服务器,建立域名与IP地址的对应关系。
这样用户就可以使用便于记忆的、有意义的域名,而不必去记忆复杂的IP地址。
DNS Client与Server的交互
Internet域名体系
最初所有机器使用的名字构成了一个非等级的名字空间,由字符序列组成所有的名字。
网络信息中心NIC(Network Information Center)管理这个名字空间,并负责接纳新名字。非等级名字空间由于自身的特点不能管理大量的机器名字,主要原因如下所示:
•名字由字符序列组成,存在潜在的命名冲突。
•名字空间的管理结构位于一个站点,机器数量的不断增多对管理工作带来很大负担。
•名字到IP地址的映射经常发生变化,导致维护域名空间的工作量巨大。
因此,TCP/IP把DNS的域名设计成了分级的结构。Internet域名结构由TCP/IP协议栈中的DNS进行定义。DNS把因特网划分成多个顶级域,如表1所示为每个顶级域的域名。
顶级域采用组织模式和地理模式的划分模式。地理模式按照国家进行划分,每个申请加入Internet的国家都要向NIC注册一个顶级域名,如cn代表中国、us代表美国等。
NIC将顶级域的管理权分派给由其指定的管理机构,由这些管理机构再对被授权管理的域继续进行划分,从而形成了二级域。负责划分二级域的管理机构可以授权其下属的管理结构,由它们继续划分域。由此下去,便形成了层次型的Internet域名体系结构。
静态域名解析
域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。
IPv4静态域名解析是通过静态域名解析表进行的,即手动建立域名和IPv4地址之间的对应关系表,该表的作用类似于Windows 9X操作系统下的hosts文件,可以将一些常用的域名放入表中。
当DNS Client需要域名所对应的IPv4地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的IP地址,提高域名解析的效率。
动态域名解析
动态域名解析需要专用的域名解析服务器(DNS Server)运行域名解析服务器程序,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求。
DNS Client和DNS Server的交互,即动态域名解析的工作过程如下所示:
地址解析器(Resolver)和缓存区(Cache)集成在一起构成DNS客户端(DNS Client),它的作用是接收用户程序(例如Ping、Tracert)的DNS请求,并对其作出回应。一般来说,用户程序、地址解析器和缓存区是在同一台主机上,DNS Server和它们在不同的主机上。
1.用户使用域名访问某些应用服务时,用户程序(如ping、telnet等)首先向DNS Client的地址解析器发出DNS请求。
2.地址解析器收到DNS请求后,首先查询本地域名缓存。•如果本地域名缓存中存在该域名对应的映射表项,地址解析器就直接将域名对应的IP地址返回给用户程序。
•如果本地域名缓存中不存在所要查找的映射表项,地址解析器就向DNS Server发送查询请求报文。
3.DNS Server收到查询报文后,首先判断请求的域名是否处于自己被授权管理的子域里,再根据不同的判断结果,向DNS Client发送相应的响应报文。
•如果请求的域名在自己被授权管理的子域范围之内,该DNS Server首先从自己的数据库中查找域名对应的IP地址。
•如果请求的域名不在被授权管理的子域范围之内,该DNS Server就将请求交给上一级的DNS Server处理,直到完成解析,将解析的结果返回给DNS Client。
4.DNS Client的地址解析器接收并解析DNS Server发回来的响应报文,将解析结果返回给用户程序。
每次动态解析成功的域名与IP地址的映射均存放在动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。
缓存区中的映射在一段时间后会被老化删除,以保证及时从域名服务器得到最新的内容。老化时间由域名服务器设置,DNS Client从协议报文中获得老化时间。
华为路由器配置DNS举例
配置DNS客户端示例
1、组网需求
由于IP地址难于记忆,用户希望通过DNS域名请求方式访问网络服务器。用户希望输入域名部分字段,DNS服务器就可以正确解析,达到用户访问正确网络服务的效果。
例如DNS客户端在访问该服务器huawei.com时,用户只需要输入“huawei”即可。对于一些常用的域名,用户希望能够快速访问,提高域名解析的效率。
2、配置思路
DNS的配置思路如下:
(1)在RouterA上配置静态DNS表项,实现与服务器B和服务器C进行通信的功能。
(2)在RouterA上配置动态DNS功能,实现RouterA以动态DNS查询方式与网络服务器进行通信的功能。
(3)在RouterA配置域名后缀,实现RouterA可以实现域名后缀列表功能。
(4)配置Router上的OSPF路由,实现Router的路由可达。
3、操作步骤
(1)配置设备RouterA
# 配置GE1/0/0接口的IP地址。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 10.1.1.2 255.255.0.0
[RouterA-GigabitEthernet1/0/0] quit
# 配置OSPF。
[RouterA] ospf
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.0.0 0.0.255.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
# 配置静态DNS表项。
[RouterA] ip host serverB 10.4.1.1
[RouterA] ip host serverC 10.4.1.2
# 使能DNS域名解析功能。
[RouterA] dns resolve
# 配置DNS服务器的IP地址。
[RouterA] dns server 10.3.1.2
# 配置域名后缀net。
[RouterA] dns domain net
# 配置域名后缀com。
[RouterA] dns domain com
[RouterA] quit
说明:
若要完成对域名的解析,还需要在RouterB和RouterC上配置ospf,以保证设备之间路由可达。
(2)验证配置结果
# 在设备RouterA上执行ping serverB命令,可以ping通,且对应的目的地址为10.4.1.1。
<RouterA> ping serverB
PING serverB (10.4.1.1): 56 data bytes, press CTRL_C to break
Reply from 10.4.1.1: bytes=56 Sequence=1 ttl=126 time=4 ms
Reply from 10.4.1.1: bytes=56 Sequence=2 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=3 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=4 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=5 ttl=126 time=1 ms
# 在设备RouterA上执行ping huawei.com命令,可以ping通,且对应的目的地址为10.2.1.3。
<RouterA> ping huawei.com
Trying DNS server (10.3.1.2)
PING huawei.com (10.2.1.3): 56 data bytes, press CTRL_C to break
Reply from 10.2.1.3: bytes=56 Sequence=1 ttl=126 time=6 ms
Reply from 10.2.1.3: bytes=56 Sequence=2 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=3 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=4 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=5 ttl=126 time=4 ms
# 在设备RouterA上执行ping huawei命令,可以ping通,且对应的域名变为huawei.com,目的地址为10.2.1.3。
<RouterA> ping huawei
Trying DNS server (10.3.1.2)
PING huawei.com (10.2.1.3): 56 data bytes, press CTRL_C to break
Reply from 10.2.1.3: bytes=56 Sequence=1 ttl=126 time=6 ms
Reply from 10.2.1.3: bytes=56 Sequence=2 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=3 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=4 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=5 ttl=126 time=4 ms
# 在RouterA用display ip host命令可以查看到静态DNS表项中主机名和IP地址的对应关系。
<RouterA> display ip host
Host Age Flags Address
serverB 0 static 10.4.1.1
serverC 0 static 10.4.1.2
# 在RouterA用display dns dynamic-host命令可以查看到动态缓存区中的动态DNS表项信息。
<RouterA> display dns dynamic-host
Host TTL Type Address(es)
huawei.com 114 IP 10.2.1.3