DNS的概念: 即域名系统,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务,其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。

下面对DNS的工作流程及原理进行简要说明

DNS的查询流程:先看本机的/etc/hosts;如果查不到,就看本地的DNS缓存服务器;在查不到就查找所属域的首选DNS服务器;最后查不到的话就向根发送请求,进行递归+迭代查询。

DNS 的查询规则:递归+迭代;递归即用户向DNS Server发出解析请求,DNS服务器不论是自身直接解析还是无法解析,总会由其向用户返回一个结果;迭代即接收 client解析请求的DNS Server,若其能够解析则直接返回结果,若其不能解析将把解析请求交给其他DNS服务器,而不是自己亲自将解析过程完成。


DNS记录的类型:

A:主机域名向ip地址转换的记录;

NS:代表域内的dns服务器;

MX:代表域内的邮件服务器;

CNAME:域名的别名;

SOA:用于标示域内主DNS服务器。

为了便于大家理解,我在下面做几个案例,供大家参考

DNS案例1《简单的域名解析》

域名 abc.com

DNS服务器 192.168.1.249

www 1.1.1.1

ftp 2.2.2.2

首先安装软件bind bind-chroot bind-utils

[root@zhao Packages]# yum install bindbind-chroot bind-utils      //安装三个软件

找到DNS的根目录下的配置目录,并且查看里面文件,然后重启DNS服务,会发现配置文件里面多出几个文件

[root@zhao ~]# cd /var/named/chroot/etc/


DNS服务器的讲解和在Linux系统下的搭建_linux dns

启动后的配置文件


DNS服务器的讲解和在Linux系统下的搭建_linux dns_02

生成密钥

[root@zhao etc]# rndc-confgen –a       //产生密钥

DNS服务器的讲解和在Linux系统下的搭建_linux dns_03


配置named.conf

[root@zhao etc]# vim named.conf     //编辑配置文件



DNS服务器的讲解和在Linux系统下的搭建_linux dns_04

DNS服务器的讲解和在Linux系统下的搭建_linux dns_05

完成保存退出

然后编辑named.rfc1912.zones

[root@zhao etc]# vim named.rfc1912.zones


DNS服务器的讲解和在Linux系统下的搭建_linux dns_06


保存退出,然后找到配置文件中的rndc.key文件,改变所属组为named,并且赋予可读权限

[root@zhao etc]# chgrp named rndc.key    //改变所属组

[root@zhao etc]# chmod g+r   rndc.key  //改变同组成员具有可读权限

以上完成以后执行语法检测

DNS服务器的讲解和在Linux系统下的搭建_linux dns_07


最后来/var/named/chroot/var/named/文件中编写区域文件

DNS服务器的讲解和在Linux系统下的搭建_linux dns_08

[root@zhao named]# cp -p named.localhostabc.com.zone    //拷贝模板

[root@zhao named]# vim abc.com.zone     //编辑区域文件

DNS服务器的讲解和在Linux系统下的搭建_linux dns_09

保存退出

重启服务

[root@zhao named]# rndc reload    //刷新数据

然后另外打开一台电脑,并且两台电脑之间可以通信,把DNS指向改成192.168.1.249,进行域名解析

DNS服务器的讲解和在Linux系统下的搭建_linux dns_10




DNS案例2《主辅同步》


域名 abc.com

主DNS服务器 192.168.1.249

辅DNS服务器 192.168.1.248

www 1.1.1.1

ftp 2.2.2.2


主DNS服务器配置基本不变,辅助服务器就是改变个地方,首先主配置文件named.conf

DNS服务器的讲解和在Linux系统下的搭建_linux dns_11

其余配置和主DNS服务一样,然后在主DNS的abc.com.zone区域文件里面增加一个mail为3.3.3.3,序列号增加一,然后rndc reload更新数据,在辅助服务器上测试,可以发现数据已经同步

DNS服务器的讲解和在Linux系统下的搭建_linux dns_12

测试结果

DNS服务器的讲解和在Linux系统下的搭建_linux dns_13

完成



案例3《授权与转发》

父域对子域授权,子域对父域转发,拓扑图如下

DNS服务器的讲解和在Linux系统下的搭建_linux dns_14

修改192.168.1.249服务[root@zhao ~]# vim /var/named/chroot/etc/named.rfc1912.zones

DNS服务器的讲解和在Linux系统下的搭建_linux dns_15


[root@zhao ~]# cd /var/named/chroot/var/named/   //进到这个文件下,生成a.abc.com的子域


[root@zhao named]# cp -p named.localhost a.abc.com

[root@zhao named]# vim a.abc.com.zone      //编辑子域

DNS服务器的讲解和在Linux系统下的搭建_linux dns_16


[root@zhao named]# vim abc.com.zone    //编辑父域对子域授权

DNS服务器的讲解和在Linux系统下的搭建_linux dns_17


配置192.168.1.248服务器

[root@zcl etc]# vim named.rfc1912.zones

DNS服务器的讲解和在Linux系统下的搭建_linux dns_18


[root@zcl etc]# vim named.conf   //配置文件,实现转发

DNS服务器的讲解和在Linux系统下的搭建_linux dns_19

[root@zcl named]# cp -p named.localhost b.abc.com.zone

[root@zcl named]# vim b.abc.com.zone   //编辑区域文件

DNS服务器的讲解和在Linux系统下的搭建_linux dns_20完成



案例4《视图》

DNS服务器的讲解和在Linux系统下的搭建_linux dns_21从拓扑图可知从lan访问abc.com和从Internet访问abc.com解析出不同的DNS

服务器在这里我们采用案例1,只需修改一些主配置文件

编辑主配置文件named.conf

DNS服务器的讲解和在Linux系统下的搭建_linux dns_22

DNS服务器的讲解和在Linux系统下的搭建_linux dns_23


生成区域文件

[root@zhao named]# cp -p named.localhost abc.com.lan

[root@zhao named]# cp -p named.localhost abc.com.int

分别编辑这两个区域文件

DNS服务器的讲解和在Linux系统下的搭建_linux dns_24

DNS服务器的讲解和在Linux系统下的搭建_linux dns_25

完成后保存退出

重启服务