一、從屬dns
在網絡越來越發達的時代,若dns出現問題,則整個網絡均會處於癱瘓的狀態,爲了緩解dns的巨大壓力,所以出現了主從dns服務器。
dns利用類似於樹形目錄的架構,將主機名的管理分配在不同的層級的dns服務器中,並進行分層管理,所以每一臺dns服務器記憶的信息就不會很多,而且若有ip的變動時也相對來說更容易修改。
##開啓第二臺虛擬機,作出以下策略。
1、配置yum源。
2、yum install bind -y
3、systemctl stop firewalld
4、systemctl disable firewalld
5、systemctl start named
6、systemctl enable named
##配置好從屬dns後.
vim /etc/named.conf
10 options {
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { any; };
vim /etc/named.rfc1912.zones
24 zone "westos.com" IN {
25 type slave; ##類型爲從屬dns
26 masters {172.25.254.173;}; ##主dns爲172.25.254.173
27 file "slavec/westos.com.inter"; ##文件爲172.25.254.173的westos.com.inter
28 allow-update { none; }; ##沒有人可以進行更新
29 };
主dns服務器:
因爲在主dns服務器上設置過雙向解析的實驗,所以以下實驗均在外網的配置文件中實現。
vim /etc/named.rfc1912.zones.inter
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.inter";
27 allow-update { none; };
28 also-notify {172.25.254.71;}; ##更新知會71從屬dns服務器。
29 };
在主dns與從屬dns上,如果將主dns中文件進行了改變,在從屬dns服務器上若必須進行重啓服務的行爲,則是一種非常麻煩的行爲,所以可以在雙方的配置文件中進行配置,在主dns上改變了相應的文件,從屬dns是在不用重啓服務的情況下,直接進行文件的更新。在此在配置文件中有一個非常重要的參數,(serial)。每次在將主dns上的配置文件改變是,必須將serial參數進行相應的改變,從屬dns纔會有對配置文件的更新,此參數的最大數值爲10位數,所以可將此數改爲2017112701,表示爲2017年11月27號文件的第一次改動,會更加方便管理。
改變主dns服務器上westos.com.inter文件的內容。
對主dns進行重啓服務,systemctl restart named
測試:
###理論上講,在從屬dns上的/var/named/slaves/目錄中應該有主dns的westos.com.inter文件,但若沒有出現,則或許是selinux,權限的問題。
####在進行以下實驗時,注意將主dns上的文件westos.com.inter進行復制一份,因爲在進行以下實驗時,若在主dns上將服務重啓後,改文件會進行相應的改變,爲了方便下次實驗的進行,最好將該文件複製一份,在複製時,注意加上-p,
二、dns的遠程更新
在dns服務器上修改配置文件
vim /etc/named.rfc1912.zones.inter
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.inter";
27 allow-update { 172.25.254.71; }; ##允許172.25.254.71主機進行遠程更新
28 also-notify {172.25.254.71;};
29 };
重啓服務systemctl restart named
測試:##此時測試時會出現問題,注意日誌的報錯。
[root@slave slaves]# nsupdate
> server 172.25.254.173
> update add bbs.westos.com 86400 A 1.1.1.116
> send
update failed: REFUSED
日誌報錯爲:文件權限不夠,被拒絕
解決方法:chmod g+w /var/named
重新測試:
[root@slave slaves]# nsupdate
> server 172.25.254.173
> update add bbs.westos.com 86400 A 1.1.1.116
> send
在主dns上重啓服務後,westos.com.intet被改變爲:
三、key的製作
遠程更新的ip是可以被別的主機進行冒充,會造成不安全的行爲所以在此製作一個key,將公鑰與私鑰傳給需要遠程更新的主機。
1、製作key
cp -p /etc/rndc.key /etc/zhaoyan.key
2、[root@server named]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST zhaoyan
Kzhaoyan.+157+38425
3、改變/etc/zhaoyan/key 中的內容
1 key "zhaoyan" {
2 algorithm hmac-md5;
3 secret "7DZwUW8TwNC4GYeblR0vPQ==";
4 };
4、改變/etc/named.conf文件中的內容
將所建成的公鑰私鑰傳給遠程更新的主機
scp Kzhaoyan.+157+38425.* [email protected]:/mnt/
5、重啓服務
測試:
[root@desktop mnt]# nsupdate -k Kzhaoyan.+157+38425.key
> server 172.25.254.173
> update delete bbs.westos.com
> send
>
四、動態ip的遠程更新
(要進行遠程更新主機與域名必須一致,本次實驗爲www.westos.com)
上述的遠程的更新的ip是靜態的,但也是一種不安全的行爲,若其他主機將ip改爲配置文件中允許遠程更新的ip,是一種非常不安全的行爲,若可進行遠程更新的主機是一個動態獲取ip,在每次重啓網絡服務時就會改變ip,更加不利於管理。此時,將dhcp與dns進行一種結合,會是一種非常明智的行爲.
1、下載dhcp服務
2、修改配置文件
3、先做好dhcpd服務
vim /etc/dhcp/dhcpd.conf
7 option domain-name "westos.com"; ##域名爲westos.com
8 option domain-name-servers 172.25.254.173; ##dns爲172.25.254.173
30 subnet 172.25.254.0 netmask 255.255.255.0 {
31 range 172.25.254.190 172.25.254.200; ##要使ip在此範圍內
32 option routers 172.25.254.173; ##網關爲172.25.254.173
33 }
重啓服務:
此時應已經可以實現dhcp的動態獲取
但與dns並沒有關聯,通過man得知interim的使用
在/etc/dhcp/dhcpd.conf文件中修改配置文件
此時要遠程更新的鑰匙是不用給對應的主機了,在dns服務器上是知道此ip與鑰匙的。
34 key zhaoyan {
35 algorithm hmac-md5;
36 secret "Ki9lzMIPZJOLSGoxQMaJgg==";
37 };
38
39 zone westos.com. {
40 primary 127.0.0.1; ##使用dns服務器內部的傳輸,速度會有很大的提升
41 key zhaoyan;
42 }
此時打開另一臺虛擬機,將ip的配置文件改爲dhcp動態獲取模式,並且關閉除了dns服務器之外其他所有的dhcp服務,以免造成干擾,然後在這臺虛擬機上重啓網絡服務。
測試結果:
動態獲取的結果:
dns服務器監控結果:
###總結:在dns的所有配置中,有報錯,基本會有以下幾點。
1、 NXDOMAIN 證明在dns服務器上沒有此域名
2、SERFAIL :
(1)、本機沒有做本地解析文件,出現失敗的報錯
(2)、dns服務器上沒有關閉firewalld
(3)、dns服務器上沒有關閉selinux
(4)、實驗中經常會出現cp文件,沒有加-p參數,使得權限出現了問題。
##排錯思想均爲連接出現失敗時,清空日誌,重新連接,找出錯誤原因,大部分原因均是打錯行爲,尤其是在name.localname文件複製過去後,重新編輯此文件,注意此文件中@的用法,很重要!!!