• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

08-三层技术-IP业务配置指导

目录

03-域名解析配置

本章节下载 03-域名解析配置  (244.67 KB)

docurl=/cn/Service/Document_Software/Document_Center/Home/Security/00-Public/Configure/Operation_Manual/H3C_T9000_CG(E9114_E9801)-5W200/08/201801/1059362_30005_0.htm

03-域名解析配置


1 域名解析

1.1  域名解析简介

DNS(Domain Name System,域名系统)是一种用于TCP/IP应用程序的分布式数据库,提供域名与IP地址之间的转换。通过域名系统,用户进行某些应用时,可以直接使用便于记忆的、有意义的域名,而由网络中的域名解析服务器将域名解析为正确的IP地址。

域名解析分为静态域名解析和动态域名解析,二者可以配合使用。在解析域名时,首先采用静态域名解析(查找静态域名解析表),如果静态域名解析不成功,再采用动态域名解析。由于动态域名解析需要域名服务器(DNS server)的配合,会花费一定的时间,因而可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

1.1.1  静态域名解析

静态域名解析就是手工建立域名和IP地址之间的对应关系。当用户使用域名进行某些应用(如telnet应用)时,系统查找静态域名解析表,从中获取指定域名对应的IP地址。

1.1.2  动态域名解析

1. 解析过程

动态域名解析通过向域名服务器查询域名和IP地址之间的对应关系来实现将域名解析为IP地址。动态域名解析过程如下:

(1)     当用户使用域名进行某些应用时,用户程序首先向DNS客户端中的解析器发出请求。

(2)     DNS客户端收到请求后,首先查询本地的域名缓存。如果存在已解析成功的映射项,就将域名对应的IP地址返回给用户程序;如果未发现所要查找的映射项,就向域名服务器发送查询请求。

(3)     域名服务器首先从自己的数据库中查找域名对应的IP地址。如果判断该域名不属于本域范围,就将请求交给其他域名服务器处理,直到完成解析,并将解析的结果返回给DNS客户端。

(4)     DNS客户端收到域名服务器的响应报文后,将解析结果返回用户程序。

图1-1 动态域名解析

 

用户程序、DNS客户端及域名服务器的关系如图1-1所示,其中解析器和缓存构成DNS客户端。用户程序、DNS客户端在同一台设备上,而DNS客户端和域名服务器一般分布在两台设备上。

动态域名解析支持缓存功能。每次动态解析成功的域名与IP地址的映射均存放在DNS客户端的动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映射在一段时间后会老化而被删除,以保证及时从域名服务器得到最新的内容。老化时间由域名服务器设置,DNS客户端从域名服务器的应答报文中获得老化时间。

2. 域名后缀列表功能

动态域名解析支持域名后缀列表功能。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入的域名加上不同的后缀进行解析。例如,用户想查询域名aabbcc.com,那么可以先在后缀列表中配置com,然后输入aabbcc进行查询,系统会自动将输入的域名与后缀连接成aabbcc.com进行查询。

使用域名后缀的时候,根据用户输入域名方式的不同,查询方式分成以下几种情况:

·     如果用户输入的域名中没有“.”,比如aabbcc,系统认为这是一个主机名,会首先加上域名后缀进行查询,如果所有加后缀的域名查询都失败,将使用最初输入的域名(如aabbcc)进行查询。

·     如果用户输入的域名中间有“.”,比如www.aabbcc,系统直接用它进行查询,如果查询失败,再依次加上各个域名后缀进行查询。

·     如果用户输入的域名最后有“.”,比如aabbcc.com.,表示不需要进行域名后缀添加,系统直接用输入的域名进行查询,不论成功与否都直接返回结果。就是说,如果用户输入的字符中最后一个字符为“.”,就只根据用户输入的字符进行查找,而不会去匹配用户预先设置的域名后缀,因此最后这个“.”,也被称为查找终止符。带有查询终止符的域名,称为FQDN(Fully Qualified Domain Name,完全合格域名)。

目前,设备支持静态域名解析和动态域名解析的DNS客户端功能。

说明

如果域名服务器上配置了域名的别名,设备也可以通过别名来解析主机的IP地址。

 

1.1.3  DNS代理

1. DNS代理简介

DNS代理(DNS proxy)用来在DNS client和DNS server之间转发DNS请求和应答报文。局域网内的DNS client把DNS proxy当作DNS server,将DNS请求报文发送给DNS proxy。DNS proxy将该请求报文转发到真正的DNS server,并将DNS server的应答报文返回给DNS client,从而实现域名解析。

使用DNS proxy功能后,当DNS server的地址发生变化时,只需改变DNS proxy上的配置,无需改变局域网内每个DNS client的配置,从而简化了网络管理。

DNS proxy的典型应用环境如图1-2所示。

图1-2 DNS代理典型组网应用

 

2. DNS代理的工作机制

DNS代理的工作过程如下:

(1)     DNS client把DNS proxy当作DNS server,将DNS请求报文发送给DNS proxy,即请求报文的目的地址为DNS proxy的IP地址。

(2)     DNS proxy收到请求报文后,首先查找本地的静态域名解析表和动态域名解析缓存表,如果存在请求的信息,则DNS proxy直接通过DNS应答报文将域名解析结果返回给DNS client。

(3)     如果不存在请求的信息,则DNS proxy将报文转发给DNS server,通过DNS server进行域名解析。

(4)     DNS proxy收到DNS server的应答报文后,记录域名解析的结果,并将报文转发给DNS client。DNS client利用域名解析的结果进行相应的处理。

只有DNS proxy上存在域名服务器地址,并存在到达域名服务器的路由,DNS proxy才会向DNS server发送域名解析请求。

1.1.4  DNS spoofing

图1-3 DNS spoofing典型应用场景

 

DNS spoofing(DNS欺骗)主要应用于图1-3所示的拨号网络。在该网络中:

·     Device通过拨号接口连接到PSTN/ISDN等拨号网络。只有存在通过拨号接口转发的报文时,才会触发拨号接口建立连接。

·     Device作为DNS proxy。在Host上将Device指定为DNS服务器

Device上未开启DNS spoofing功能时,Device接收到Host发送的域名解析请求报文后,如果不存在对应的域名解析表项,则需要向DNS server发送域名解析请求。但是,由于此时拨号接口尚未建立连接,Device上不存在DNS server地址,Device不会向DNS server发送域名解析请求,也不会应答DNS client的请求。从而导致域名解析失败,且没有流量触发拨号接口建立连接。

DNS spoofing功能可以解决上述问题。使能DNS spoofing功能后,即便Device上不存在DNS server地址或到达DNS server的路由,Device也会利用指定的IP地址作为域名解析结果,应答DNS client的域名解析请求。DNS client后续发送的报文可以用来触发拨号接口建立连接。

图1-3所示网络中,Host访问HTTP server的报文处理流程为:

(1)     Host通过域名访问HTTP server时,首先向Device发送域名解析请求,将HTTP server的域名解析为IP地址。

(2)     Device接收到域名解析请求后,如果拨号接口尚未建立连接,Device上不存在DNS server地址,或者设备上配置的DNS server地址均不可达,则Device利用DNS spoofing中指定的IP地址作为域名解析结果,应答DNS client的域名解析请求。该域名解析应答的老化时间为0。并且,应答的IP地址满足如下条件:Device上存在到达该IP地址的路由,且路由的出接口为拨号接口。

(3)     Host接收到Device的应答报文后,向应答的IP地址发送HTTP请求。

(4)     Device通过拨号接口转发HTTP请求时,触发拨号接口建立连接。

(5)     域名解析应答老化后,Host再次发送域名解析请求。

(6)     之后,Device的处理过程与DNS proxy工作过程相同,请参见“1.1.3  2. DNS代理的工作机制”。

(7)     Host获取到正确的HTTP server地址后,可以正常访问HTTP server。

说明

由于DNS spoofing功能指定的IP地址并不是待解析域名对应的IP地址,为了防止DNS client上保存错误的域名解析表项,该IP地址对应域名解析应答的老化时间为0。

 

1.2  域名解析配置任务简介

表1-1 域名解析配置任务简介

配置任务

说明

详细配置

配置IPv4 DNS client

二者必选其一

1.3 

配置IPv6 DNS client

1.4 

配置DNS proxy

可选

1.5 

配置DNS spoofing

可选

1.6 

配置DNS报文的源端口

可选

1.7 

配置DNS信任接口

可选

1.8 

配置DNS/IPv6 DNS报文的DSCP优先级

可选

1.9 

 

1.3  配置IPv4 DNS client

1.3.1  配置静态域名解析

配置静态域名解析就是通过配置使主机名与IPv4地址相互对应。当使用Telnet等应用时,可以直接使用主机名,由系统解析为IPv4地址。

在配置静态域名解析时,需要注意:

·     在公网或单个VPN实例内,一个主机名只能对应一个IPv4地址。重复配置时,新的配置会覆盖原有配置。

·     公网或单个VPN实例内最多可以配置1024个主机名和IPv4地址的对应关系。可同时在公网和VPN实例内配置主机名和IPv4地址的对应关系。

表1-2 配置静态域名解析

操作

命令

说明

进入系统视图

system-view

-

配置主机名和对应的IPv4地址

ip host host-name ip-address [ vpn-instance vpn-instance-name ]

缺省情况下,不存在主机名及IPv4地址的对应关系

 

1.3.2  配置动态域名解析

1. 功能简介

如果用户要使用动态域名解析功能,则需要配置域名服务器的地址,这样才能将请求报文发送到正确的服务器进行解析。

用户还可以配置域名后缀,以便实现只输入域名的部分字段,而由系统自动加上预先设置的后缀进行解析。

2. 配置限制和指导

·     系统视图下,公网或单个VPN实例内最多可以配置6个域名服务器的IPv4地址。可同时在公网和VPN实例内配置域名服务器的IPv4地址。

·     系统视图下,公网或单个VPN实例内最多可以配置6个域名服务器的IPv6地址。可同时在公网和VPN实例内配置域名服务器的IPv6地址。

·     接口视图下,公网或单个VPN实例内最多可以配置6个域名服务器的IPv4地址。可同时在公网和VPN实例内配置域名服务器的IPv4地址。

·     查询主机名对应的IPv4地址时,优先向域名服务器的IPv4地址发送查询请求。如果查询失败,则再向域名服务器的IPv6地址发送查询请求。

·     域名服务器的优先级顺序为:系统视图下配置的域名服务器优先级高于接口视图下配置的域名服务器;先配置的域名服务器优先级高于后配置的域名服务器。设备首先向优先级最高的域名服务器发送查询请求,失败后再根据优先级从高到低的次序向其他域名服务器发送查询请求。

·     公网或单个VPN实例内最多可以配置16个域名后缀。可同时在公网和VPN实例内配置域名后缀。

·     添加域名后缀的优先级顺序为:先配置的域名后缀优先级高于后配置的域名后缀。设备首先添加优先级最高的域名后缀,查询失败后再根据优先级从高到低的次序添加其他域名后缀。

3. 配置步骤

表1-3 配置动态域名解析

操作

命令

说明

进入系统视图

system-view

-

(可选)配置域名后缀

dns domain domain-name [ vpn-instance vpn-instance-name ]

缺省情况下,未配置域名后缀,即只根据用户输入的域名信息进行解析

系统视图下配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

三者至少选其一

缺省情况下,未配置域名服务器的地址

接口视图下配置域名服务器的IPv4地址

进入接口视图

Interface interface-type interface-number

配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

配置域名服务器的IPv6地址

ipv6 dns server ipv6-address [ interface-type interface-number ] [ vpn-instance vpn-instance-name ]

 

1.4  配置IPv6 DNS client

1.4.1  配置静态域名解析

配置静态域名解析就是通过配置使主机名与IPv6地址相互对应。当使用Telnet等应用时,可以直接使用主机名,由系统解析为IPv6地址。

在配置静态域名解析时,需要注意:

·     在公网或同一个VPN实例内,一个主机名只能对应一个IPv6地址。重复配置时,新的配置会覆盖原有配置。

·     公网或单个VPN实例内最多可配置1024个主机名与IPv6地址的对应关系。可同时在公网和VPN实例内配置主机名和IPv6地址的对应关系。

表1-4 配置静态域名解析

操作

命令

说明

进入系统视图

system-view

-

配置主机名和对应的IPv6地址

ipv6 host host-name ipv6-address [ vpn-instance vpn-instance-name ]

缺省情况下,不存在主机名及IPv6地址的对应关系

 

1.4.2  配置动态域名解析

1. 功能简介

如果用户要使用动态域名解析功能,则需要配置域名服务器的地址,这样才能将查询请求报文发送到正确的服务器进行解析。

用户还可以配置域名后缀,以便实现只输入域名的部分字段,而由系统自动加上预先设置的后缀进行解析。

2. 配置限制和指导

·     系统视图下,公网或单个VPN实例内最多可以配置6个域名服务器IPv4地址。可同时在公网和VPN实例内配置域名服务器IPv4地址。

·     系统视图下,公网或单个VPN实例内最多可以配置6个域名服务器IPv6地址。可同时在公网和VPN实例内配置域名服务器IPv6地址。

·     接口视图下,公网或单个VPN实例内最多可以配置6个域名服务器的IPv4地址。可同时在公网和VPN实例内配置域名服务器的IPv4地址。

·     查询主机名对应的IPv6地址时,优先向域名服务器的IPv6地址发送查询请求。如果查询失败,则再向域名服务器的IPv4地址发送查询请求。

·     域名服务器的优先级顺序为:系统视图下配置的域名服务器优先级高于接口视图下配置的域名服务器;先配置的域名服务器优先级高于后配置的域名服务器。设备首先向优先级最高的域名服务器发送查询请求,失败后再依次向其他域名服务器发送查询请求。

·     公网或单个VPN实例内最多可以配置16个域名后缀。可同时在公网和VPN实例内配置域名后缀。

·     添加域名后缀的优先级顺序为:先配置的域名后缀优先级高于后配置的域名后缀。设备首先添加优先级最高的域名后缀,查询失败后再依次添加其他域名后缀。

3. 配置步骤

表1-5 配置动态域名解析

操作

命令

说明

进入系统视图

system-view

-

(可选)配置域名后缀

dns domain domain-name [ vpn-instance vpn-instance-name ]

缺省情况下,未配置域名后缀,即只根据用户输入的域名信息进行解析

系统视图下配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

三者至少选其一

缺省情况下,未配置域名服务器的地址

接口视图下配置域名服务器的IPv4地址

进入接口视图

Interface interface-type interface-number

配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

配置域名服务器的IPv6地址

ipv6 dns server ipv6-address [ interface-type interface-number ] [ vpn-instance vpn-instance-name ]

 

1.5  配置DNS proxy

可以指定多个DNS server。DNS proxy接收到客户端的查询请求后,首先向优先级最高的DNS server转发查询请求,失败后再依次向其他DNS server转发查询请求。

无论DNS proxy接收到的查询请求是来自IPv4客户端还是来自IPv6客户端,DNS proxy都会按照优先级顺序向域名服务器的IPv4地址和IPv6地址转发查询请求。如果查询请求是IPv4报文,则优先向域名服务器的IPv4地址转发查询请求。如果查询请求是IPv6报文,则优先向域名服务器的IPv6地址转发查询请求。

表1-6 配置DNS proxy

操作

命令

说明

进入系统视图

system-view

-

开启DNS proxy功能

dns proxy enable

缺省情况下,DNS proxy功能处于关闭状态

系统视图下配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

三者至少选其一

缺省情况下,未配置域名服务器的地址

接口视图下配置域名服务器的IPv4地址

进入接口视图

Interface interface-type interface-number

配置域名服务器的IPv4地址

dns server ip-address [ vpn-instance vpn-instance-name ]

配置域名服务器的IPv6地址

ipv6 dns server ipv6-address [ interface-type interface-number ] [ vpn-instance vpn-instance-name ]

 

1.6  配置DNS spoofing

1. 配置准备

只有在以下条件均满足的情况下,DNS spoofing功能才会生效:

·     设备上启用了DNS proxy功能

·     设备上未指定域名服务器地址或不存在到达域名服务器的路由

因此,配置DNS spoofing前,需要先启用DNS proxy功能。

配置DNS spoofing功能时,需要注意:

·     公网或单个VPN内只能配置1个DNS spoofing应答的IPv4地址和1个DNS spoofing应答的IPv6地址。重复配置时,新的配置会覆盖原有配置。

·     可同时在公网和VPN实例内配置DNS spoofing功能。

·     DNS spoofing功能生效时,即使设备上配置了静态域名解析,也会使用DNS spoofing指定的IP地址来应答DNS请求。

2. 配置步骤

表1-7 配置DNS spoofing

操作

命令

说明

进入系统视图

system-view

-

启用DNS proxy功能

dns proxy enable

缺省情况下,DNS proxy功能处于关闭状态

开启DNS Snooping功能,并指定DNS spoofing应答地址

指定DNS spoofing应答的IPv4地址

dns spoofing ip-address [ vpn-instance vpn-instance-name ]

二者至少选其一

缺省情况下,未开启DNS Snooping功能

指定DNS spoofing应答的IPv6地址

ipv6 dns spoofing ipv6-address [ vpn-instance vpn-instance-name ]

 

1.7  配置DNS报文的源接口

提示

无论配置的源接口是否属于指定的VPN,该配置都会生效。不建议为VPN配置不属于该VPN的接口作为源接口。否则,设备会使用不属于该VPN的地址作为DNS报文源地址,导致无法收到DNS应答。

 

缺省情况下,设备根据域名服务器的地址,通过路由表查找请求报文的出接口,并将该出接口的主IP地址作为发送到该服务器的DNS请求报文的源地址。根据域名服务器的地址不同,发送报文的源地址可能会发生变化。在某些特殊的组网环境中,域名服务器只应答来自特定源地址的DNS请求报文。这种情况下,必须指定DNS报文的源接口。如果为设备配置了DNS报文的源接口,则设备在发送DNS报文时,将固定使用该接口的主IP地址作为报文的源地址。

发送IPv4 DNS报文时,将使用源接口的主IPv4地址作为DNS报文的源地址。发送IPv6 DNS报文时,将根据RFC 3484中定义的规则从源接口上选择IPv6地址作为DNS报文的源地址。如果源接口上未配置对应的地址,则将导致报文发送失败。

公网或单个VPN内只能配置1个源接口。重复配置时,新的配置会覆盖原有配置。可同时在公网和VPN实例内配置源接口。

表1-8 配置DNS报文的源接口

操作

命令

说明

进入系统视图

system-view

-

指定DNS报文的源接口

dns source-interface interface-type interface-number [ vpn-instance vpn-instance-name ]

缺省情况下,未指定DNS报文的源接口

 

1.8  配置DNS信任接口

通过本配置指定信任接口后,域名解析时只采用信任接口动态获得的域名后缀和域名服务器信息,非信任接口获得的信息不能用于域名解析,从而在一定程度上避免这类攻击。

表1-9 配置DNS信任接口

操作

命令

说明

进入系统视图

system-view

-

指定DNS信任接口

dns trust-interface interface-type interface-number

缺省情况下,未指定任何接口为信任接口

 

说明

设备最多可以配置128个DNS信任接口。

 

1.9  配置DNS报文的DSCP优先级

DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定设备发送的DNS报文的DSCP优先级。

本命令的配置同时用于DNS客户端和DNS proxy。

表1-10 配置DNS报文的DSCP优先级

操作

命令

说明

进入系统视图

system-view

-

配置DNS报文的DSCP优先级

dns dscp dscp-value

缺省情况下,DNS报文的DSCP优先级为0,IPv6 DNS报文的DSCP优先级为0

配置IPv6 DNS报文的DSCP优先级

ipv6 dns dscp dscp-value

 

1.10  域名解析显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示域名解析配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下,执行reset命令可以清除动态域名缓存信息。

表1-11 域名解析显示和维护

操作

命令

显示域名解析表信息

display dns host [ ip | ipv6 ] [ vpn-instance vpn-instance-name ]

显示域名服务器的IPv4地址信息

display dns server [ dynamic ] [ vpn-instance vpn-instance-name ]

显示域名服务器的IPv6地址信息

display ipv6 dns server [ dynamic ] [ vpn-instance vpn-instance-name ]

显示域名后缀信息

display dns domain [ dynamic ] [ vpn-instance vpn-instance-name ]

清除动态域名解析缓存信息

reset dns host [ ip | ipv6 ] [ vpn-instance vpn-instance-name ]

 

1.11  常见配置错误举例

1.11.1  IPv4域名解析常见配置错误举例

1. 现象描述

配置了动态域名解析,但不能根据域名解析到正确的IP地址。

2. 故障分析

DNS客户端需要和域名服务器配合使用,才能根据域名解析到正确的IP地址。

3. 故障排除

·     执行命令display dns host ip,检查动态域名缓存信息是否存在指定域名。

·     如果不存在要解析的域名,检查DNS客户端是否和域名服务器通信正常,域名服务器是否工作正常。

·     如果存在要解析的域名,但地址不对,则检查DNS客户端所配置的域名服务器的IP地址是否正确。

·     检查域名服务器所设置的域名和地址映射表是否正确。

1.11.2  IPv6域名解析常见配置错误举例

1. 现象描述

配置了动态域名解析,但不能根据域名解析到正确的IPv6地址。

2. 故障分析

DNS客户端需要和域名服务器配合使用,才能根据域名解析到正确的IPv6地址。

3. 故障排除

·     执行命令display dns host ipv6,检查动态域名缓存信息是否存在指定域名。

·     如果不存在要解析的域名,检查DNS客户端是否和域名服务器通信正常,域名服务器是否工作正常。

·     如果存在要解析的域名,但地址不对,则检查DNS客户端所配置的域名服务器的IPv6地址是否正确。

·     检查域名服务器所设置的域名和地址映射表是否正确。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们