04-域名解析配置
本章节下载: 04-域名解析配置 (661.59 KB)
DNS(Domain Name System,域名系统)是一种用于TCP/IP应用程序的分布式数据库,提供域名与IP地址之间的转换。通过域名系统,用户进行某些应用时,可以直接使用便于记忆的、有意义的域名,而由网络中的域名解析服务器将域名解析为正确的IP地址。
域名解析分为静态域名解析和动态域名解析,二者可以配合使用。在解析域名时,首先采用静态域名解析(查找静态域名解析表),如果静态域名解析不成功,再采用动态域名解析。由于动态域名解析需要域名服务器(DNS server)的配合,会花费一定的时间,因而可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
静态域名解析就是手工建立域名和IP地址之间的对应关系。当用户使用域名进行某些应用(如telnet应用)时,系统查找静态域名解析表,从中获取指定域名对应的IP地址。
动态域名解析通过向域名服务器查询域名和IP地址之间的对应关系来实现将域名解析为IP地址。动态域名解析过程如下:
(1) 当用户使用域名进行某些应用时,用户程序首先向DNS客户端中的解析器发出请求。
(2) DNS客户端收到请求后,首先查询本地的域名缓存。如果存在已解析成功的映射项,就将域名对应的IP地址返回给用户程序;如果未发现所要查找的映射项,就向域名服务器发送查询请求。
(3) 域名服务器首先从自己的数据库中查找域名对应的IP地址。如果判断该域名不属于本域范围,就将请求交给其他域名服务器处理,直到完成解析,并将解析的结果返回给DNS客户端。
(4) DNS客户端收到域名服务器的响应报文后,将解析结果返回用户程序。
用户程序、DNS客户端及域名服务器的关系如图1-1所示,其中解析器和缓存构成DNS客户端。用户程序、DNS客户端在同一台设备上,而DNS客户端和域名服务器一般分布在两台设备上。
动态域名解析支持缓存功能。每次动态解析成功的域名与IP地址的映射均存放在DNS客户端的动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映射在一段时间后会老化而被删除,以保证及时从域名服务器得到最新的内容。老化时间由域名服务器设置,DNS客户端从域名服务器的应答报文中获得老化时间。
动态域名解析支持域名后缀列表功能。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入的域名加上不同的后缀进行解析。例如,用户想查询域名aabbcc.com,那么可以先在后缀列表中配置com,然后输入aabbcc进行查询,系统会自动将输入的域名与后缀连接成aabbcc.com进行查询。
使用域名后缀的时候,根据用户输入域名方式的不同,查询方式分成以下几种情况:
· 如果用户输入的域名中没有“.”,比如aabbcc,系统认为这是一个主机名,会首先加上域名后缀进行查询,如果所有加后缀的域名查询都失败,将使用最初输入的域名(如aabbcc)进行查询。
· 如果用户输入的域名中间有“.”,比如www.aabbcc,系统直接用它进行查询,如果查询失败,再依次加上各个域名后缀进行查询。
· 如果用户输入的域名最后有“.”,比如aabbcc.com.,表示不需要进行域名后缀添加,系统直接用输入的域名进行查询,不论成功与否都直接返回结果。就是说,如果用户输入的字符中最后一个字符为“.”,就只根据用户输入的字符进行查找,而不会去匹配用户预先设置的域名后缀,因此最后这个“.”,也被称为查找终止符。带有查询终止符的域名,称为FQDN(Fully Qualified Domain Name,完全合格域名)。
目前,设备支持静态域名解析和动态域名解析的DNS客户端功能。
如果域名服务器上配置了域名的别名,设备也可以通过别名来解析主机的IP地址。
表1-1 域名解析配置任务简介
配置任务 |
说明 |
详细配置 |
配置IPv4 DNS client |
二者必选其一 |
|
配置IPv6 DNS client |
||
配置DNS报文的源端口 |
可选 |
|
配置DNS信任接口 |
可选 |
|
配置DNS/IPv6 DNS报文的DSCP优先级 |
可选 |
配置静态域名解析就是通过配置使主机名与IPv4地址相互对应。当使用Telnet等应用时,可以直接使用主机名,由系统解析为IPv4地址。
在配置静态域名解析时,需要注意:
· 在公网或单个VPN实例内,一个主机名只能对应一个IPv4地址。重复配置时,新的配置会覆盖原有配置。
· 公网或单个VPN实例内最多可以配置1024个主机名和IPv4地址的对应关系。可同时在公网和VPN实例内配置主机名和IPv4地址的对应关系。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置主机名和对应的IPv4地址 |
ip host host-name ip-address [ vpn-instance vpn-instance-name ] |
缺省情况下,不存在主机名及IPv4地址的对应关系 |
如果用户要使用动态域名解析功能,则需要配置域名服务器的地址,这样才能将请求报文发送到正确的服务器进行解析。
用户还可以配置域名后缀,以便实现只输入域名的部分字段,而由系统自动加上预先设置的后缀进行解析。
· 公网或单个VPN实例内最多可以配置6个域名服务器的IPv4地址。可同时在公网和VPN实例内配置域名服务器的IPv4地址。
· 公网或单个VPN实例内最多可以配置6个域名服务器的IPv6地址。可同时在公网和VPN实例内配置域名服务器的IPv6地址。
· 查询主机名对应的IPv4地址时,优先向域名服务器的IPv4地址发送查询请求。如果查询失败,则再向域名服务器的IPv6地址发送查询请求。
· 域名服务器的优先级顺序为:先配置的域名服务器优先级高于后配置的域名服务器;设备上手工配置的域名服务器优先级高于通过DHCP等方式动态获取的域名服务器。设备首先向优先级最高的域名服务器发送查询请求,失败后再根据优先级从高到低的次序向其他域名服务器发送查询请求。
· 公网或单个VPN实例内最多可以配置16个域名后缀。可同时在公网和VPN实例内配置域名后缀。
· 添加域名后缀的优先级顺序为:先配置的域名后缀优先级高于后配置的域名后缀;设备上手工配置的域名后缀优先级高于通过DHCP等方式动态获取的域名后缀。设备首先添加优先级最高的域名后缀,查询失败后再根据优先级从高到低的次序添加其他域名后缀。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置域名服务器地址 |
配置域名服务器的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 ] |
||
(可选)配置域名后缀 |
dns domain domain-name [ vpn-instance vpn-instance-name ] |
缺省情况下,未配置域名后缀,即只根据用户输入的域名信息进行解析 |
配置静态域名解析就是通过配置使主机名与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地址的对应关系 |
如果用户要使用动态域名解析功能,则需要配置域名服务器的地址,这样才能将查询请求报文发送到正确的服务器进行解析。
用户还可以配置域名后缀,以便实现只输入域名的部分字段,而由系统自动加上预先设置的后缀进行解析。
· 公网或单个VPN实例内最多可以配置6个域名服务器IPv4地址。可同时在公网和VPN实例内配置域名服务器IPv4地址。
· 公网或单个VPN实例内最多可以配置6个域名服务器IPv6地址。可同时在公网和VPN实例配置域名服务器IPv6地址。
· 查询主机名对应的IPv6地址时,优先向域名服务器的IPv6地址发送查询请求。如果查询失败,则再向域名服务器的IPv4地址发送查询请求。
· 域名服务器的优先级顺序为:先配置的域名服务器优先级高于后配置的域名服务器;设备上手工配置的域名服务器优先级高于通过DHCP等方式动态获取的域名服务器。设备首先向优先级最高的域名服务器发送查询请求,失败后再依次向其他域名服务器发送查询请求。
· 公网或单个VPN实例内最多可以配置16个域名后缀。可同时在公网和VPN实例内配置域名后缀。
· 添加域名后缀的优先级顺序为:先配置的域名后缀优先级高于后配置的域名后缀;设备上手工配置的域名后缀优先级高于通过DHCP等方式动态获取的域名后缀。设备首先添加优先级最高的域名后缀,查询失败后再依次添加其他域名后缀。
表1-5 配置动态域名解析
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置域名服务器地址 |
配置域名服务器的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 ] |
||
(可选)配置域名后缀 |
dns domain domain-name [ vpn-instance vpn-instance-name ] |
缺省情况下,未配置域名后缀,即只根据用户输入的域名信息进行解析 |
无论配置的源接口是否属于指定的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-6 配置DNS报文的源接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定DNS报文的源接口 |
dns source-interface interface-type interface-number [ vpn-instance vpn-instance-name ] |
缺省情况下,未指定DNS报文的源接口 |
缺省情况下,任意接口通过DHCP等协议动态获得的域名后缀和域名服务器信息都将作为有效信息,用于域名解析。如果网络攻击者通过DHCP服务器为设备分配错误的域名后缀和域名服务器地址,则会导致设备域名解析失败,或解析到错误的结果。通过本配置指定信任接口后,域名解析时只采用信任接口动态获得的域名后缀和域名服务器信息,非信任接口获得的信息不能用于域名解析,从而在一定程度上避免这类攻击。
表1-7 配置DNS信任接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定DNS信任接口 |
dns trust-interface interface-type interface-number |
缺省情况下,未指定任何接口为信任接口 |
设备最多可以配置128个DNS信任接口。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定设备发送的DNS报文的DSCP优先级。
表1-8 指定DNS报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定DNS客户端或DNS proxy发出的DNS报文的DSCP优先级 |
dns dscp dscp-value |
缺省情况下,DNS报文的DSCP优先级为0,IPv6 DNS报文的DSCP优先级为0 |
指定IPv6 DNS客户端或IPv6 DNS proxy发出的IPv6 DNS报文的DSCP优先级 |
ipv6 dns dscp dscp-value |
在完成上述配置后,在任意视图下执行display命令可以显示域名解析配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除动态域名缓存信息。
操作 |
命令 |
显示域名解析表信息 |
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 ] |
为了避免记忆复杂的IP地址,Device希望通过便于记忆的主机名访问某一主机。在Device上手工配置IP地址对应的主机名,利用静态域名解析功能,就可以实现通过主机名访问该主机。
在本例中,Device访问的主机IP地址为10.1.1.2,主机名为host.com。
图1-2 静态域名解析配置组网图
# 配置主机名host.com对应的IP地址为10.1.1.2。
<Sysname> system-view
[Sysname] ip host host.com 10.1.1.2
# 执行ping host.com命令,Device通过静态域名解析可以解析到host.com对应的IP地址为10.1.1.2。
[Sysname] ping host.com
Ping host.com (10.1.1.2): 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.2: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 10.1.1.2: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 10.1.1.2: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 10.1.1.2: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 10.1.1.2: icmp_seq=4 ttl=255 time=2.000 ms
--- Ping statistics for host.com ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.200/2.000/0.400 ms
为了避免记忆复杂的IP地址,Device希望通过便于记忆的域名访问某一主机。如果网络中存在域名服务器,则可以利用动态域名解析功能,实现通过域名访问主机。
在本例中:
· 域名服务器的IP地址是2.1.1.2/16,域名服务器上存在com域,且com域中包含域名“host”和IP地址3.1.1.1/16的对应关系。
· Device作为DNS客户端,使用动态域名解析功能,将域名解析为IP地址。
· Device上配置域名后缀com,以便简化访问主机时输入的域名,例如通过输入host即可访问域名为host.com、IP地址为3.1.1.1/16的主机Host。
· 在开始下面的配置之前,假设设备与主机之间的路由可达,设备和主机都已经配置完毕,接口IP地址如图1-3所示。
· 不同域名服务器的配置方法不同,下面仅以Windows Server 2008 R2为例,说明域名服务器的配置方法。
(1) 配置域名服务器
# 进入域名服务器配置界面。
在开始菜单中,选择[程序/管理工具/DNS]。
# 创建区域com。
如图1-4所示,右键点击[正向查找区域],选择[新建区域],按照提示创建新的区域com。
# 添加域名和IP地址的映射。
如图1-5所示,右键点击区域[com]。
选择[新建主机],弹出如图1-6的对话框。按照图1-6输入域名host和IP地址3.1.1.1。单击<添加主机>可完成操作。
图1-6 添加域名和IP地址的映射
(2) 配置DNS客户端Device
<Sysname> system-view
# 配置域名服务器的IP地址为2.1.1.2。
[Sysname] dns server 2.1.1.2
# 配置域名后缀com。
[Sysname] dns domain com
# 在设备上执行ping host命令,可以ping通主机,且对应的目的地址为3.1.1.1。
[Sysname] ping host
Ping host.com (3.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 3.1.1.1: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 3.1.1.1: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 3.1.1.1: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 3.1.1.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 3.1.1.1: icmp_seq=4 ttl=255 time=2.000 ms
--- Ping statistics for host ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.200/2.000/0.400 ms
为了避免记忆复杂的IPv6地址,Device希望通过便于记忆的主机名访问某一主机。在Device上手工配置IPv6地址对应的主机名,利用静态域名解析功能,就可以实现通过主机名访问该主机。
在本例中,Device访问的主机IPv6地址为1::2,主机名为host.com。
图1-7 静态域名解析配置组网图
# 配置主机名host.com对应的IPv6地址为1::2。
<Sysname> system-view
[Sysname] ipv6 host host.com 1::2
# 执行ping ipv6 host.com命令,Device通过静态域名解析可以解析到host.com对应的IPv6地址为1::2。
[Sysname] ping ipv6 host.com
Ping6(56 data bytes) 1::1 --> 1::2, press CTRL_C to break
56 bytes from 1::2, icmp_seq=0 hlim=128 time=1.000 ms
56 bytes from 1::2, icmp_seq=1 hlim=128 time=0.000 ms
56 bytes from 1::2, icmp_seq=2 hlim=128 time=1.000 ms
56 bytes from 1::2, icmp_seq=3 hlim=128 time=1.000 ms
56 bytes from 1::2, icmp_seq=4 hlim=128 time=0.000 ms
--- Ping6 statistics for host.com ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/1.000/0.490 ms
为了避免记忆复杂的IPv6地址,Device希望通过便于记忆的域名访问某一主机。如果网络中存在域名服务器,则可以利用动态域名解析功能,实现通过域名访问主机。
在本例中:
· 域名服务器的IPv6地址是2::2/64,域名服务器上存在com域,且com域中包含域名“host”和IPv6地址1::1/64的对应关系。
· Device作为DNS客户端,使用动态域名解析功能,将域名解析为IPv6地址。
· Device上配置域名后缀com,以便简化访问主机时输入的域名,例如通过输入host即可访问域名为host.com、IPv6地址为1::1/64的主机Host。
· 在开始下面的配置之前,假设设备与主机之间的路由可达,设备和主机都已经配置完毕,接口IPv6地址如图1-8所示。
· 不同域名服务器的配置方法不同,下面仅以Windows Server 2008 R2为例,说明域名服务器的配置方法。配置之前,需确保DNS服务器支持IPv6 DNS功能,以便处理IPv6域名解析报文;且DNS服务器的接口可以转发IPv6报文。
(1) 配置域名服务器
# 进入域名服务器配置界面。
在开始菜单中,选择[程序/管理工具/DNS]。
# 创建区域com。
如图1-9所示,右键点击[正向查找区域],选择[新建区域],按照提示创建新的区域com。
如图1-10所示,右键点击区域[com]。
选择[新建主机],弹出如图1-11的对话框,输入域名和IPv6地址1::1。单击<添加主机>可完成操作。
图1-11 添加域名和IPv6地址的映射
(2) 配置DNS客户端Device
# 配置域名服务器的IPv6地址为2::2。
<Device> system-view
[Device] ipv6 dns server 2::2
# 配置域名后缀com。
[Device] dns domain com
# 在设备上执行ping ipv6 host命令,可以ping通主机,且对应的目的地址为1::1。
[Device] ping ipv6 host
Ping6(56 data bytes) 3::1 --> 1::1, press CTRL_C to break
56 bytes from 1::1, icmp_seq=0 hlim=128 time=1.000 ms
56 bytes from 1::1, icmp_seq=1 hlim=128 time=0.000 ms
56 bytes from 1::1, icmp_seq=2 hlim=128 time=1.000 ms
56 bytes from 1::1, icmp_seq=3 hlim=128 time=1.000 ms
56 bytes from 1::1, icmp_seq=4 hlim=128 time=0.000 ms
--- Ping6 statistics for host ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/1.000/0.490 ms
配置了动态域名解析,但不能根据域名解析到正确的IP地址。
DNS客户端需要和域名服务器配合使用,才能根据域名解析到正确的IP地址。
· 执行命令display dns host ip,检查动态域名缓存信息是否存在指定域名。
· 如果不存在要解析的域名,检查DNS客户端是否和域名服务器通信正常,域名服务器是否工作正常。
· 如果存在要解析的域名,但地址不对,则检查DNS客户端所配置的域名服务器的IP地址是否正确。
配置了动态域名解析,但不能根据域名解析到正确的IPv6地址。
DNS客户端需要和域名服务器配合使用,才能根据域名解析到正确的IPv6地址。
· 执行命令display dns host ipv6,检查动态域名缓存信息是否存在指定域名。
· 如果不存在要解析的域名,检查DNS客户端是否和域名服务器通信正常,域名服务器是否工作正常。
· 如果存在要解析的域名,但地址不对,则检查DNS客户端所配置的域名服务器的IPv6地址是否正确。
· 检查域名服务器所设置的域名和地址映射表是否正确。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!