人心不一樣 各如其面 如之奈何 如之奈何html
——引子服務器
咱們的目標很明瞭——構建一個具備根的、私有的DNS(Domain Name System)。網絡
這裏不會陳述太多關於DNS與BIND的基礎知識,若是您須要查看一些基礎性的文章,文章末尾附錄之中有傳送門。ide
上圖摘自《DNS與BIND》中文第四版。測試
上圖即是咱們整個DNS系統的鳥瞰,您須要特別注意,因爲咱們整個過程須要啓動6個相互關聯的、位於GNU/Linux操做系統上的DNS服務器,一個小小的失誤,很可能致使最終的失敗,因此,在接下來的「遊戲」裏,您應該時刻知道咱們目前處於系統的哪一個位置。spa
這次實驗共有6臺服務器參與,他們皆位於VMnet2:192.168.31.0/24網絡中,固然,若是加上Host主機,就是7臺。操作系統
Host主機的IP地址默認爲192.168.31.1,咱們將Clone 1的IP設置爲192.168.31.98,他將擔負根DNS服務器的職責。Clone 2至Clone 6便直接對應設置爲192.168.31.2依次至192.168.31.6。3d
下面,咱們便開始這次遊歷。code
Step root:server
目前位置——服務器Clone 1,192.168.31.98,職能爲根DNS服務器。
各配置文件以下。
# /etc/named.conf
1 acl listen_acl 2 { 3 any; 4 }; 5 acl allow_query_acl 6 { 7 any; 8 }; 9 acl allow_recursion_acl 10 { 11 none; # allow_recursion none 12 }; 13 acl allow_transfer_acl 14 { 15 none; 16 }; 17 acl allow_update_acl 18 { 19 none; 20 }; 21 options 22 { 23 listen-on port 53 { listen_acl; }; 24 directory "/var/named"; 25 dump-file "/var/named/data/cache_dump.db"; 26 statistics-file "/var/named/data/named_stats.txt"; 27 memstatistics-file "/var/named/data/named_mem_stats.txt"; 28 allow-query { allow_query_acl; }; 29 allow-recursion { allow_recursion_acl; }; 30 allow-transfer { allow_transfer_acl; }; 31 allow-update { allow_update_acl; }; 32 }; 33 34 zone "." IN { 35 type master; #master 36 file "root.zone"; 37 };
# /var/named/root.zone
1 . 86286 IN SOA dns-0.dns.mil. dns.mail.dns.mil. 2014031100 1800 900 604800 86400 2 3 . 518400 IN NS dns-0.dns.mil. 4 dns-0.dns.mil. 3600000 IN A 192.168.31.98 5 . 518400 IN NS dns-1.dns.mil. 6 dns-1.dns.mil. 3600000 IN A 192.168.31.98 7 8 cc. 600 IN NS dns-cc-0.dns.cc. 9 dns-cc-0.dns.cc. 600 IN A 192.168.31.3 10 org. 600 IN NS dns-org-0.dns.org. 11 dns-org-0.dns.org. 600 IN A 192.168.31.3 12 13 ;根域劃分 子域受權
確認、啓動根DNS服務。
Step cc & Step org:
目前位置——頂級域DNS服務器Clone 3,192.168.31.3,咱們將cc與org域的DNS服務皆放在Clone 3服務器上,其將擔負頂級域DNS服務器的職能。
各配置文件以下。
# /etc/named.conf
1 acl listen_acl 2 { 3 any; 4 }; 5 acl allow_query_acl 6 { 7 any; 8 }; 9 acl allow_recursion_acl 10 { 11 none; 12 }; 13 acl allow_transfer_acl 14 { 15 none; 16 }; 17 acl allow_update_acl 18 { 19 none; 20 }; 21 options 22 { 23 listen-on port 53 { listen_acl; }; 24 directory "/var/named"; 25 dump-file "/var/named/data/cache_dump.db"; 26 statistics-file "/var/named/data/named_stats.txt"; 27 memstatistics-file "/var/named/data/named_mem_stats.txt"; 28 allow-query { allow_query_acl; }; 29 allow-recursion { allow_recursion_acl; }; 30 allow-transfer { allow_transfer_acl; }; 31 allow-update { allow_update_acl; }; 32 }; 33 zone "." IN { 34 type hint; #hint 35 file "root.cache"; #指定root DNS服務器的IP地址與FQDN 36 }; 37 zone "cc" IN { 38 type master; 39 file "cc.zone"; 40 }; 41 zone "org" IN { 42 type master; 43 file "org.zone"; 44 };
# /var/named/root.cache
1 . 518400 IN NS dns-0.dns.mil. 2 dns-0.dns.mil. 3600000 IN A 192.168.31.98 3 . 518400 IN NS dns-1.dns.mil. 4 dns-1.dns.mil. 3600000 IN A 192.168.31.98
# /var/named/cc.zone
1 $TTL 600 2 3 cc. IN SOA dns-cc-0.dns.cc. dns-cc.mail.dns.cc. ( 4 2014031001 5 3H 6 15M 7 3D 8 1D 9 ); 10 11 cc. IN NS dns-cc-0.dns.cc. 12 dns-cc-0.dns.cc. IN A 192.168.31.3 13 14 eecs.cc. IN NS dns.eecs.cc. 15 dns.eecs.cc. IN A 192.168.31.4
# /var/named/org.zone
1 $TTL 600 2 3 org. IN SOA dns-org-0.dns.org. dns-org.mail.dns.org. ( 4 2014031001 5 3H 6 15M 7 3D 8 1D 9 ); 10 11 org. IN NS dns-org-0.dns.org. 12 dns-org-0.dns.org. IN A 192.168.31.3 13 14 free.org. IN A 192.168.31.3 15 16 just.org. IN NS dns.just.org. 17 dns.just.org. IN A 192.168.31.5
確認、啓動頂級域DNS服務。
Step eecs.cc:
目前位置——eecs.cc域DNS服務器Clone4,192.168.31.4。
各配置文件以下。
# /etc/named.conf
1 # /etc/named.conf 2 acl listen_acl 3 { 4 any; 5 }; 6 acl allow_query_acl 7 { 8 any; 9 }; 10 acl allow_recursion_acl 11 { 12 none; 13 }; 14 acl allow_transfer_acl 15 { 16 none; 17 }; 18 acl allow_update_acl 19 { 20 none; 21 }; 22 options 23 { 24 listen-on port 53 { listen_acl; }; 25 directory "/var/named"; 26 dump-file "/var/named/data/cache_dump.db"; 27 statistics-file "/var/named/data/named_stats.txt"; 28 memstatistics-file "/var/named/data/named_mem_stats.txt"; 29 allow-query { allow_query_acl; }; 30 allow-recursion { allow_recursion_acl; }; 31 allow-transfer { allow_transfer_acl; }; 32 allow-update { allow_update_acl; }; 33 }; 34 35 zone "." IN { 36 type hint; 37 file "root.cache"; 38 }; 39 zone "eecs.cc" IN { 40 type master; 41 file "eecs.cc.zone"; 42 };
# /var/named/root.cache
1 ; /var/named/root.cache 2 . 518400 IN NS dns-0.dns.mil. 3 dns-0.dns.mil. 3600000 IN A 192.168.31.98 4 . 518400 IN NS dns-1.dns.mil. 5 dns-1.dns.mil. 3600000 IN A 192.168.31.98
# /var/named/eecs.cc.zone
1 ; /var/named/eecs.cc.zone 2 $TTL 600 3 4 eecs.cc. IN SOA dns.eecs.cc. dns.mail.eecs.cc. ( 5 2014031001 6 3H 7 15M 8 3D 9 1D 10 ); 11 12 eecs.cc. IN NS dns.eecs.cc. 13 dns.eecs.cc. IN A 192.168.31.4 14 15 eecs.cc. IN A 192.168.31.4 16 mail.eecs.cc. IN A 192.168.31.4 17 www.eecs.cc. IN A 192.168.31.4 18 ftp.eecs.cc. IN A 192.168.31.4 19 cs.eecs.cc. IN A 192.168.31.4
確認、啓動eecs.cc域DNS服務。
Step just.org:
目前位置——just.org域DNS服務器Clone 5,192.168.31.5。
各配置文件以下。
# /etc/named.conf
1 # /etc/named.conf 2 acl listen_acl 3 { 4 any; 5 }; 6 acl allow_query_acl 7 { 8 any; 9 }; 10 acl allow_recursion_acl 11 { 12 none; 13 }; 14 acl allow_transfer_acl 15 { 16 none; 17 }; 18 acl allow_update_acl 19 { 20 none; 21 }; 22 options 23 { 24 listen-on port 53 { listen_acl; }; 25 directory "/var/named"; 26 dump-file "/var/named/data/cache_dump.db"; 27 statistics-file "/var/named/data/named_stats.txt"; 28 memstatistics-file "/var/named/data/named_mem_stats.txt"; 29 allow-query { allow_query_acl; }; 30 allow-recursion { allow_recursion_acl; }; 31 allow-transfer { allow_transfer_acl; }; 32 allow-update { allow_update_acl; }; 33 }; 34 35 zone "." IN { 36 type hint; 37 file "root.cache"; 38 }; 39 zone "just.org" IN { 40 type master; 41 file "just.org.zone"; 42 };
# /var/named/root.cache
1 ; /var/named/root.cache 2 . 518400 IN NS dns-0.dns.mil. 3 dns-0.dns.mil. 3600000 IN A 192.168.31.98 4 . 518400 IN NS dns-1.dns.mil. 5 dns-1.dns.mil. 3600000 IN A 192.168.31.98
# /var/named/just.org.zone
1 ; /var/named/just.org.zone 2 $TTL 600 3 4 just.org. IN SOA dns.just.org. dns.mail.just.org. ( 5 2014031001 6 3H 7 15M 8 3D 9 1D 10 ); 11 12 just.org. IN NS dns.just.org. 13 dns.just.org. IN A 192.168.31.5 14 15 www.just.org. IN A 192.168.31.5 16 mail.just.org. IN A 192.168.31.5
確認、啓動just.org域DNS服務。
Step DNS Server:
目前位置——遞歸DNS服務器Clone 6,192.168.31.6,此服務器直接向用戶提供DNS服務。
各配置文件以下。
# /etc/named.conf
1 acl listen_acl 2 { 3 any; 4 }; 5 acl allow_query_acl 6 { 7 any; 8 }; 9 acl allow_recursion_acl 10 { 11 any; # allow_recursion any 12 }; 13 acl allow_transfer_acl 14 { 15 none; 16 }; 17 acl allow_update_acl 18 { 19 none; 20 }; 21 options 22 { 23 listen-on port 53 { listen_acl; }; 24 directory "/var/named"; 25 dump-file "/var/named/data/cache_dump.db"; 26 statistics-file "/var/named/data/named_stats.txt"; 27 memstatistics-file "/var/named/data/named_mem_stats.txt"; 28 allow-query { allow_query_acl; }; 29 allow-recursion { allow_recursion_acl; }; 30 allow-transfer { allow_transfer_acl; }; 31 allow-update { allow_update_acl; }; 32 33 }; 34 35 zone "." IN { 36 type hint; 37 file "root.cache"; 38 };
# /var/named/root.cache
1 ; /var/named/root.cache 2 . 518400 IN NS dns-0.dns.mil. 3 dns-0.dns.mil. 3600000 IN A 192.168.31.98 4 . 518400 IN NS dns-1.dns.mil. 5 dns-1.dns.mil. 3600000 IN A 192.168.31.98
確認、啓動遞歸DNS服務。
至此,整個系統構建完成。
咱們使用Clone 2主機對咱們的DNS系統進行測試。
1.編輯/etc/resolv.conf文件,已達到設置系統默認nameserver的目的;
2.進行測試,結果以下圖:
附錄:
基礎資料傳送門:http://www.cnblogs.com/smilenana/p/3414077.html http://www.cnblogs.com/xiaoluo501395377/tag/CentOS/