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/
启动后的配置文件
生成密钥
[root@zhao etc]# rndc-confgen –a //产生密钥
配置named.conf
[root@zhao etc]# vim named.conf //编辑配置文件
完成保存退出
然后编辑named.rfc1912.zones
[root@zhao etc]# vim named.rfc1912.zones
保存退出,然后找到配置文件中的rndc.key文件,改变所属组为named,并且赋予可读权限
[root@zhao etc]# chgrp named rndc.key //改变所属组
[root@zhao etc]# chmod g+r rndc.key //改变同组成员具有可读权限
以上完成以后执行语法检测
最后来/var/named/chroot/var/named/文件中编写区域文件
[root@zhao named]# cp -p named.localhostabc.com.zone //拷贝模板
[root@zhao named]# vim abc.com.zone //编辑区域文件
保存退出
重启服务
[root@zhao named]# rndc reload //刷新数据
然后另外打开一台电脑,并且两台电脑之间可以通信,把DNS指向改成192.168.1.249,进行域名解析
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服务一样,然后在主DNS的abc.com.zone区域文件里面增加一个mail为3.3.3.3,序列号增加一,然后rndc reload更新数据,在辅助服务器上测试,可以发现数据已经同步
测试结果
完成
案例3《授权与转发》
父域对子域授权,子域对父域转发,拓扑图如下
修改192.168.1.249服务[root@zhao ~]# vim /var/named/chroot/etc/named.rfc1912.zones
[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 //编辑子域
[root@zhao named]# vim abc.com.zone //编辑父域对子域授权
配置192.168.1.248服务器
[root@zcl etc]# vim named.rfc1912.zones
[root@zcl etc]# vim named.conf //配置文件,实现转发
[root@zcl named]# cp -p named.localhost b.abc.com.zone
[root@zcl named]# vim b.abc.com.zone //编辑区域文件
案例4《视图》
从拓扑图可知从lan访问abc.com和从Internet访问abc.com解析出不同的DNS
服务器在这里我们采用案例1,只需修改一些主配置文件
编辑主配置文件named.conf
生成区域文件
[root@zhao named]# cp -p named.localhost abc.com.lan
[root@zhao named]# cp -p named.localhost abc.com.int
分别编辑这两个区域文件
完成后保存退出
重启服务