DNS架設實驗
-
實驗拓撲
-
實驗準備
-
流程
-
測試
-
總結
實驗拓撲:
1.對于來自內網的DNS正反向解析,并實現view選擇指定解析庫解析。
2.對于來自外網的DNS正向解析,并實現view選擇指定解析庫解析。
3.實現主從服務器結構。
4.實現一個完成對一個子域的授權。
5.子域中的所有查詢xiao.com.的信息都轉向192.168.1.1解析。
1.根據view,對外網發送的解析請求轉為解析為服務器對外IP。
2.根據view,對內網發送的解析請求轉為解析為服務器內網IP。
實驗準備
由于是虛擬機進行的實驗,所以在網絡架設階段遇到了困難,最后只有妥協下折中將ns1.xiao.com這臺機器增加網卡,配置兩個不同網段地址,開啟路由轉發,當作路由器來連接兩個網絡。
vim /etc/sysctl.conf net.ipv4.ip_forward = 1 修改為1 reboot
流程;
1.架設xiao.com的名稱服務器。
[root@xiao.comdns ~]# vim /etc/named.conf 配置named.conf文件。 acl LAN{ 192.168.1.0/24; }; 設置acl,此為內網網段的acl,表示內網網段內的所有IP。 acl WAN{ ! 192.168.1.0/24 ; any; }; 設置acl,此為外網網段的acl,表示除了內網網段外的所有IP。 options { listen-on port 53 { 192.168.1.1; 201.0.0.1; }; 監聽在192.168.1.1和201.0.0.1的53端口上。 directory "/var/named"; zone文件存放目錄。 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; // allow-query { localhost; }; 注釋掉查詢白名單,表示循序所有主機查詢。 recursion yes; 允許DNS服務器在不知道查詢主機的情況下,去像其他服務器做迭代查詢得到結果。 dnssec-enable no; 關閉安全審查機制。 dnssec-validation no; dnssec-lookaside no; /* Path to ISC DLV key */ // bindkeys-file "/etc/named.iscdlv.key"; 使用key來加密,注釋不使用。 // managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; };
–
[root@xiao.comdns ~]# vim /etc/named.rfc1912.zones 配置區域文件 // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // view "LAN" { view LAN范圍的開始,指定內網的區域設定。 match-clients { "LAN"; }; view LAN的應用對象,即指定此網段的請求都使用次范圍內的解析庫來解析。 zone "." IN { 根解析區域設定,一般文件自帶行。 type hint; file "named.ca"; }; zone "localhost.localdomain" IN { 本地回環解析區域設定,一般文件自帶行。 type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { 本地回環解析區域設定,一般文件自帶行。 type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { IPV6的本地回環區域設定,一般文件自帶行。 type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { 本地回環的區域解析庫的反向解析設定,一般文件自帶行。 type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "xiao.com" IN { 設定xiao.com的區域設定。 type master; 類型為主服務器。 file "xiao.com.zone"; 解析庫文件為/var/named/xiao.com.zone }; zone "1.168.192.in-addr.arpa" IN { 設定192.168.1.0網段的反向解析區域,格式為 [NETNUMBER反寫.in-addr.arpa]。 type master; 類型為主服務器。 file "192.168.1.zone"; 解析庫文件為/var/named/192.168.1.zone。 }; }; view LAN的范圍的結束 view "WAN" { view WAN范圍的開始,指定外網的區域設定。 match-clients { "WAN"; }; view WAN的應用對象,即指定此網段的請求都使用次范圍內的解析庫來解析。 zone "." IN { 根解析區域設定。 type hint; 設定類型為hint,即根區域。 file "named.ca"; 設定解析庫文件為named.ca }; zone "xiao.com" IN { 設定xiao.com區域。 type master; 類型為主服務器。 file "wanxiao.com.zone"; 文件為wanxiao.com.zone。 }; };
–
[root@xiao.comdns ~]# vim /var/named/xiao.com.zone 配置LAN的xiao.con.zone的解析庫。 $TTL 82400 設定TTL變量,指定當前所有的默認TTL(解析緩存存活時間)的值為82400 @ IN SOA xiao.com. admin.xiao.com. ( 設定SOA 1 1H 5M 1W 1M) @ IN NS ns1.xiao.com. 當前域的name server1 @ IN NS ns2.xiao.com. 當前域的name server2 ns1 IN A 192.168.1.1 NS1的地址,注意,地址與wan區域的IP的不同。 ns2 IN A 192.168.1.2 NS2的地址!。 www IN A 192.168.1.8 www主機的地址!。 ops IN NS ns1.ops.xiao.com. 子域的name server,子域授權。 ns1.ops IN A 192.168.1.3 子域的name server地址。
–
[root@xiao.comdns ~]# vim /var/named/wanxiao.com.zone 配置WAN的xiao.con.zone的解析庫。 $TTL 82400 @ IN SOA xiao.com. admin.xiao.com. ( 設定SOA 0 1H 5M 1W 1D ) IN NS ns2.xiao.com. 當前域的name server1 IN NS ns1.xiao.com. 當前域的name server2 ns1 IN A 201.0.0.1 NS1的地址,注意,地址與lan區域的IP的不同。 ns2 IN A 201.0.0.2 NS2的地址!。 www IN A 201.0.0.3 www主機的地址!。 ops IN NS ns1.ops.xiao.com. 子域的name server,子域授權。 ns1.ops IN A 192.168.1.3 子域的name server地址。
–
[root@xiao.comdns ~]# vim /var/named/192.168.1.zone 配置反向解析庫文件。 $TTL 824000 @ IN SOA xiao.com. admin.xiao.com. ( 設定SOA 3 1H 5M 1W 5M ) IN NS ns1.xiao.com. IN NS ns2.xiao.com. 1 IN PTR ns1.xiao.com. PTR反向解析中的192.168.1.1的對應的域名。 2 IN PTR ns2.xiao.com. PTR反向解析中的192.168.1.2的對應的域名。 8 IN PTR www.xiao.com PTR反向解析中的192.168.1.8的對應的域名。 [root@xiao.comdns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改權限。 [root@xiao.comdns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改屬組。
2.架設與xiao.com的從服務器。
[root@salves.dns ~]# vim /etc/named.conf 配置named.conf acl LAN{ 192.168.1.0/24; }; 設定acl acl WAN{ ! 192.168.1.0/24;any;}; 設定acl options { 與服務器設定基本一致。 listen-on port 53 { 192.168.1.2; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable no; dnssec-validation no; // dnssec-lookaside auto; // bindkeys-file "/etc/named.iscdlv.key"; // managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; };
–
[root@salves.dns ~]# vim /etc/named.rfc1912.zones 配置區域文件,只需在結尾加上以下內容。 view LAN{ match-clients { "LAN" ;}; view一定要和主服務器保持一致??! ... zone "xiao.com" IN { 配置正向解析xiao.com區域 type slave; 指定類型為從服務器。 masters { 192.168.1.1; }; 指定主服務器地址。 file "slaves/xiao.com.zone"; 指定同步后存放的文件路徑。 }; zone "1.168.192.in-addr.arpa" IN { 配置反向解析1.168.192.in-addr.arpa的區域。 type slave; 指定類型為從服務器。 masters { 192.168.1.1; }; 指定主服務器地址。 file "slaves/192.168.1.zone"; 指定同步后存放的文件路徑,不同view需要存放不同的名稱。 }; }; view WAN{ view一定要和主服務器保持一致!! match-clients {"WAN"; }; zone "." IN { type hint; file "named.ca"; }; zone "wanxiao.com" IN { type slave; masters { 192.168.1.1;}; file "slaves/wanxiao.com.zone"; 指定同步后存放的文件路徑,不同view需要存放不同的名稱。 }; }; [root@salves.dns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改權限。 [root@salves.dns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改屬組。
–
設定完成之后即可通過日志文件查或者指定文件路徑中的/var/named/slaves中看到同步的解析庫文。 [root@salves.dns ~]# ll /var/named/slaves/ 192.168.1.zone xiao.com.zone 可以看到已經同步到指定路徑下了。
3.架設子域ops.xiao.com名稱服務器,設定轉發服務。
架設子域服務器即和普通的name server一樣即可,下面簡要的略過,僅對轉發功能的設定做解釋。 [root@ops.xiao ~]# vim /etc/named.rfc1912.zones ... zone "ops.xiao.com" IN { type master; file "ops.xiao.com.zone"; }; zone "xiao.com" IN { xiao.com區域的解析設定。 type forward; 設定為轉發類型。 forward only; 設定為only,將所有xiao.com的查詢都轉發。 還可以設置為first,即如果指定dns不回應,則本機去迭代完成查詢。 forwarders { 192.168.1.1; }; }; }; [root@ops.xiao ~]# vim /var/named/ops.xiao.com.zone $TTL 82400 @ IN SOA ops.xiao.com. admin.ops.xiao.com. ( 0 1H 5M 1W 5M ) IN NS ns1.ops.xiao.com. ns1 IN A 192.168.1.3 www IN A 192.168.1.4 [root@salves.dns ~]# chmod 640 /var/named/ops.xiao.com.zone 更改權限。 [root@salves.dns ~]# chown :named /var/named/ops.xiao.com.zone 更改屬組。
其實子域就是我們的name server,比如說我們這里的父域xiao.com.其實是.com.的子域,所以如果有需要完全可以在ops.xiao.com這個域上使用其他上述的技術,view,主從等。
測試
通過192.168.1.3測試正向解析。 [root@ops.xiao ~]# host -t A www.xiao.com 192.168.1.1 正向解析測試。 Using domain server: Name: 192.168.1.1 Address: 192.168.1.1#53 Aliases: www.xiao.com has address 192.168.1.8 查詢得知www.xiao.com的IP為192.168.1.8
–
通過192.168.1.3測試反向解析。 [root@ops.xiao ~]# host -t PTR 192.168.1.8 192.168.1.1 反向查詢測試。 Using domain server: Name: 192.168.1.1 Address: 192.168.1.1#53 Aliases: 8.1.168.192.in-addr.arpa domain name pointer www.xiao.com.1.168.192.in-addr.arpa. 查詢得知192.168.1.8的域名為www.xiao.com
–
通過192.168.1.3測試主從輪詢。 [root@ops.xiao ~]# dig -t A www.xiao.com @192.168.1.1 dig命令的功能與host類型,但是能夠更加清楚的顯示信息,這里查看主從服務器輪詢情況。 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46131 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 82400 IN A 192.168.1.8 ;; AUTHORITY SECTION: xiao.com. 82400 IN NS ns2.xiao.com. 輪詢切換NS2 xiao.com. 82400 IN NS ns1.xiao.com. 輪詢切換NS1 ;; ADDITIONAL SECTION: ns1.xiao.com. 82400 IN A 192.168.1.1 ns2.xiao.com. 82400 IN A 192.168.1.2 ;; Query time: 0 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: 四 4月 14 16:52:17 CST 2016 ;; MSG SIZE rcvd: 125
–
通過192.168.1.1測試子域設定。 [root@xiao.comdns ~]# host -t A www.ops.xiao.com 192.168.1.2: 子域查詢測試。 Using domain server: Name: 192.168.1.2 Address: 192.168.1.2#53 Aliases: www.ops.xiao.com has address 192.168.1.4
–
通過201.0.0.10測試view [root@wan-test ~]# dig -t A www.xiao.com @201.0.0.1 view測試實現智能DNS測試。 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @201.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7535 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 82400 IN A 201.0.0.3 可以看到返回的ip為201.0.0.3 ;; AUTHORITY SECTION: xiao.com. 82400 IN NS ns1.xiao.com. xiao.com. 82400 IN NS ns2.xiao.com. ;; ADDITIONAL SECTION: ns2.xiao.com. 82400 IN A 201.0.0.2 NS1的ip 201.0.0.2 ns1.xiao.com. 82400 IN A 201.0.0.1 NS2的ip 201.0.0.1 ;; Query time: 0 msec ;; SERVER: 201.0.0.1#53(201.0.0.1) ;; WHEN: Thu Apr 14 20:05:50 CST 2016 ;; MSG SIZE rcvd: 125
–
通過192.168.1.4測試forward [root@wan-test ~]# dig -t A www.xiao.com @192.168.1.3 forward測試 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.3 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40723 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 71029 IN A 192.168.1.8 查詢結果。 ;; AUTHORITY SECTION: xiao.com. 71029 IN NS ns2.xiao.com. 通過轉發到了192.168.1.1查詢 xiao.com. 71029 IN NS ns1.xiao.com. ;; ADDITIONAL SECTION: ns1.xiao.com. 71029 IN A 192.168.1.1 ns2.xiao.com. 71029 IN A 192.168.1.2 ;; Query time: 1 msec ;; SERVER: 192.168.1.3#53(192.168.1.3) 使用的DNS地址 ;; WHEN: Thu Apr 14 20:12:38 CST 2016 ;; MSG SIZE rcvd: 125
總結
問題解決:
1.在搭建中遇到了死活無法通過192.168.1.2查詢到子域,先確定是由于主從同步沒有進行的問題,然后發現view在從服務器上沒有配置,接著發現由于是內網環境不能上網,不知道什么原因導致時間不一致,而無法同步,解決以上問題解決無法同步。
2.出現無法使用指定DNS查詢,但是在DNS服務器上卻可以,最后發現是因為iptables沒有配置而造成的問題。
3.出現了各種錯誤,通過查詢日志可以得到很好的線索和答案,大部分都是因為語法或者不注意而造成的。
未解決問題:
因為此實驗是在虛擬機的環境下搭建的,所以基于網絡架設比較不便,就將子域設為了內網下的一個子域,在做子域的view時遇到了由于是內網子域,所以導致外網訪問子域下的域名主機時,無法識別,但是如果不設定,返回的只能是內網下的192.168.1.0網段的IP,很樂意有有人能幫助我解答這個疑問。
原創文章,作者:Net18_肖肖,如若轉載,請注明出處:http://www.www58058.com/14854
有實戰,有總結,贊,圖很專業