dns

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
中文名
域名系统
外文名
Domain Name System
使用协议
UDP,TCP(当请求大于512字节时)
使用端口
53

1DNS功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。
主机名到IP地址的映射有两种方式:
dns
DNS(11张)
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址[1] 
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

2DNS重要性

1、技术角度看
DNS解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。
2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。

3DNS冗余

为保证服务的高可用性,DNS要求使
dnsdns
用多台名称服务器冗余支持每个区域。
某个区域的资源记录通过手动或自动方式更新到单个主名称服务器(称为主 DNS服务器)上,主 DNS 服务器可以是一个或几个区域的权威名称服务器。
其它冗余名称服务器(称为辅 DNS 服务器)用作同一区域中主服务器的备份服务器,以防主服务器无法访问或宕机。辅 DNS服务器定期与主 DNS 服务器通讯,确保它的区域信息保持最新。如果不是最新信息,辅 DNS服务器就会从主服务器获取最新区域数据文件的副本。这种将区域文件复制到多台名称服务器的过程称为区域复制。

4域名结构

通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心: 位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC ,负责亚太地区[1] 。

5解析器

解析器,或另一台DNS服务器递归代表的情况下,域名解析器,协商使用递归服务,使用查询头位。
解析通常需要遍历多个名称服务器,找到所需要的信息。然而,一些解析器的功能更简单地只用一个名称服务器进行通信。这些简单的解析器依赖于一个递归名称服务器(称为“存根解析器”),为他们寻找信息的执行工作。

6DNS服务器

提供DNS服务的是安装了DNS服务器软件的计算机。服务器端软件既可以是基于类linux操作系统,也可以是基于Windows操作系统的。装好DNS服务器软件后,您就可以在您指定的位置创建区域文件了,所谓区域文件就是包含了此域中名字到IP地址解析记录的一个文件,如文件的内容可能是这样的:primary name server = dns2(主服务器主机名是 )
serial = 2913 (序列号=2913、这个序列号的作用是当辅域名服务器来复制这个文件的时候,如果号码增加了就复制)
refresh = 10800 (3 hours) (刷新=10800秒、辅域名服务器每隔3小时查询一个主服务器)
retry = 3600 (1 hour) (重试=3600秒、当辅域名服务试图在主服务器上查询更新时,而连接失败了,辅域名服务器每隔1小时访问主域名服务器)
expire = 604800 (7 days) (到期=604800秒、辅域名服务器在向主服务更新失败后,7天后删除中的记录。)
default TTL = 3600 (1 hour) (默认生存时间=3600秒、缓存服务器保存记录的时间是1小时。也就是告诉缓存服务器保存域的解析记录为1小时)

7SDNS

中国互联网络信息中心(CNNIC)研发出我国首个面向下一代互联网的域名服务平台——SDNS

8DNS查询方法

查询DNS服务器上的资源记录

在Windows平台下,使用命令行工具,输入nslookup,返回的结果包括域名对应的IP地址(A记录)、别名(CNAME记录)等。除了以上方法外,还可以通过一些DNS查询站点
dnsdns
如国外的国内的 查询域名的DNS信息。
常用的资源记录类型
A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。
CNAME 标准名称 此记录指定标准主机名的别名。
MX邮件交换器此记录列出了负责接收发到域中的电子邮件的主机
NS名称服务器此记录指定负责给定区域的名称服务器。

FQDN名的解析过程查询

若想跟踪一个FQDN名的解析过程,在LinuxShell下输入dig www +trace,返回的结果包括从根域开始的递归或迭代过程,一直到权威域名服务器
GeniePro DNS 应对DNS劫持和DNS缓存中毒攻击的关键性机制:一致性检查
每个Geniepro节点将自身的DNS记录发送给工作组内其他节点请求一致性检查;
每个Geniepro节点将自身的记录与收到的记录进行比较;
每个Geniepro工作组的通信协调节点将获得的DNS记录更新发送给其他组的通信协调节点请求一致性检查;
每个Genipro工作组的通信协调节点向上一级DNS服务器请求更新记录并与收到的其他通信协调节点的记录进行比较。

一致性仲裁

如果一致性检查发现记录不一致情况,则根据策略(少数服从多数、一票否决等)决定是否接受记录的变化 根据结果,各Geniepro节点将自身记录进行统一 通信协调节点选举 选举出的通信协调节点在任期内具有更新组内节点的权限 选举过程满足不可预测性和不可重复性DNS资源记录 如前所述,每个 DNS 数据库都由资源记录构成。一般来说,资源记录包含与特定主机有关的信息,如 IP 地址、主机的所有者或者提供服务的类型。

9故障解决

当DNS解析出现错误,例如把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,就无法通过域名访问相应的站点了,这就是DNS解析故障。出现DNS解析故障最大的症状就是访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。
(1)用nslookup(网路查询)来判断是否真的是DNS解析故障
要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。
第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入nslookup命令后回车,将进入DNS解析查询界面。
第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。
第四步:接下来输入无法访问的站点对应的域名。假如不能访问的话,那么DNS解析应该是不能够正常进行的,会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明本地计算机确实出现了DNS解析故障。
小提示:如果DNS解析正常的话,会反馈回正确的IP地址。
(2)查询DNS服务器工作是否正常:
这时候要看本地计算机使用的DNS地址是多少了,并且查询他的运行情况。
第一步:通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入ipconfig/all命令来查询网络参数。
第三步:在ipconfig /all显示信息中能够看到一个地方写着DNS SERVERS,这个就是本地的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地 址,如果使用外网DNS出现解析错误时,可以更换一个其他的DNS服务器地址即可解决问题。
第四步:如果在DNS服务器处显示的是个人公司的内部网络地址,那么说明该公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决DNS服务器上的DNS服务故障,一般来说问题也能够解决。
(3)清除DNS缓存信息法:
第一步:通过“开始->运行->输入CMD”进入命令行模式。
第二步:在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。
第三步:执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。
第四步:接下来我们再访问域名时,就会到DNS服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。
(4)修改HOSTS主机)文件法:
第一步:通过“开始->搜索”,然后查找名叫hosts的文件。
第二步:当然对于已经知道他的路径的读者可以直接进入c:\windows\system32\drivers\etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:\winnt\system32\drivers\etc目录中寻找。
第三步:双击HOSTS文件,然后选择用“记事本”程序将其打开。
第四步:之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)
第五步:将你希望进行DNS解析的条目添加到HOSTS文件中。具体格式是先写该域名对应的IP地址,然后空格接域名信息。
第六步:设置完毕后我们访问网址时就会自动根据是在内网还是外网来解析了。[2] 

10DNS安全问题

1.针对域名系统的恶意攻击:DDOS攻击造成域名解析瘫痪。
2.域名劫持:修改注册信息、劫持解析结果。
3.国家性质的域名系统安全事件:“.ly”域名瘫痪、“.af”域名的域名管理权变更。
4.系统上运行的DNS服务存在漏洞,导致被黑客获取权限,从而篡改DNS信息。
5.DNS设置不当,导致泄漏一些敏感信息。提供给黑客进一步攻击提供有力信息。

11配置DNS

不同的网络设备配置的语法不一样,这里提供的配置方法是以锐捷网络设备为例的,一般也适用思科设备。

12DNS解析

本节描述如何打开DNS域名解析功能开关。
R(config)#ip domain-lookup 打开DNS域名解析功能开关

  配置DNS Server使用no ip domain-lookup命令关闭DNS域名解析的功能:R(config)#no ip domain-lookup
本节描述如何配置DNS服务器。只有配置了DNS服务器,才能进行动态域名解析。
如果要删除DNS服务器,可以使用no ip name-server [ip-address | ipv6-address] 命令。其中参数ip-address和ipv6-address表示删除指定的域名服务器,否则删除所有的域名服务器。
命令
作用
R(config)# ip name-server {ip-address | ipv6-address}
添加DNS Server的IP/IPV6地址。每次执行这条命令,设备都会添加一个DNS Server。当无法从第一个Server获取到域名时,设备会尝试向后续几个Server发送DNS请求,直到正确收到回应为止。系统最多支持6个域名服务器。

  

静态配置主机名和IP/IPV6地址的映射

如何配置主机名和IP/IPV6地址的映射。本地维护了一张主机名和IP/IPV6地址的对应表,也叫主机名到IP/IPv6地址的映射表。主机名到IP/IPV6地址的映射表内容有两个来源:手工配置和动态学习。在不能动态学习的情况下,手工配置就有必要了。
命令
作用
R(config)# ip host host-name ip-address
手工配置主机名和IP地址映射
R(config)# ipv6 host host-name ipv6-address
手工配置主机名和IPV6地址映射
使用该命令的no形式就可以删除主机名和IP/IPV6地址的映射。

  

清除动态主机名缓存表

本节描述如何清除动态主机名缓存表。如果输入clear hostclear host * 命令将清除动态缓存表。否则只删除指定域名的表项。
命令
作用
R#clear host [host-name]
清除动态主机名缓存表。
该命令不能删除静态配置的主机名。

域名解析信息显示

本节描述如何显示DNS的相关配置信息:
命令
作用
R# show hosts [host-name]
查看DNS的相关参数
R# show hosts
Name servers are:
192.168.5.134 static
Host type Address TTL(sec)
www.163.com static 192.168.5.243 ---

13DNS配置举例

静态域名解析配置举例

拓扑图
如右图静态域名解析配置组网图所示:
dns静态域名解析配置组网图
应用需求
由于网络设备R-A经常访问域名为destination.com的主机,可利用静态域名解析功能,实现通过destination.com主机名访问IP地址为1.1.1.20的主机,提高域名解析的效率。
配置要点
1. 确保设备和主机间路由可达
2. 主机名和IP地址间的映射正确
配置步骤
手工配置主机名和IP地址间的映射;本例中,配置主机名为destination.com其对应IP地址为1.1.1.20
R-A(config)#ip host destination.com 1.1.1.20
配置验证
第一步,查看域名解析信息;关注点主机、IP地址间的映射关系是否正确。
R-A# show host
Name servers are:
Host type Address TTL(sec)
destination.com static 1.1.1.20 ---
第二步,使用ping destination.com命令,查看执行结果。
R-A# ping destination.com
Translating "destination.com"...[OK]
Sending 5, 100-byte ICMP Echoes to 1.1.1.20, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
从以上显示信息可以看出,R-A通过静态域名解析,成功实现通过destination.com主机名访问IP地址为1.1.1.20的主机。

动态域名解析配置举例

拓扑图
dns动态域名解析配置组网图
如右图动态域名解析配置组网图所示。
应用需求
1. DNS域名服务器的IP地址为192.168.31.206/24。
2. 网络设备为DNS客户端,通过动态域名解析功能,实现通过host.com主机名访问IP地址为10.1.1.2的主机。
配置要点
1. DNS客户端和DNS服务器端、访问主机间的路由要可达
2. DNS域名解析开关打开。域名解析功能开关默认开启。
3. 正确配置DNS域名服务器的IP地址
配置步骤
第一步,配置DNS域名服务器
不同域名服务器的配置方法不同,请根据实际情况搭建DNS服务器。具体方法在此不做具体说明。
在DNS服务器上添加主机和IP地址的映射。本例中,设置主机名:host.com;IP地址为10.1.1.2/24
第二步,配置DNS客户端
DNS客户端和DNS服务器端、访问主机间的路由要可达。接口IP配置如拓扑图所示。具体配置过程此处省略。
!打开DNS域名解析功能开关;该功能默认开启
R(config)#ip domain-lookup
!配置域名服务器的IP地址为192.168.31.206
R(config)#ip name-server 192.168.31.206
配置验证
第一步,使用ping host.com命令,查看执行结果。
R# ping host.com
Translating " host.com "...[OK]
Sending 5, 100-byte ICMP Echoes to 10.1.1.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
从以上显示信息可以看出,客户端设备能ping通主机,且对应的目的IP地址为10.1.1.2。设备通过动态域名解析,成功实现通过host.com主机名访问IP地址为10.1.1.2的主机。
第二步,查看域名解析信息;关注点主机名、主机IP地址。
R# show host
Name servers are:
192.168.31.206 static
Host type Address TTL(sec)
host.com dynamic 10.1.1.2 3503
从以上显示信息可以看出,主机名同主机IP地址的映射表项正确。