DNS工作原理&配置

DNS工作原理&配置

DNS服务器的功能
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据ip地址查找对应的注册域名,不常用
一级DNS服务器 二级DNS服务器 三级DNS服务器
所有域名都要以点结尾: www.baidu.com.
根域名: .
一级域名: .cn .us .tw .hk …
二级域名: .com.cn .net.cn …
三级域名: nb.com.cn
.cn(中国大陆) .us(美国) .de(德国) .uk(英国) .fr(法国)
在这里插入图片描述
完全合格的主机名(FQDN): 主机头部+注册域名
Full Qualified Domain Name,完全合格的主机名
###############################################################################################

虚拟机A

BIND域名服务
BIND(Berkeley Internet Name Daemon)
伯克利internet域名服务
bind-9.9.4-61.el7.x86_64 #域名服务包
bind-chroot-9.9.4-61.el7.x86_64 #提供虚拟根支持,牢笼政策
系统服务:named
主配置文件:/etc/named.conf #设置本DNS服务器负责解析的域名
地址库文件:/var/named/ #主机名与IP地址的对应关系

运行时虚拟根环境:/var/name/chroot
默认端口:TCP/UDP 53
1.安装软件包
[root@svr7 ~]# yum install -y bind-chroot bind
2.修改主配置文件
[root@svr7 ~]# cp /etc/named.conf /etc/named.txt #备份主配置文件
[root@svr7 ~]# vim /etc/named.conf

options {
        directory       "/var/named";   #指定地址库文件存放路径
};
zone "tedu.cn" IN {                     #指定本机负责域名
        type master;                    #指定本机为主DNS服务器
        file "tedu.cn.zone";            #制定地址库文件
};

3.建立地址库文件,DNS服务器bind程序会以name用户的身份进行运行
必须保证named用户有读取权限
在地址库中所有的域名都必须以点结尾,如果不以点结尾那么会自动补全本地址库负责的域名

配置地址库文件
[root@svr7 ~]# cp -p /var/named/named.localhost /var/named/tedu.cn.zone -p复制后不改变文件权限
[root@svr7 ~]# ll /var/named/tedu.cn.zone
-rw-r----- 1 root named 152 6月 21 2007 /var/named/tedu.cn.zone
[root@svr7 ~]# vim /var/named/tedu.cn.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
tedu.cn.        NS      svr7           #声明DNS服务器主机名     A:正向解析
svr7            A       192.168.4.7    #声明DNS服务器的IP主机
www             A       1.1.1.1        #域名解析记录

4.重启named服务
[root@svr7 ~]# systemctl restart named
如果启动服务没有报错但客户机还无法查找到DNS服务器,就需要查看服务端防火墙
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted

虚拟机B

1.指定DNS服务器地址
[root@pc207 ~]# echo ‘nameserver 192.168.4.7’ > /etc/resolv.conf
[root@pc207 ~]# cat /etc/resolv.conf
nameserver 192.168.4.7
[root@pc207 ~]# nslookup www.tedu.cn

Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.tedu.cn
Address: 1.1.1.1

报错找不到DNS服务器
[root@pc207 ~]# nslookup www.tedu.cn

;; connection timed out; no servers could be reached

##################################################################################################

多区域的DNS服务器

options {
        directory       "/var/named";
};

zone "tedu.cn" IN {
        type master;
        file "tedu.cn.zone";
};
zone "qq.com" IN {
        type master;
        file "qq.com.zone";
};

配置地址库文件
[root@svr7 ~]# cp -p /var/named/tedu.cn.zone /var/named/qq.com.zone
[root@svr7 ~]# vim /var/named/qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com.         NS      svr7
svr7            A       192.168.4.7
www             A       1.1.1.2

主机名映射文件:/etc/hosts 直接为本机提供域名解析 (拥有最高优先级)
####################################################################################################

DNS轮询

配置地址库文件
[root@svr7 ~]# vim /var/named/qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com.         NS      svr7
svr7            A       192.168.4.7
www             A       1.1.1.2
www             A       1.1.1.3
www             A       1.1.1.4      #轮询解析
www             A       1.1.1.5

[root@svr7 ~]# systemctl restart named
虚拟机B
[root@pc207 ~]# nslookup www.qq.com

Server:		192.168.4.7
Address:	192.168.4.7#53
Name:	www.qq.com
Address: 1.1.1.4
Name:	www.qq.com
Address: 1.1.1.5
Name:	www.qq.com
Address: 1.1.1.2
Name:	www.qq.com
Address: 1.1.1.3

######################################################################################################

泛域名解析

配置地址库文件
[root@svr7 ~]# vim /var/named/qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com.         NS      svr7
svr7            A       192.168.4.7
www             A       1.1.1.2
*               A       12.12.12.12    #泛域名解析
qq.com.         A       13.13.13.13

[root@svr7 ~]# systemctl restart named
虚拟机B
[root@pc207 ~]# nslookup dagsjhdas.qq.com

Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	dagsjhdas.qq.com
Address: 12.12.12.12

#####################################################################################################

解析记录的别名

配置地址库文件
[root@svr7 ~]# vim /var/named/qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com.         NS      svr7
svr7            A       192.168.4.7
www             A       1.1.1.2
ftp             A       3.3.4.5
*               A       12.12.12.12
qq.com.         A       13.13.13.13
tts             CNAME   ftp   #解析记录别名,访问tts主机会跳转到ftp主机

[root@pc207 ~]# nslookup tts.qq.com

Server:		192.168.4.7
Address:	192.168.4.7#53
tts.qq.com	canonical name = ftp.qq.com.
Name:	ftp.qq.com
Address: 3.3.4.5

DNS服务器资源解析记录有哪些?
NS:声明DNS服务器解析记录
A:正向地址解析记录
CNAME:解析记录的别名

#####################################################################################################

DNS子域授权

搭建DNS服务器
虚拟机A 虚拟机B 虚拟机C
父域:qq.com 父域的DNS服务器虚拟机A
子域:bj.qq.com 子域的DNS服务器虚拟机B
虚拟机B
1.安装软件包
[root@pc207 ~]# yum install -y bind
[root@pc207 ~]# yum install -y bind-chroot.x86_64
2.修改主配置文件
[root@pc207 ~]# cp /etc/named.conf /etc/named.txt
[root@pc207 ~]# vim /etc/named.conf

options {
        directory       "/var/named";
};
zone "bj.qq.com" IN {
        type master;
        file "bj.qq.com.zone";
};

配置地址库文件
[root@pc207 ~]# cp -p /var/named/named.localhost /var/named/bj.qq.com.zone
[root@pc207 ~]# vim /var/named/bj.qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
bj.qq.com.      NS      pc207
pc207           A       192.168.4.10
www             A       23.23.26.46

[root@pc207 ~]# systemctl restart named
虚拟机A上做子域授权
1.声明子域DNS服务器 NS记录必须写在所有A记录上面
[root@svr7 ~]# vim /var/named/qq.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com.         NS      svr7
bj.qq.com.      NS      pc207              #NS记录必须写在所有A记录上面
svr7            A       192.168.4.7
pc207           A       192.168.4.207
www             A       1.1.1.2
ftp             A       3.3.4.5
*               A       12.12.12.12
qq.com.         A       13.13.13.13
tts             CNAME   ftp

[root@svr7 ~]# systemctl restart named
虚拟机C
[root@svr10 ~]# nslookup www.bj.qq.com 192.168.4.7

Server:		192.168.4.7
Address:	192.168.4.7#53

Non-authoritative answer:
Name:	www.bj.qq.com
Address: 23.23.26.46

递归解析:客户端发送请求给DNS服务器,主DNS服务器与其他DNS服务器交流,最终将解析结果带回来的过程
**迭代解析:客户端发送请求给DNS服务器,主DNS服务告知下一个服务器地址 **
在这里插入图片描述
######################################################################################################

构建主从DNS服务器,解决单点故障,备份主DNS服务器数据.

案例环境
虚拟机A:主DNS服务器
虚拟机B:从DNS服务器
虚拟机C:客户端测试
虚拟机A
1.修改主配置文件,授权从服务器的IP地址(允许谁可以备份的的数据)

[root@svr7 ~]# vim /etc/named.conf

options {
        directory       "/var/named";
        allow-transfer{ 192.168.4.207; };      #授权从服务器ip
};

zone "tedu.cn" IN {
        type master;
        file "tedu.cn.zone";
};
zone "qq.com" IN {
        type master;
        file "qq.com.zone";
};

2.修改地址库文件,声明从服务器的存在
[root@svr7 ~]# vim /var/named/tedu.cn.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
tedu.cn.        NS      svr7
tedu.cn.        NS      pc207
svr7            A       192.168.4.7
pc207           A       192.168.4.207
www             A       1.1.1.1

3.重启named服务
[root@svr7 ~]# systemctl restart named
虚拟机B:从服务器
保证named用户有写入权限的目录

[root@pc207 ~]# vim /etc/named.conf

options {
        directory       "/var/named";
};
zone "bj.qq.com" IN {
        type master;
        file "bj.qq.com.zone";
};
zone "tedu.cn" IN {
        type slave;                                #类型为从服务器
        file "/var/named/slaves/tedu.cn.slave";    #同步的数据,存放路径.
        masters { 192.168.4.7; };                  #主DNS服务器为192.168.4.7
};

重启服务
[root@pc207 ~]# ls /var/named/slaves/
[root@pc207 ~]# systemctl restart named
[root@pc207 ~]# ls /var/named/slaves/ #重启服务后会看到同步过来的数据
tedu.cn.slave #加密存储
虚拟机C测试
[root@svr10 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@svr10 ~]# echo nameserver 192.168.4.207 >> /etc/resolv.conf
[root@svr10 ~]# nslookup www.tedu.cn

Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.tedu.cn
Address: 1.1.1.1

回到虚拟机A,停止named服务
[root@svr7 ~]# systemctl stop named
虚拟机C再进行测试
[root@svr10 ~]# nslookup www.tedu.cn

Server:		192.168.4.207
Address:	192.168.4.207#53
Name:	www.tedu.cn
Address: 1.1.1.1

主从数据同步问题

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                      2019111901       ; serial       #数据版本号,有10个数字组成,越大越新
                                        1D      ; refresh             #主从同步时间的间隔
                                        1H      ; retry               #失效后主从同步时间的间隔
                                        1W      ; expire              #失效时间
                                        3H )    ; minimum             #失败的记录,记忆的时间
tedu.cn.        NS      svr7
tedu.cn.        NS      pc207
svr7            A       192.168.4.7
pc207           A       192.168.4.207
www             A       1.1.1.1

总结:数据的改变必须在主DNS服务器,数据版本号必须要变大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值