【微思网络】每日技术分享之DNSClient与Server交互与配置案例

DNS Client 与 Server 的交互与配置案例

Internet 域名体系

最初所有机器使用的名字构成了一个非等级的名字空间,由字符序列组成所有的名字。网

络信息中心 NIC(Network Information Center)管理这个名字空间,并负责接纳新名字。

非等级名字空间由于自身的特点不能管理大量的机器名字,主要原因如下所示:

• 名字由字符序列组成,存在潜在的命名冲突。

• 名字空间的管理结构位于一个站点,机器数量的不断增多对管理工作带来很大负担。

• 名字到 IP 地址的映射经常发生变化,导致维护域名空间的工作量巨大。

因此,TCP/IP 把 DNS 的域名设计成了分级的结构。Internet 域名结构由 TCP/IP 协议栈中的 DNS 进行定义。DNS 把因特网划分成多个顶级域,如表 1 所示为每个顶级域的域名。顶级域采用组织模式和地理模式的划分模式。地理模式按照国家进行划分,每个申请加入 Internet 的国家都要向 NIC 注册一个顶级域名,如 cn 代表中国、us 代表美国等。

表 1 顶级 Internet 域名及其含义

【微思网络】每日技术分享之DNSClient与Server交互与配置案例

NIC 将顶级域的管理权分派给由其指定的管理机构,由这些管理机构再对被授权管理的域继续进行划分,从而形成了二级域。负责划分二级域的管理机构可以授权其下属的管理结构,由它们继续划分域。由此下去,便形成了层次型的 Internet 域名体系结构。

静态域名解析

域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。

IPv4 静态域名解析是通过静态域名解析表进行的,即手动建立域名和 IPv4 地址之间的对应关系表,该表的作用类似于 Windows 9X 操作系统下的 hosts 文件,可以将一些常用的域名放入表中。当 DNS Client 需要域名所对应的 IPv4 地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的 IP 地址,提高域名解析的效率。

动态域名解析

动态域名解析需要专用的域名解析服务器(DNS Server)运行域名解析服务器程序,提供从域名到 IP 地址的映射关系,负责接收客户提出的域名解析请求。

DNS Client 和 DNS Server 的交互,即动态域名解析的工作过程如下所示

【微思网络】每日技术分享之DNSClient与Server交互与配置案例

图 1 中,地址解析器(Resolver)和缓存区(Cache)集成在一起构成 DNS 客户端(DNS Client),它的作用是接收用户程序(例如 Ping、Tracert)的 DNS 请求,并对其作出回应。一般来说,用户程序、地址解析器和缓存区是在同一台主机上,DNS Server 和它们在不同的主机上。

  1. 用户使用域名访问某些应用服务时,用户程序(如 ping、telnet 等)首先向 DNS Client 的地址解析器发出 DNS 请求。

  2. 地址解析器收到 DNS 请求后,首先查询本地域名缓存。

 如果本地域名缓存中存在该域名对应的映射表项,地址解析器就直接将域名对应的 IP 地址返回给用户程序。

 如果本地域名缓存中不存在所要查找的映射表项,地址解析器就向 DNS Server 发送查询请求报文。

  1. DNS Server 收到查询报文后,首先判断请求的域名是否处于自己被授权管理的子域里,再根据不同的判断结果,向 DNS Client 发送相应的响应报文。

 如果请求的域名在自己被授权管理的子域范围之内,该 DNS Server 首先从自己的数据库中查找域名对应的 IP 地址。

 如果请求的域名不在被授权管理的子域范围之内,该 DNS Server 就将请求交给上一级的 DNS Server 处理,直到完成解析,将解析的结果返回给 DNS Client。

  1. DNS Client 的地址解析器接收并解析 DNS Server 发回来的响应报文,将解析结果返回给用户程序。

每次动态解析成功的域名与 IP 地址的映射均存放在动态域名缓存区中,当下一次查询相

同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映

射在一段时间后会被老化删除,以保证及时从域名服务器得到最新的内容。老化时间由域名

服务器设置,DNS Client 从协议报文中获得老化时间。

域名后缀列表功能

动态域名解析支持域名后缀列表功能。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入域名加上不同的后缀进行解析。

例如,用户想查询域名“example.com”,那么可以在后缀列表中配置 com,然后输入“example”,系统会自动将输入域名与后缀连接成“example.com”进行查询。使用域名后缀的时候,可能会出现以下几种情况:

• 用户输入的域名中没有“.”

比如“example”,系统认为这是一个主机名,会首先加上域名后缀进行查询。如果所有域名都查询失败,最后用最初输入的域名进行查询。

• 用户输入的域名中间有“.”

比如“www.example”,系统直接用它进行查询。如果查询失败,再依次加上各个后缀进行查询。

• 用户输入的域名最后有“.”

比如“example.com.”,系统首先会将输入域名最后的“.”去掉,用剩下的部分

查询,如果没有成功,再依次加上各个后缀进行查询。

DNS 查询类型

Router 的 IPv4 域名解析服务系统支持以下 DNS 查询类型:

• A 类查询是最常用的查询类型,用于请求获得域名对应的 IP 地址。例如在 ping 和 tracert 过程中,可以 ping 或 tracert 一个域名,此时 ping 或 tracert 作为用户程序会向 DNS Client 查询该域名对应的 IP 地址。如果 DNS Client 没有该域名对应的

IP 地址信息,DNS Client 就会向 DNS Server 发起 A 类查询,获取该域名对应的 IP 地址,完成 ping 和 tracert 的功能。

• PTR 查询是指 DNS Client 借助 PTR 类记录根据 IP 地址获取对应的域名。PTR 类记录是指 DNS Server 上提供给 PTR 类查询的域名与 IP 地址映射关系表。

配置 DNS 客户端示例

拓扑图

【微思网络】每日技术分享之DNSClient与Server交互与配置案例

组网需求

由于 IP 地址难于记忆,用户希望通过 DNS 域名请求方式访问网络服务器。用户希望输入

域名部分字段,DNS 服务器就可以正确解析,达到用户访问正确网络服务的效果。例如 DNS

客户端在访问该服务器 huawei.com 时,用户只需要输入“huawei”即可。对于一些常用的域

名,用户希望能够快速访问,提高域名解析的效率。

配置思路

DNS 的配置思路如下:

  1. 在 RouterA 上配置静态 DNS 表项,实现与服务器 B 和服务器 C 进行通信的功能。

  2. 在 RouterA 上配置动态 DNS 功能,实现 RouterA 以动态 DNS 查询方式与网络服务器进行通信的功能。

  3. 在 RouterA 配置域名后缀,实现 RouterA 可以实现域名后缀列表功能。

  4. 配置 Router 上的 OSPF 路由,实现 Router 的路由可达。

操作步骤

配置设备 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

验证配置结果

在设备 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

--- serverB ping statistics ---

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 1/1/4 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

--- huawei.com ping statistics ---

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 4/4/6 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

--- huawei.com ping statistics ---

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 4/4/6 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
配置文件
RouterA 的配置文件

sysname RouterA

ip host serverB 10.4.1.1
ip host serverC 10.4.1.2

#

dns resolve

dns server 10.3.1.2

dns domain net

dns domain com

#

interface GigabitEthernet1/0/0

ip address 10.1.1.2 255.255.0.0

#

ospf 1

area 0.0.0.0

network 10.1.0.0 0.0.255.255

#

Return

================================================================

RouterB 的配置文件

#

sysname RouterB

#

interface LoopBack0

ip address 10.4.1.1 255.255.255.255

#

interface GigabitEthernet1/0/0

ip address 10.1.1.1 255.255.0.0

#

interface GigabitEthernet2/0/0

ip address 10.2.1.1 255.255.0.0

#

ospf 1

area 0.0.0.0

network 10.1.0.0 0.0.255.255

network 10.2.0.0 0.0.255.255

network 10.4.1.1 0.0.0.0

#

Return

=======================================================================

RouterC 的配置文件

#

sysname RouterC

#

interface LoopBack0

ip address 10.4.1.2 255.255.255.255

#

interface GigabitEthernet1/0/0

ip address 10.3.1.1 255.255.0.0

#

interface GigabitEthernet2/0/0

ip address 10.2.1.2 255.255.0.0

#

ospf 1

area 0.0.0.0

network 10.2.0.0 0.0.255.255

network 10.3.0.0 0.0.255.255

network 10.4.1.2 0.0.0.0

#

return

微信咨询 微信公众号

【微思网络】每日技术分享之DNSClient与Server交互与配置案例

猜你喜欢

转载自blog.51cto.com/14888086/2534604