1. 程式人生 > >Linux學習筆記之DNS服務

Linux學習筆記之DNS服務

DNS(Domain Name System,域名系統):全球資訊網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議執行在UDP協議之上,使用埠號53。
DNS功能:每個IP地址都可以有一個主機名,主機名由一個或多個字串組成,字串之間用小數點隔開。有了主機名,就不要死記硬背每臺IP裝置的IP地址,只要記住相對直觀有意義的主機名就行了。這就是DNS協議的功能。
####快取記憶體DNS####
##DNS資源記錄##
DNS區域採用資源記錄的形式儲存資訊。每條資源記錄均具有一個型別,表明其保留的資料型別。
-A:名稱至IPv4地址
-AAAA:名稱至IPv6
-CNAME:名稱至“規範名稱”(包含A/AAAA記錄的另一個名稱)
-PTR:ipv4/ipv6地址至名稱
-MX:用於名稱的郵件交換器(向何處傳送其電子郵件)
-NS:域名的名稱伺服器
-SOA:“授權起始”,DNS區域的資訊(管理資訊)

##DNS排錯##
-NOERROR ##查詢成功
-NXDOMAIN:DNS ##伺服器提示不存在這樣的名稱
-SERVFAIL:DNS ##伺服器停機或DNSSEC響應驗證失敗
-REFUSED:DNS #伺服器拒絕回答

1.安裝dns
yum install bind.x86_64 -y ##安裝dns配置檔案
2.開啟dns
ystemctl start named
第一次開啟時會出現停頓,需要敲擊加鍵盤,生成加密字元,並將檔案存入/etc/rndc.key
cat /dev/random ##檢視加密字元(加密字元存放在/etc/rndc.key)
netstat -antulpe |grep named ##檢視dns埠號開啟狀況(未配置服務時的埠情況下,只有本地的53埠開著)
迴環介面(127.0.0.1):本機服務之間的通訊##
Linux學習筆記之DNS服務


vim /etc/named.conf
將第十一行設定為所有:
listen-on port 53 {any;};
systemctl restart named
netstat -antulpe |grep named ##重新檢視dns埠號開啟狀況
Linux學習筆記之DNS服務

vim /etc/named.conf
17 allow-query {any; }; ##改為所有使用者都可以詢問
18 forwarders{114.114.114.114; }; ##本機無法回答的問題,會自動詢問114.114.114.114
32 dnssec-validation no; 服務不自檢
當第一次問時,訪問會有延遲,但是當第二次詢問時,時間短,主機會快取記憶體

正向解析:把域名變成ip
vim /etc/named.conf
11 listen=onport 53 {any};
17 allow-query{any;};
32 dnssec-validationno;

vim /etc/name.rfc1912.zones
19 zone "westoslinux.com" IN {
20 type master;
21 file "westoslinux.com.zone';
22 allow-update {none; };

Linux學習筆記之DNS服務

cd /var/named/
cp -p named.localhost westoslinux.com.zone
vim /var/named/westoslinux.com.zone

Linux學習筆記之DNS服務br/>檔案中不以.結尾,就會預設補齊@,@為.westoslinux.com
測試:dig www.westoslinux.com

輪詢機制
vim /var/named/westoslinux.com.zone
cat /var/named/westoslinux.com.zone

$TTL 1D
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 127.25.254.120
www.a A 172.25.254.111
www.a A 172.25.254.222

測試:dig www.westoslinux.com
Linux學習筆記之DNS服務
測試結果為172.25.254.111和172.25.254.222交替出現

MX 用於名稱的郵件交換器(向何處傳送電子郵件)
vim /var/named/westoslinux.com.zone

$TTL 1D ##快取記憶體一天
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 127.25.254.120
www.a A 172.25.254.111
www.a A 172.25.254.222
www CHAME www.a.westoslinux.com
westoslinux.com MX 1 172.25.254.1

systemctl restart named
mail [email protected]
ctrl+d 結束輸入
Linux學習筆記之DNS服務

反向解析
cd /var/named/
cp -p named.loopback westoslinux.com.ptr
vim /etc/name.rfc1912.zones
51 zone "254.25.172.in-addr.arpa" IN {
52 type master;
53 file "westoslinux.com.ptr";
54 allow-update { none; };
Linux學習筆記之DNS服務

vim /var/named/westoslinux.com.ptr
$TTL 1D
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 172.25.254.120
222 PTR www.westoslinux.com.
測試:dig -x 172.25.254.120

dns叢集,輔助dns

1.主dns配置
vim /etc/named.rfc1912.zones
新增
25 zone "westoslinux.com" IN {
26 type master;
27 file "westoslinux.com.zone";
28 allow-update { none; };
29 allow-transfer { 172.25.254.220; }; ##允許172.25.254.220同步本機A記錄檔案
};
2.輔助dns配置
vim /etc/named.conf ##此檔案內容和正向解析配置一致
11 listen-on port 53 { any; };
17 allow-query { any; };
32 dnssec-validation no;

vim /etc/named.rfc1912.zones
25 zone "westoslinux.com" IN {
26 type slave;
27 masters { 172.25.254.120; }; ##設定本機為輔助dns
28 file "slaves/westoslinux.com.zone"; ##A記錄檔案同步主機ip
29 allow-update { none; }; ##存放A記錄檔案的位置
};

3.測試
vim /etc/resolv.conf
nameserver 172.25.254.200
在slave主機的/var/named/slaves出現westos.com.zone,這是因為在從屬伺服器的/etc/named.rfc1912.zone中file "slaves/westos.com.zone",書寫所致。
##dns自動同步##
主dns下:vim /etc/rfc1912.zones
29 allow-transfer {172.25.254.220;};
30 also-notify { 172.25.254.220; };
Linux學習筆記之DNS服務

vim /var/named/westoslinux.com.zone
更改serial值,主dns重啟後,輔dns會自動同步
注意:serial值最多為十位,通常為年月日+更改次數
從屬伺服器,會根據serial值是否變化來判斷,是否要更新A記錄檔案。

輔dns更改主dns資訊

主dns下:
vim /etc/named.rfc1912.zones
28 allow-update { 172.25.254.220; };
systemctl restart named
cp -p westoslinux.com.zone /mnt/
chmod 770 /var/log/messages
setsebool -P named_write_master_zones 1

輔dns下:
[[email protected] slaves]# nsupdate

server 172.25.254.120
update add hello.westoslinux.com 86400 A 172.25.254.120
send> quit

Linux學習筆記之DNS服務

測試:
主dnsxia:
dig hello.westoslinux.com

通過金鑰用輔dns更改主dns資訊
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
##-b:密碼長度
-a:密碼型別
MD5:對稱加密
cat Kwestos.+157+44565.key
cp -p /etc/rndc.key /etc/westos.key

Linux學習筆記之DNS服務

vim /etc/westos.key

Linux學習筆記之DNS服務

vim /etc/named.conf
43 include "/etc/westos.key";
Linux學習筆記之DNS服務

vim /etc/named.rfc1912.zones
allow-update {key westos;};

Linux學習筆記之DNS服務

把密碼和鑰匙傳送給輔dns。
scp Kwestos.xxxxx.key Kwestos.+157+44565.* [email protected]:/mnt

Linux學習筆記之DNS服務

測試:
輔dns:
[[email protected] slaves]# nsupdate -k Kwestos.+157+44565.private

server 172.25.254.120
update add hello.westoslinux.com 86400 A 172.25.254.120
send> quit

Linux學習筆記之DNS服務

主dns:
dig hello.westos.com

DNS的動態解析
服務端:
vim /etc/dhcpd/dhcp.conf
7 name "westos.com"
8 name-servers 172.25.254.120
14 ddns-update-style interim;
subnet 172.25.254.0 netmask 255.255.255.0{
range172.25.254.231 172.25.254.244;
optionrouters 172.25.254.120;
}

key westos{
algorithmhmac-md5;
secert XXXXX;
};

zone westos.com. { ##通知DNS要更新dhcp變的ip
primary127.0.0.1; ##DHCP所在的伺服器,使用迴環更快
key westos; }

Linux學習筆記之DNS服務

客戶端:
網絡卡配置檔案
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.25.254.120
BOOTPROTP=dhcp
vim /etc/resolv.conf
nameserver 172.25.254.130
測試:
伺服器:
systemctl restart dhcpd
systemctl restart named
客戶端:
systemctl restart network
ifconfig
dig client.westos.com
client為主機名