首先咱们须要知道一些原理:html
dns服务器有主和从,主服务器发生变化,从服务器会自动同步vim
上网时咱们输入的网址,好比说www.EXAMLE.com,其写全应该是www.EXAMPLE.com.,com后有个.,表明着根域,dns结构中一个网址结构是centos
.缓存 |
根域服务器 |
com网络 |
顶级域/一级域curl |
EXAMPLEide |
二级域测试 |
www网站 |
主机名 |
若是是www.EXAMLE.com.cn结构,一级域为cn,二级域为com,三级域是EXAMPLE,主机名是www
当用户访问一个以前从未访问的网站时,会去查找本地dns的缓存有没有该域名对应的ip,若是没有,将会从根域查询起。
好比说访问www.baidu.com,实际上是访问www.baidu.com.
(1)查询至根域:你知不知道我这个网址的ip呀,根域回复“不知道,不过我知道你的com域在哪,它是个人子域,你去找它吧”(注:这种dns没法将结果交给用户,不过能够将访问推荐到下级dns服务器的查询,称做迭代查询)
(2)查询至com域:你知不知道我这个网址的ip呀,com域回复“不知道,但我知道你的baidu二级域在哪,它是个人子域,你去找它吧”(注:迭代查询)
(3)查询至二级域:你知不知道我这个网址的ip呀,二级域回复“知道呀,来我把它告诉你”(注:这种dns将最终结果交给用户,称做递归查询)
以后dns解析的记录会存放到本地dns服务器,这个本地dns服务器咱们能够理解为小区的网络运营商dns服务器,再有其它主机访问该网址,就能够直接去访问该ip
知道这个概念,咱们便画逻辑图,构建dns结构
1、画出逻辑结构图
本人实验时候主机分配计划和ip
centos7 test:客户机,ip 192.168.239.70
centos7-1:本地dns主服务器,ip 192.168.239.71
centos7-3:二级域主服务器,ip 192.168.239.73
centos6 test:二级域从服务器,ip 192.168.239.60
centos6-1:一级域服务器,ip 192.168.239.61
centos6-2:根域服务器,ip 192.168.239.62
centos:目标网站,ip 192.168.239.200
实际实验中将以.tech做为一级域名测试
实验中可能会用到的检查指令:
主配置文件语法检查:named-checkconf
解析库文件语法检查:named-checkzone "chenux.tech" /var/named/chenux.tech.zone
rndc status|reload ;service named reload
2、给计划做为dns服务器的主机安装bind,dns的服务名为named.service
3、目标网址安装httpd服务,创建/var/www/html/index.html,写入内容
4、为保险起见,咱们一步一步按照图从下向上实现,首先从二级域开始配置
翻页至最下方,能够看到一路径
编辑该文件,内容能够按照下面的格式写入
进入/var/named目录,编辑chenux.tech.zone主区域
创建好后,须要注意一点
重启服务,systemctl restart named,测试结果
5、配置二级域从服务器
配置和主服务器稍有不一样,下图标有两处不一样
第一处:/etc/named.conf
第二处:/etc/named.rfc1912.zones
更改完后重启服务,/var/named/slaves目录下会自动生成*.zone
测试
6、搭建一级域dns
/etc/named.conf文件不变
/etc/named.rfc1912.zone
主区域文件更名为/var/named/tech.zone
重启后测试
此时若是成功,将二级域DNS主服务器网络断开,清除一级域dns服务器缓存,rndc flush,测试机dig www.chenux.tech @192.168.239.60(二级域DNS从服务器)依旧正常
7、搭建根域dns服务器
vim /etc/named.conf,最下方有一个zone ".",将它们所有注释
vim /etc/named.rfc1912.zones
vim /var/named/root.zone
重启服务,测试正常
8、创建本地dns服务器
vim /etc/named.conf 两个选项注释,而且将这两项改成no,不然没法进行dns转发
vim /var/named/named.ca
重启服务
9、更改测试机192.168.239.70的网卡信息,重启服务后查看dns已经变化
此时dig网址www.chenux.tech便已经成功
curl www.chenunx.tech的结果
总结:dns修改/etc/named.conf(注释两条,有从服务器allow-trasfer {容许链接的主机ip})
/etc/named.rft1912.zone,zone "*.com" {
type master/slave;
file "*.com.zone";或者file "slaves/*.com.zone"};
新建/var/named/*.zone,(从服务器会自动生成)
$TTL 86400
@ IN SOA dnsserver admin (版本 1D 1H 1W 3H )
NS dnsserver
NS dnsserver2 子域 NS dnsserver2
dnsserver A 本机ip
dnsserver2 A 子域ip