人心不同 各如其面 如之奈何如之奈何
——引子
我們的目標很明了——構建一個具有根的、私有的DNS(Domain Name System)。
這里不會陳述太多關于DNS與BIND的基礎知識,如果您需要查看一些基礎性的文章,文章末尾附錄之中有傳送門。
上圖摘自《DNS與BIND》中文第四版。
上圖便是我們整個DNS系統的鳥瞰,您需要特別注意,由于我們整個過程需要啟動6個相互關聯的、位于GNU/linux操作系統上的DNS服務器,一個小小的失誤,極可能導致最終的失敗,所以,在接下來的“游戲”里,您應該時刻知道我們目前處于系統的哪個位置。
此次實驗共有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。
下面,我們便開始此次游歷。
Step root:
目前位置——服務器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_acl10 {11 none; # allow_recursion none12 };13 acl allow_transfer_acl14 {15 none;16 };17 acl allow_update_acl18 {19 none;20 };21 options22 {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; #master36 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.310 org. 600 IN NS dns-org-0.dns.org.11 dns-org-0.dns.org. 600 IN A 192.168.31.312 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_acl10 {11 none;12 };13 acl allow_transfer_acl14 {15 none;16 };17 acl allow_update_acl18 {19 none;20 };21 options22 {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; #hint35 file "root.cache"; #指定root DNS服務器的IP地址與FQDN36 };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.983 . 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.313 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.313 14 free.org. IN A 192.168.31.315 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_acl11 {12 none;13 };14 acl allow_transfer_acl15 {16 none;17 };18 acl allow_update_acl19 {20 none;21 };22 options23 {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 };View Code
# /var/named/root.cache
1 ; /var/named/root.cache2 . 518400 IN NS dns-0.dns.mil.3 dns-0.dns.mil. 3600000 IN A 192.168.31.984 . 518400 IN NS dns-1.dns.mil.5 dns-1.dns.mil. 3600000 IN A 192.168.31.98View Code
# /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 1D10 );11 12 eecs.cc. IN NS dns.eecs.cc.13 dns.eecs.cc. IN A 192.168.31.414 15 eecs.cc. IN A 192.168.31.416 mail.eecs.cc. IN A 192.168.31.417 www.eecs.cc. IN A 192.168.31.418 ftp.eecs.cc. IN A 192.168.31.419 cs.eecs.cc. IN A 192.168.31.4View Code
確認、啟動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_acl11 {12 none;13 };14 acl allow_transfer_acl15 {16 none;17 };18 acl allow_update_acl19 {20 none;21 };22 options23 {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 };View Code
# /var/named/root.cache
1 ; /var/named/root.cache2 . 518400 IN NS dns-0.dns.mil.3 dns-0.dns.mil. 3600000 IN A 192.168.31.984 . 518400 IN NS dns-1.dns.mil.5 dns-1.dns.mil. 3600000 IN A 192.168.31.98View Code
# /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 1D10 );11 12 just.org. IN NS dns.just.org.13 dns.just.org. IN A 192.168.31.514 15 www.just.org. IN A 192.168.31.516 mail.just.org. IN A 192.168.31.5View Code
確認、啟動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_acl10 {11 any; # allow_recursion any12 };13 acl allow_transfer_acl14 {15 none;16 };17 acl allow_update_acl18 {19 none;20 };21 options22 {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.cache2 . 518400 IN NS dns-0.dns.mil.3 dns-0.dns.mil. 3600000 IN A 192.168.31.984 . 518400 IN NS dns-1.dns.mil.5 dns-1.dns.mil. 3600000 IN A 192.168.31.98View Code
確認、啟動遞歸DNS服務。
至此,整個系統構建完成。
我們使用Clone 2主機對我們的DNS系統進行測試。
1.編輯/etc/resolv.conf文件,已達到設置系統默認nameserver的目的;
2.進行測試,結果如下圖:
附錄:
基礎資料傳送門:http://www.CUOXin.com/smilenana/p/3414077.htmlhttp://www.CUOXin.com/xiaoluo501395377/tag/CentOS/
新聞熱點
疑難解答