Dns linux系统中的应用

 

翻译机制:

 

tcp/ip的网络中,流量是以ip包的形式传输,ip包的包头部分是目标ip地址和原ip地址,所以要想准确地在网络中访问到某主机,比如说访问www.sohu.com,需要把域名解析为ip地址,这就是我们说的翻译机制。

1Hosts 文件

在小型的网络中运用hosts文件来实现翻译,hosts文件在操作系统中经常见到,例如windows hosts文件是/windows/system32/drivers/etc    linux系统  /etc/hosts,在一些网络设备中也有hosts文件  交换机  防火墙  路由器 等

Hosts 文件里面到底是什么?

是主机名 ip地址之间的对应关系,只有hosts 文件有主机名ip地址之间的对应,在访问某台主机时才可以找到其ip地址,否则根本访问不到。Hosts文件时主机名ip地址映射表,是手工创建的,在小型的网络中hosts文件是有用的,但在大型的网络hosts文件工作效率会大大降低。

2dns

Dnsdomain name server/system的简称顾名思义 就是域名解析服务器。

实现dns有几种方式

Bind  是伯克利公司开发的用文件来实现的一种方式,这种方式占市场份额60%,把ip地址主机名的对应关系写到文件之中去,把文件加载到内存中,如果文件比较多加载速度比较慢,但是一旦加载进去检索速度特别快。

Powerdns 是靠数据库来实现的,sql 数据库 mysql数据库等

Mydns mydns-ng 也是靠数据库来实现的,只不过这种方式提供web的管理界面帮助管理。

这里我们主要是探讨第一种dns,其他的不做太多的介绍。

 

Dns:

dns域名空间

 

  整个dns 框架是一个树状结构,这个树状结构称为nds域名空间

 

120222940.png

Dns 服务器

 

Dns 服务器内存储着域名空间的部分区域记录。一台dns服务器可以存储一个或多个域内的记录,也就是dns服务器可以管辖一个或多个区域,我们称dns服务器为区域的授权服务器。

dns服务器 在区域中仅有一个

辅助dns服务器 0个或多个,是记录的副本,不能删除和修改

唯缓存服务器

唯缓存服务器是一台并不负责管理任何区域,它会帮助dns客户端向其他服务器来查询,然后将查询的记录保存到自己的缓存中,并将此记录提供给客户端。

区域

正向区域:名称解析为地址

        SOA  授权起始 (主dns  管理员邮箱 刷新策略)

        NS   名称服务器  (主dns  辅助dns

         A 记录  名称------ip地址

         CNAME  别名记录

         MX    邮件服务器 (表明一个域中有mail server

 

反向区域:地址解析为名称

         SOA  授权起始 (主dns  管理员邮箱 刷新策略)

         NS   名称服务器  (主dns  辅助dns

         PTR 记录  ip地址---->名称

         CNAME  别名记录

         MX    邮件服务器 (表明一个域中有mail server

 

Dns 的工作原理

 

120242931.png

 

 

假如在洛阳市有一台pc想要访问郑州大学的一台www服务器,pcdns客户端先向洛阳市市局放出请求,洛阳市居向根域发出请求,根域收到请求,会把河南省厅的地址发给洛阳市局,然后洛阳市局在向河南省厅发出请求,河南省厅会把郑州市的地址告诉洛阳市,洛阳市在访问郑州市局,郑州市局把郑州大学地址告诉洛阳市局,洛阳市居在访问郑州大学,郑州大学把www服务器的地址告诉洛阳市局,这个过程叫做迭代查询。

Pc把请求发给洛阳市局,洛阳市局把请求的结果告诉pc,在洛阳市局会有一份记录保存下来,如果pc再次访问,会把结果直接发给pc,在pc内部也有一份记录保存,这个过程叫做递归查询。

 

Dns linux系统中的应用

我这里主要演示三个小案例帮助来理解dns服务器在linux中的应用

案例一:做域名解析

案例二:主dns服务器与辅助dns服务器之间的刷新策略

案例三:dns服务器的授权和转发

 

 

 

案例一:做域名解析

 

安装dns相关软件包

 

120256684.png

 

/var/named/chroot/    dns 根目录

/var/named/chroot/etc/   存放dns服务器配置文件

/var/named/chroot/var/named/ 存放区域文件

切换到/var/named/chroot/etc/

 

120315386.png

 

打开named.conf

 

120344136.png

文件做一些简单的修改

120437108.png

 

声明一个abc.com的域,dnsserver 192.168.20.100

120450410.png

打开named.rfc1912.zones这个文件,声明一个abc.com的域

120503576.png

 

 

创建区域文件abc.com.zone

 

 

120516457.png

打开bac.com.zone 进行编辑

 

120530364.png

 

语法检测

检查是否有错误

 

工具:named-checkconf   检查主配置文件

Named-checkzone   检查区域文件

 

 

120553890.png

120553425.png

没有出现任何问题

重启named服务

查看named服务进程

120620960.png

 

 

客户端测试工具

Windows   nslookup

           ping

 

 

Linux    nslookup

         Dig

         Host

 

 

 

 

120643125.png

120643628.png

120644562.png

 

测试成功

如果想在本机做解析的话,只需要指向自己就行了

/etc/resolv.conf  添加记录

 

 

 

120704133.png

120709952.png

 

 

案例一演示结束。

 

  

 案例二:主dns服务器与辅助dns服务器之间的刷新策略

 

工作原理:

 

在一个重要的局域网中,我们不可能只有一个dns服务器工作,一旦dns服务器不能工作,将会丢失大量的数据,非常不安全,所在我们要建立一个或多个dns服务器,作为辅助dns服务器,辅助dns服务器在域中的身份是一个副职,是给主dns服务器数据的备份,所以在辅助dns服务器的数据记录是一个副本,并不能主动进行刷新,只能靠刷新策略,一旦主dns服务器记录发生改变,通过刷新策略,辅助dns服务器的记录也将发生改变。

 

案例的拓扑图

120735577.png

简单说明

 

假设在a.com这个域中有一台dns主服务器ip地址 是192.168.20.100

一台dns辅助服务器ip地址为192.168.20.200 a.com这个域中有www 1.1.1.1 记录

ftp 2.2.2.2 记录,Dns服务器都是用linux系统实现的。

 

在主dns服务器192.168.20.100上 ,打开/var/named/chroot/etc/named.rfc1912.zones 这个区域文件声明一个a.com的域

 

120749208.png

 

然后创建a.com.zone 这个区域文件

 

 

120803509.png

 

 

dns服务器已经设置好了,现在我们在192.168.20.200个台主机上创建一个辅助dns服务器

120819970.png

 

 

同步更新rndc reload查看日志观察在辅助dns服务器是否自动生成a.com.one区域文件

 

 

日志表明 不能从192.168.20.100 dns服务器传送记录,是被拒绝的,说明辅助dns没有给named的服务进程的运行者一个写入的权限,因为区域文件是要放在/var/named/chroot/etc/named所以要修改/var/named/chroot/etc/named目录的权限。

 

121219357.png

dns辅助服务器上在查看日志

 

 121326758.png

dns主服务器上查看日志

 121339784.png

 

 

 

 

在辅助dns服务器named目录下自动生成的区域文件a.com.zone

 

 

121402473.png

121403543.png

案例三:dns服务器的授权和转发

 

简单说明:

在一个大的区域中有父域有子域,父域不可能去管辖子域中的记录,所以父域dns服务器要把管辖权限指派给子域中的一台dns服务器,这就是授权。

如果客户端请求子域dns要得到父域中的记录时,子域要把请求转发给父域dns服务器,让父域dns服务器查找记录,这个过程是转发。

 

拓扑图

121524219.png

父域dns管辖abc.com  同时管辖bj.abc.com这个子域,用l父域dnsinux系统实现ip地址为192.168.20.100

父域dns服务器授权子域dns服务器管辖sh.abc.com 这个子域,也是用linux系统实现ip地址为192.168.20.200

 

192.168.20.100上的配置

打开主配置文档进行修改

121542532.png

 

在父域dns服务器上声明两个域,并创建区域文件

 

 

 

121601164.png

121601410.png

121601234.png

 

 

 

 

 

192.168.20.200的配置

首先进入子域的主配置文件指明转发给的主dns服务器的地址

121615636.png

 

 

 

在子域dns服务器中声明区域sh.abc.com,创建区域文件sh.abc.com.zone

 

 

121643969.png

121645196.png

 

 

 

 

测试

 

客户端dns指向主域的dns服务器192.168.20.100

 

121709600.png

121710476.png

121710490.png

 

 

 

 

 

 

 

客户端dns指向子域的dns服务器192.168.20.200

 

121734793.png

121735338.png

121735591.png

 

 

 

不管是授权还是转发都没有问题,案例三演示结束。