为什么做DNS频频报错?
为什么看日志显示网络不可达?
到底是道德的沦丧,还是人性在作怪?
No no no 都不是,是你太马虎啦!
在总结之前,在说一次做DNS一定要仔细!一定要仔细!一定要仔细
一:什么是DNS???你真的理解DNS吗?
1.先放一个百度的理解:
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
2.在放一个我的理解:
就是把不好记的IP地址自动转化成易于记忆的字母或者拼音。这样在上网的时候就比较方便!
详细说下域名:https://www.csdn.net/
https://:这个是个协议,也被称为HTTP超文本传输协议,也就是网页在上网上传播的协议。后面的s是(secure)安全的意思,是把这个协议加密了就是更安全了。
www:这个是服务器名,没啥多说的。
csdn.net:这个才是域名,用来定义网站的独一无二的名字
www.csdn.net:这个是网站名,由服务器名+域名组成
/:这个是根目录,也就是通过网站名找到服务器然后在服务器存放网页的个目录
https://www.csdn.net/:这是URL,统一资源定位符。用于定位网上资源。
3.既然能把IP地址转化为易于记忆的域名那么肯定可以正着转也可以反着转。
(1)DNS正向解析:
由域名转化为IP,开始实验啦!
1.安装DNS服务需要的包
[root@a ~]# yum install -y bind-chroot bind-utils
2.编辑dns主配置文件修改两项参数(允许任何IP访问dns的53端口,允许任何IP的请求)
[root@a ~]# vim /etc/named.conf listen-on port 53 { any; }; allow-query { any; };
3.为区域配置文件添加参数
[root@a ~]# vim /etc/named.rfc1912.zones
(这个zone后面的名字和file的后面的可以随便起但是后文要相对应)
zone "caq.com" IN { type master; file "caq.test"; allow-update { none; };
4.创建IP地址和域名解析关系的数据库文件
[root@a ~]# cd /var/named/ [root@a named]# vim caq.test $TTL 1D caq.com. IN SOA caq.com. root.caq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum caq.com. IN NS ns.caq.com. ns.caq.com. IN A 192.168.10.10 www.caq.com. IN A 192.168.30.10 bbs.caq.com. IN A 192.168.20.10
5.重启服务进行正向解析测试
[root@a named]# systemctl restart named [root@a named]# nslookup www.caq.com Server: 127.0.0.1 Address: 127.0.0.1#53 Name: www.caq.com Address: 192.168.30.10 [root@a named]# nslookup bbs.caq.com Server: 127.0.0.1 Address: 127.0.0.1#53 Name: bbs.caq.com Address: 192.168.20.10
(2)DNS反向解析:
由IP转化为域名,开始实验啦!
1.编辑区域配置文件
[root@a ~]# vim /etc/named.rfc1912.zones
(这个zone后面的名字是固定的,意思是解析192.168.30这个网段的IP,file后面的名字也是随便定的)
zone "30.168.192.in-addr.arpa" IN { type master; file "caq.test2"; allow-update { none; }; };
2.创建IP地址和域名解析关系的数据库文件
[root@a named]# vim caq.test2(这个caq.com.是DNS区域) $TTL 1D @ IN SOA caq.com. root.caq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.caq.com. 100 IN PTR ns.caq.com. 10 IN PTR www.caq.com. 20 IN PTR bbs.caq.com. 30 IN PTR mail.caq.com.
3.重启服务开始测试
[root@a named]# systemctl restart named [root@a named]# nslookup 192.168.30.10 10.30.168.192.in-addr.arpa name = www.caq.com. [root@a named]# nslookup 192.168.30.20 20.30.168.192.in-addr.arpa name = bbs.caq.com. [root@a named]# nslookup 192.168.30.30 30.30.168.192.in-addr.arpa name = mail.caq.com.
二:DNS主从服务器
实验需要两台虚拟机一台为主服务器一台为从服务器,需要在同一网段,能互相ping通
1.修改主服务器区域配置文件
[root@a ~]# vim /etc/named.rfc1912.zones zone "caq.com" IN { type master; file "caq.test"; allow-update { 192.168.10.11; }; zone "30.168.192.in-addr.arpa" IN { type master; file "caq.test2"; allow-update { 192.168.10.11; }; };
2.修改从服务器区域配置文件
[root@b ~]# yum install -y bind-chroot bind-utils [root@b ~]# vim /etc/named.rfc1912.zones zone "caq.com" IN { type slave; file "slaves/caq.test"; masters { 192.168.10.10; }; zone "30.168.192.in-addr.arpa" IN { type slave; file "slaves/caq.test2"; masters { 192.168.10.10; }; };
3.重启服务,在/var/named/slaves里有我们正反解析的文件。
[root@b ~]# systemctl restart named [root@b ~]# cd /var/named/slaves [root@b slaves]# ls caq.test caq.test2
三:TSIG
关闭防火墙!关闭selinux!
做这个实验之前首先要把之前在从服务器生成的文件删掉
[root@b ~]# rm -rf /var/named/slaves/*
1.在主服务器中生成密钥。dnssec-keygen命令用于生成安全的DNS服务密钥,其格式为“dnssec-keygen [参数]”,
[root@a ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master Kmaster.+157+27327
2.查看私钥并记录key值
[root@a ~]# cat Kmaster.+157+27327.private Private-key-format: v1.3 Algorithm: 157 (HMAC_MD5) Key: LHViEY9SzJ8m+Sq16DBAyg== Bits: AAA= Created: 20200317211737 Publish: 20200317211737 Activate: 20200317211737
3.在主服务器中创建密钥验证文件
[root@a ~]# cd /var/named/chroot/etc/ [root@a etc]# vim transfer.key key "master" { algorithm hmac-md5; secret "1XEEL3tG5DNLOw+1WHfE3Q=="; }; [root@a etc]# chown root:named transfer.key [root@a etc]# chmod 640 transfer.key [root@linuxprobe etc]# ln transfer.key /etc/transfer.key
4.开启并加载Bind服务的密钥验证功能。
[root@a ~]# vim /etc/named.conf include "/etc/transfer.key"; allow-transfer { key master; }; [root@b ~]# systemctl restart named
这个时候主服务器的密钥验证功能已经开启,重启服务无法自动获得配置文件了
1.现在要配置从服务器 ,步骤和主服务器配置差不多
[root@b ~]# cd /var/named/chroot/etc [root@b etc]# vim transfer.key key "master" { algorithm hmac-md5; secret "1XEEL3tG5DNLOw+1WHfE3Q=="; }; [root@b etc]# chown root:named transfer.key [root@b etc]# chmod 640 transfer.key [root@b etc]# ln transfer.key /etc/transfer.key
2.开启并加载从服务器的密钥验证功能
[root@b etc]# vim /etc/named.conf include "/etc/transfer.key"; ... server 192.168.10.10 { keys { master; }; };
3.再次重启服务就可以看到配置文件又回来了
[root@b ~]# systemctl restart named [root@b ~]# ls /var/named/slaves/ caq.test caq.test2
完成啦!!!