“解析”DNS_职场 

 

     其结构成倒树形,最上面的是根域(全球只有13台dns服务器来管理根域,一台在日本,一台在欧洲,剩下的都在美国),在根域下面是顶级域(按类别划分),每个顶级域是一个空间,而管理每个空间的管理者就是dns服务器(例如管理根域的有13台dns服务器),在顶级域下面还划分为下一级的域如microsoft(域名写法就是microsoft.com.) 。
 fqdn 完全合格名称,针对域名是域名倒写(如microsoft.com.),一直写到根域。针对主机是主机名加上域名(也是倒写的)(例如主机名是www,则fqdn是www.microsoft.com)。这样写的好处是保证路径唯一、不会重复。

2.dns的解析过程:

        客户机首先查询主机hosts文件,如果hosts文件中有此记录则返回结果;如果没有需要从以前DNS查询应答的响应中的缓存的得到名称信息。如果此查询不匹配缓存中的项目,  接下来查询 DNS 服务器,当本地的DNS不能就地解析查询时,可根据需要查询 DNS 服务器来解析名称。首先客户机查询首选 DNS 服务器。当 DNS 服务器接收到查询时,首先检查本地缓存的先前查询信息来解析名称。如果从中发现匹配的信息,则服务器使用它应答查询。如果首选服务器可使用来自其缓存的肯定匹配响应来应答发出请求的客户机,则此次查询完成。如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,看看需要解析的名称并将请求直接发向最上面的域,首选 DNS 服务器通过跟提示(根线索)来找到根域服务器的地址,最上面的dns服务器通知该目标名称的下一级dns服务器(如dns3),然后把该地址返回给首选dns服务器,然后首选dns服务器向dns3发出查询,然后dns服务器向它管辖的下面的服务器(如dns4)的地址告诉首选dns服务器,首选dns服务器直接来向dns4发出查询  直至查出该名称对应的记录,然后由首选dns服务器将最终结果给客户端。在dns查询 的过程中发生在客户端和服务器之间的是递归查询;在dns服务器之间的查询是迭代查询。

 3.dns、中的术语:

     1.  dns服务器有(1)主dns服务器;(2)辅助dns服务器;在一个区域中只用一个主dns服务器,辅助可以有多台。主dns服务器和辅助dns服务器两者之间的数据库是一样的。(3)cache-only服务器 不管辖任何一个区域;(4)存根服务器

   2.区域(1)正向查找区域;由名称解析成地址(2)反向查找区域;有ip地址解析成名称。

   3. 资源记录  (RR);正向区域(如abc.com)包括:(1)SOA 授权起始记录;包括主dns服务器、管理员邮箱、刷新策略.(2)NS记录;表明该区域的dns服务器),写法:@(区域)    IN(internet类)     NS    名称(如ns.abc.com)或NS     IN    A    ip地址。(3)A记录,是名称和地址的对应关系(4)CNAME 别名记录(5)MX记录;表明该区域的电子邮件服务器。写法: @(表示该区域) IN(internet类)   MX 10(优先级)  电子邮件名称(如mail.abc.com)。。。反向区域包括:(1)SOA 授权起始记录;包括主dns服务器、管理员邮箱、刷新策略.(2)NS记录;表明该区域的dns服务器),写法:@(区域)    IN(internet类)     NS    名称(如ns.abc.com)或NS     IN    A    ip地址。(3)PTR。

案例应用:

         1.安装dns服务器需要的安装包有: bind-9…..(如bind-9.3.6…..)(dns主安装包)、bind-chroot-**(安全机制,减小dns被攻击的范围)、bind-util-**(提供一些工具)、caching-nameserver-9.*****(形成cache-only服务器、dns配置的模板脚本)。安装这四个包的指令:rpm -ivh 包名。另外有几个目录:/var/named/chroot(dns的根目录)、/var/named/chroot/etc(放置dns服务器的配置文件)、/var/named/chroot/var/named/(放置区域文件)。在/var/named/chroot/etc目录下的一个named.caching-nameserver.conf是dns配置文件的模板

方案介绍:

       有一个区域是b.com,其中一个其下面有bj.b.com和sh.b.com两个子区域。其中dns服务器dns1管理b.com和bj.b.com

      现在我们用一台linux主机组dns1服务器其地址是192.168.101.22。用一台windows主机做sh.b.com的dns服务器dns2,地址是192.168.101.23(因在实验环境中我们让dns1和dns2 在一个ip段,挡在了实际中它们还隔有路由器交换机等设备,即并不在同一子网) 。在b.com域中有一台名为www的主机  地址为1.1.1.1,。在bj.b.com域中也有一台名为www的主机,地址为2.2.2.2。在sh.b.com域中也有一台名为www的主机,地址为3.3.3.3

拓扑图:

“解析”DNS_休闲_02 

下面先来配置linux主机:

1. 做区域的声明;在/var/named/chroot/etc/下找到named.cfc1912.zones。复制15到19行来重新编辑(即21到25行),然后再将21到25行复制来重新编辑(即26到30行)如图:
“解析”DNS_职场_03 
   即完成父子域。
2.然后在产生两个数据库文件b.com.db bj.b.com.db(在/var/named/chroot/var/named下),然后分别修改这两个文件:

b.com.db改为如下图:“解析”DNS_休闲_04

 bj.b.com.db改为如图:“解析”DNS_dns术语_05

3.完成授权(在父域的区域文件中完成授权),打开父域的区域文件b.com.db,增加12行和13行,如下图:“解析”DNS_休闲_06然后执行rndc reload  。

再来配置windows主机(windows server 2003):

     先来安装dns,找到“控制面板“--”添加或删除程序“---”添加或删除windows组件“--”“网络服务”---单击“详细信息”---找到“域名系统(dns)”来安装。然后在“开始”中的“管理工具”下面找到“dns”来配置。打开后右击“正向查找区域”单击“下一步”选择“主要区域”,然后区域名称填入“sh.b.com”接下来都点击“下一步”至完成。然后右击“sh.b.com”选择“属性”,找到“SOA”修改为如图:

“解析”DNS_休闲_07 

然后找到“名称服务器”编辑如下图:

“解析”DNS_职场_08 

添加一条主机记录:

“解析”DNS_休闲_09 

接下来测试解析:

有一台主机在b.com区域中地址为192.168.101.2

在dos窗口下执行nslookup   www.b.com  得到如图:

“解析”DNS_职场_10

执行nslookup www.bj.b.com“解析”DNS_dns术语_11

执行nslookup   www.sh.b.com“解析”DNS_父子域_12

可以看到已成功解析。

原理介绍:
 
 1.DNS 域名系统  作用是将ip地址解析成名称(正向解析),或将名称解析成ip地址(反向解析,例如邮件系统)。在网络中使用的dns服务器有bind(bekelay   intenet   name)、powerdns (速度快、功能不全)、mydns(利用数据实施动态更新)。地址解析的方法有两种:1.hosts文件,只能用于小型的网络。hosts是一个文本将主机所对应的ip写入该文件中,如果主机名发生改变还需要修改hosts文件。2.dns服务器,适用于大型网络。dns服务器的监听端口是53,有tcp(区域文件查询)和udp(提供查询)。dns的拓扑结构如下: