爲什麼做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
完成啦!!!