原理:
当DNS客户端需要查询所使用的名称时,它会查询DNS服务器来解析该名称。客户端发送的查询消息包括以下3条信息:
1:指定的DNS域名,必须为完全合格的域名(FQDN);
2:指定的查询类型(SOA起始授权机构,NS NAME SERVER 服务器的ip地址,A 主机的记录,,CANME 别名的记录,MX 邮件服务器)。
3:DNS域名的指定类别。
查询的两种方式:本地解析和查询DNS服务器
1.本地解析
当客户端提出解析请求时,首先将请求传送至DNS客户服务,以便使用本地缓存信息进行解析。如果可以解析所要查询的名称,则DNS客户服务应答该查询,该请求处理过程结束。本地DNS服务客户解析过程如图1所示。
图1 本地DNS服务客户解析过程 |
本地解析程序的缓存包括两种名称信息:
本地配置的主机文件(/etc/hosts,C:\WINDOWS\system32\drivers\etc),该文件是主机名称到地址的映射信息,在DNS客户服务启动时预先加载到缓存中;
从以前的DNS查询应答的响应中获取的资源记录,它被保留在缓存中一段时间。
如果此查询与本机的缓存中的项目不匹配,则解析过程将继续进行,客户端将查询DNS服务器来解析名称。
2.查询DNS服务器
当客户端请求无法在本地解析时,将请求发送至DNS服务器。DNS服务器接收到查询请求时,首先检查它能否在服务器的本地配置区域中获取资源记录信息做出应答,其原理如图2所示。
如果查询的名称与本地区域信息中的相应资源记录匹配,则使用该信息来解析查询的名称,服务器做出应答,则此次查询完成。
图2 查询DNS服务器原理图 |
如果区域信息中没有查询的名称,则服务器检查它能否通过来自先前查询的本地缓存信息来解析该名称。如果从中发现了匹配的信息,则服务器使用该信息应答查询,此次查询完成。
如果无论从缓存还是从区域信息,查询的名称在首选服务器中都未发现匹配的应答,那么查询过程可继续进行,使用递归来完全解析名称。递归查询的工作过程如下。
如图3所示,如要递归查询certer.example.com的地址,首选DNS服务器通过分析完全合格的域名,向顶层域com查询,而com的DNS服务器与example.com服务器联系以获得更进一步的地址。这样循环查询直到获得所需要的结果,并一级级向上返回查询结果,最终完成查询工作。
图3 递归查询流程 |
需要注意的是,为了让DNS服务可以正确运行递归查询,需要有一些必要的信息,该信息通常是以根目录的形式来提供,借助使用根目录提示寻找根域服务器,DNS服务器可以完成递归查询。
? 如果客户端申请使用递归过程,但在DNS服务器上禁用递归或查询DNS服务器时客户端没有申请使用递归,则使用迭代的方式查询。迭代查询的工作过程如下。
如图4所示,如要迭代查询user.certer.example.com的地址,首先DNS服务器在本地查询不到客户端请求的信息时,就会以DNS客户端的身份向其他配置的DNS服务器继续进行查询,以便解析该名称。在大多数情况下,可能会将搜索一直扩展到Internet上的根域服务器,但根域服务器并不会对该请求进行完整的应答,它只会返回example.com服务器的IP地址,这时DNS服务就根据该信息向example.com服务器查询,由example.com服务器完成对user.certer.example.com域名的解析后,再将结果返回DNS服务器。
图4 迭代查询流程 |
对于大多数的迭代查询而言,如果它的主DNS不能解析该名称,那么客户端会使用本地配置的DNS服务器列表,在整个DNS名称空间中联系其他名称服务器。
1:区域类型 正向 名称---》ip 反向 地址---》名称 :2
2:服务器类型 主dns(保存本区域的最原始的记录) 辅助dns(只是主dns的一个复件,不允许进行增加和删除) cache-only存根
3:记录类型 正向区域
SOA (主dns 管理员邮箱 刷新策略)
NS (该区域的dns服务器)
A 主机 ---》ip地址
CNAME 别名
MX 邮件服务器
@ IN NS ns.abc.com.
ns IN A 1.1.1.1
A 名称---》ip地址
www 2.2.2.2
CNAME
pop3 IN CANME mail
MX (该区域的电子邮件服务器)
@ IN MX 10 mail.abc.com.
反向区域
SOA ( 主dns 管理员邮箱 刷新策略)
NS (该区域的dns服务器)
PTR 指针(ip地址---》主机)
10.168.192.in-addr.arpa.
SOA 授权起始记录
(主dns服务器,管理员邮箱,刷新策略)
NS (该区域dns服务器)
@ IN NS ns.abc.com.
ns IN A 1.1.1.1
某企业的总部位于北京,并且有三个子公司,b,com bj.b.com sh.b.com ,要实现各个公司间域名的解析工作,所以在在北京总部dns server 192.168.2.100 上建立了父子域并且进行了对上海子公司sh.b.com的授权。
示意图:
一:安装dns的各个包
[root@localhost Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm 主配置文件
Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[root@localhost Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm 跟安全有关
Preparing... ########################################### [100%]
1:bind-chroot ########################################### [100%]
[root@localhost Server]# rpm -ivh bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm dns的库文件
Preparing... ########################################### [100%]
1:bind-libbind-devel ########################################### [100%]
[root@localhost Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5.i386.rpm
Preparing... ########################################### [100%]
package bind-utils-9.3.6-4.P1.el5.i386 is already installed
[root@localhost Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm 数据库的存根和数据库的模板文件
Preparing... ########################################### [100%]
1:caching-nameserver ########################################### [100%]
二:切换到dns的根目录下
[root@localhost /]# cd /var/named/chroot/ dns的根目录
[root@localhost chroot]# ll
total 12
drwxr-x--- 2 root named 4096 Mar 5 14:34 dev
drwxr-x--- 2 root named 4096 Mar 5 14:34 etc
drwxr-x--- 6 root named 4096 Mar 5 14:34 var
三:切换到/etc目录并拷贝模板文件
[root@localhost chroot]# cd etc/
[root@localhost etc]# ll
total 16
-rw-r--r-- 1 root root 405 Mar 1 14:17 localtime
-rw-r----- 1 root named 1230 Jul 30 2009 named.caching-nameserver.conf
-rw-r----- 1 root named 955 Jul 30 2009 named.rfc1912.zones
-rw-r----- 1 root named 113 Mar 5 14:34 rndc.key
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf 拷贝模板文件 一定要加-p选项 代表加模式的一种拷贝
四:修改主配置文件
[root@localhost etc]# vim named.conf
五:启动该服务
[root@localhost etc]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
六:在 dns server 上进行相关配置
[root@zzu chroot]# vim etc/named.rfc1912.zones
七:拷贝数据库文件 b.com bj.b.com
[root@zzu named]# cp -p localhost.zone b.com
[root@zzu named]# cp -p localhost.zone bj.b.com
[root@zzu named]# ll
total 44
-rw-r----- 1 root named 348 Mar 5 08:14 b.com.db
-rw-r----- 1 root named 249 Mar 5 07:33 bj.b.com.db
drwxrwx--- 2 named named 4096 Mar 5 08:14 data
-rw-r----- 1 root named 198 Jul 30 2009 localdomain.zone
-rw-r----- 1 root named 195 Jul 30 2009 localhost.zone
-rw-r----- 1 root named 427 Jul 30 2009 named.broadcast
-rw-r----- 1 root named 1892 Jul 30 2009 named.ca
-rw-r----- 1 root named 424 Jul 30 2009 named.ip6.local
-rw-r----- 1 root named 426 Jul 30 2009 named.local
-rw-r----- 1 root named 427 Jul 30 2009 named.zero
drwxrwx--- 2 named named 4096 Jul 27 2004 slaves
八:并修改数据库文件 b.com bj.b.com
九:对区域的数据库文件进行检测
十:对dns.conf文件 进行检测
十一:上海dns的配置
1:建立正向查找区域
2:在起始授权机构选项中制定主服务器和相应的名称服务器
3:在bj.b.com所管辖的区域进行相应的测试
4:在sh.b.com 上的测试
提示超时,由于没有联网,所以说在寻找根服务器的时候报错
解决方案
1:修改转发器
2: 修改根提示
3:再次进行解析
DNS
作用 名称---》ip地址 www.sina.com.cn www.yahoo.com
1.hosts (小型) 2.dns (大型)
linux bind
主配置文档 (/var/named/chroot/etc/named.conf )
dns的根目录 /var/named/chroot
区域文件存放目录 /var/named/chroot/var/named
2:
dns 端口
tcp 53 (在进行区域文件传输是使用)
udp 53 (域名解析)
3:
检查工具
区域文件
named-chkzone 域名 区域文件的位置和名称
4:
主配置文档
named-checkconf /var/named/chroot/etc/named.conf
grep named /var/log/message
5:解析指令 nklookup dig -t host
小结:
dns 有效的实现了域名到ip地址的映射
步骤:
dns
一、:配置好网络参数,并关闭防火墙功能
二:修改name.conf 的配置文件
三:检测数据库的named.conf文件
四:建立zzu.com.db和zzu.com.db1的数据库的文件
五:编辑数据库文件
五:加载数据库并启动named服务
firewall
一:配置各个网络参数
二:开启数据包的转发功能 vim /etc/sysctl.conf sysctl -p
三:测试下到dns服务器的连通性
四:进行DNAT的转换,使得到达192.168.3.254的dns数据包指向192.168.2.100服务器
五:模拟内网主机进行测试
pc 192.168.2.200
1:先配置好网络的参数,清空下dns的缓存
2:进行域名解析
六:模拟外网的主机进行解析
pc 192.168.3.200
小结:dns的视图有效的增加了dns服务器的安全性