DNS以及域名分發布式數據庫相關知識
一、 DNS相關介紹
1. DNS(Domain Name Service):域名解析服務協議
2. 通常監聽段脫口:UDP:53 和 TCP: 53
3. 實現應用程序:BIND(Berkeley Internet Name Domain), PowerDNS, etc
4. DNS服務主要工作于域名解析分布式數據庫, 用來做域名IP之間的解析
二、 域名分布式數據庫
1. 根域:.
2. 一級域: 組織域(.com .org .mil ; 國家域 (.cn, .tw .jp .us); 反向域 (.in-addr.arpa )
3. 解析方式:
- FQDN (Full Qualified Domain Name) –> IP : 正向解析
- IP –> FQDN:反向解析
4. 遞歸與迭代
- 遞歸:DNS請求被服務器接收后,如果屬于此服務器管轄范圍則請求上級服務器依次傳遞請求,并且依次傳遞結果給發出請求的主機??蛻魴C指向的服務器一定給遞歸服務。
- 迭代: DNS請求被服務器接收后,如果不是自己管轄范圍,讓客戶端訪問根域服務器,然后跟域通知客戶端去訪問下級服務器,直到最后客戶端訪問管轄請求域名的服務器為止。
5. 資源記錄(Resource Record):資源記錄用用于存儲域名解析數據記錄, 幾種記錄類型如下
- SOA:Start Of Authority, 其實授權:用于聲明本地域被授權
- NS:Name Server, 域名服務器:用于記錄域名服務器信息
- MX:Mail eXchanger,郵件交換器:記錄郵件服務器信息
-
A:Address, FQDN –> IP
- PTR:PoiTeR,IP –> FQDN
- AAAA:Address, FQDN –> IPv6
- CNAME: Canonical Name, 咩名記錄
6. 域(Domain) 和 區域(zone)
- 域(Domain):邏輯概念
- 區域(zone):物理概念,特指存儲資源記錄的硬件設備,如文本文件,或者數據庫
- 正向區域和反向區域域不能存儲在一個文件或者數據庫中,由于解析技術不同
7. DNS服務器類型
- 主DNS服務器
- 從DNS服務器
- 緩存名稱服務器
8. DNS數據文件格式(bind為例):文本文件,包含資源記錄或宏定義
- 資源記錄格格式
資源記錄的格式: name [ttl] IN RRtype Value 例子: www 600 IN A 1.2.3.4 www.playground.com. 600 IN A 1.2.3.4
- SOA記錄
SOA: 只能有一個 name: 區域名稱, 通??梢院唽憺锧,例如:magedu.com. value: 主DNS服務器的FQDN 注意:SOA必須是區域數據庫文件第一條記錄 例子:@ 600 IN SOA ns.playground.com. dnsadmin.playground. ( serial number ;序列號,十進制數字,不能超過10位,通常使用日期,例如2014031001 refresh time ;刷新時間,即每隔多久到主服務器檢查一次 retry time ;重試時間,應該小于refresh time expire time ;過期時間 negative answer ttl ;否定答案的ttl )
- NS記錄
NS:可以有多條 name: 區域名稱,通常可以簡寫為@ value: DNS服務器的FQDN(可以使用相對名稱) 例子:
@ 600 IN NS ns
- A記錄
A: 只能定義在正向區域數據庫文件中 name: FQDN(可以使用相對名稱) value: IP 例子: www 600 IN A 1.2.3.4 www 600 IN A 1.2.3.5 www 600 IN A 1.2.3.4 ftp 600 IN A 1.2.3.4
- MX記錄
MX: 可以有多個 name: 區域名稱,用于標識smtp服務器 value: 包含優先級和FQDN 優先級:0-99, 數字越小,級別越高; 例子:
@ 600 IN MX 10 mail
@ 600 IN MX 20 mail2
- CNAME記錄
CNAME: name: FQDN value: FQDN
例子: ftp IN CNAME www mail IN CNAME www
- PTR記錄格式
PTR: IP-->FQDN, 只能定義在反向區域數據文件中,反向區域名稱為逆向網絡地址加.in-addr.arpa.后綴組成 name: IP, 逆向的主機地址,例如172.16.100.7的name為7.100,完全格式為7.100.16.172.in-addr.arpa. value: FQDN 例子: 4.3.2 600 IN PTR www.playground.com.
9. 區域傳送:
- 輔助DNS服務器從主DNS服務器或其他輔助DNS服務器請求傳輸數據的過程
- 完全區域傳送:傳送區域的所有數據,AXFER
- 增量區域傳送:傳送區域中改變的數據不符,IXFER
DNS程序軟件bind簡介
一、 BIND簡介
1. BIND: www.isc.org
2. 服務程序名稱: named, 由named:named 執行
3. bind安裝包組
bind.x86_64 : 包含bind應用程序 bind-chroot.x86_64 : 支持change root 機制 bind-devel.i686 : 32bit bind開發包 bind-devel.x86_64 : 64bit bind開發包 bind-dyndb-ldap.x86_64 : 支持動態數據庫 bind-libs.i686 : bind相關庫文件 bind-libs.x86_64 : 64bit 庫文件 bind-sdb.x86_64 : 支持數據庫接口 bind-to-tinydns.x86_64 : 微型DNS服務器程序 bind-utils.x86_64 : 工具包
二、主配置文件和區域文件 /etc/named.conf, /var/named/
1. 必須的三個區域: 跟 . localhost 127.0.0.1
主配置文件: options { // 全局選項 }; zone "ZONE name" { // 定義區域 }; logging { // 定義日志系統 };
2. 域類型
- hint:緩存域,用于緩存服務器
- master:主域,用于主服務器
- slave:從域,用于從服務器
- forward:轉發域
三、 named服務正向以及反向解析事例
舉例: 添加正向域域.playground 和 反向域233.168.192.in-addr.arpa
mail, 192.168.98.12
www 192.168.98.13
pop –> mail
ftp –> www
dns: 192.168.233.128
1. 編輯主配置文件
options { # listen-on port 53 { 127.0.0.1; }; # 注釋后監聽所有ip的53號端口 # listen-on-v6 port 53 { ::1; }; # 注釋后監聽所有ipv5的53號端口 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 { 127.0.0.1; 192.168.233.128; 192.168.233.131; }; # 允許訪問的白名單,注釋后允許所有IP訪問 recursion yes; # 是否提供遞歸 # dnssec-enable yes; # dnssec-validation yes; # dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; # 讀取的域文件信息 #include "/etc/named.root.key"; # 與遠程操控相關
2. 添加新的域 .playground.com于/etc/named.rfc1912.zones 中
## 添加正向區域
zone "playground.com" IN { type master; file "playground.zone"; };
## 添加反向區域
zone "98.168.192.in-addr.arpa" IN { type master; file "192.168.98.zone"; };
3. 編輯區域文件
## 在/var/named/編輯正向區域文件保存為 playground.zone, 與配置文件中輸入的文件名一致
$TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com. ( 20150305 1H 5M 3D 12H ) @ IN NS dns @ IN MX 10 mail dns IN A 192.168.233.128 mail IN A 192.168.98.12 www IN A 192.168.98.13 ftp IN CNAME www pop IN CNAME www
## 在/var/named/編輯反向區域文件保存為 192.168.233.zone, 與配置文件中輸入的文件名一直
$TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com.( 20150305 1H 5M 3D 12H ) @ IN NS dns.playground.com. 128 IN PTR dns.playground.com. 12 IN PTR mail.playground.com. 13 IN PTR www.playground.com. ns IN A 192.158.98.128 mail IN A 192.168.98.12 www IN A 192.168.98.13
4. 修改配置文件屬組屬組為named:named, 權限位640
## 如果不修改屬主屬組,named將無法讀取配置文件,由于named服務是通過named用戶啟動 chown named:named /etc/named.rfc1912.zones chown named:named /etc/named.conf ## 修改配置文件權限,主要為了安全,即便named服務被攻破,也不至于重要信息泄露 chmod 640 /etc/named.conf chmod 640 /etc/named.rfc1912.zones
chown named:named /var/named/playground.zone chmod 640 /var/named/playground.zone
5. 啟動服務,查看TCP/UDP 53號端口是否被監聽, 查看/var/log/message
ss -tunl | grep ":53"
udp UNCONN 0 0 192.168.233.128:53 *:* udp UNCONN 0 0 172.25.137.40:53 *:* udp UNCONN 0 0 127.0.0.1:53 *:* tcp LISTEN 0 3 192.168.233.128:53 *:* tcp LISTEN 0 3 172.25.137.40:53 *:* tcp LISTEN 0 3 127.0.0.1:53 *:*
service named configtest ## 測試配置文件語法是否正確 zone localhost.localdomain/IN: loaded serial 0 zone localhost/IN: loaded serial 0 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: loaded serial 0 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 zone 0.in-addr.arpa/IN: loaded serial 0 zone playground.com/IN: loaded serial 20150305 zone 98.168.192.in-addr.arpa/IN: loaded serial 20150305 service named start ## 啟動服務 Starting named: [ OK ] tail /var/log/messages ## 查看服務日志 Mar 13 22:40:26 www named[47455]: zone 0.in-addr.arpa/IN: loaded serial 0 Mar 13 22:40:26 www named[47455]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 Mar 13 22:40:26 www named[47455]: zone 98.168.192.in-addr.arpa/IN: loaded serial 20150305 Mar 13 22:40:26 www named[47455]: 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: loaded serial 0 Mar 13 22:40:26 www named[47455]: zone playground.com/IN: loaded serial 20150305 Mar 13 22:40:26 www named[47455]: zone localhost.localdomain/IN: loaded serial 0 Mar 13 22:40:26 www named[47455]: zone localhost/IN: loaded serial 0 Mar 13 22:40:26 www named[47455]: managed-keys-zone ./IN: loaded serial 288 Mar 13 22:40:26 www named[47455]: zone 98.168.192.in-addr.arpa/IN: sending notifies (serial 20150305) Mar 13 22:40:26 www named[47455]: running
6 使用dig命令測試
dig www.playground.com @192.168.233.128 ## 測試正向解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34061 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.playground.com. IN A ;; ANSWER SECTION: www.playground.com. 600 IN A 192.168.98.13 ;; AUTHORITY SECTION: playground.com. 600 IN NS dns.playground.com. ;; ADDITIONAL SECTION: dns.playground.com. 600 IN A 172.25.137.40 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Mar 13 22:47:49 2015 ;; MSG SIZE rcvd: 86 dig -x 192.168.98.13 @192.168.233.128 ## 測試反向解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -x 192.168.98.13 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17843 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;13.98.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 13.98.168.192.in-addr.arpa. 600 IN PTR www.playground.com. ;; AUTHORITY SECTION: 98.168.192.in-addr.arpa. 600 IN NS ns.playground.com. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Mar 13 22:48:07 2015 ;; MSG SIZE rcvd: 93
四、 區域傳送以及從服務器配置
1. dig 模擬完全區域傳送
# dig -t axfr playground.com @192.168.233.128 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t axfr playground.com @192.168.233.128 ;; global options: +cmd playground.com. 600 IN SOA dns.playground.com. dnsadmin.playground.com. 20150305 3600 300 259200 43200 playground.com. 600 IN NS dns.playground.com. playground.com. 600 IN MX 10 mail.playground.com. dns.playground.com. 600 IN A 172.25.137.40 ftp.playground.com. 600 IN CNAME www.playground.com. mail.playground.com. 600 IN A 192.168.98.12 pop.playground.com. 600 IN CNAME www.playground.com. www.playground.com. 600 IN A 192.168.98.13 playground.com. 600 IN SOA dns.playground.com. dnsadmin.playground.com. 20150305 3600 300 259200 43200 ;; Query time: 16 msec ;; SERVER: 192.168.233.128#53(192.168.233.128) ;; WHEN: Fri Mar 13 23:30:15 2015 ;; XFR size: 9 records (messages 1, bytes 240)
2. 主從兼容關系:主服務器bind版本可以低于從服務器bind版本
3. 向區域文件中添加從服務器關鍵兩步奏:
- 往上級獲得授權(這里指的DNS上級父域服務器)
- 在主區域文件中為從服務器添加NS記錄和對應的A或PTR記錄
4. 從服務器,事例。
假設:有另一個主機,IP地址為192.168.233.129,作為192.168.233.128(接續上面的事例)的從服務器。
首先在主DNS服務器的區域文件中,添加從服務器的NS記錄
## 正向,添加從服務器的NS記錄 @ IN NS ns ns IN A 192.168.233.129 ## 反向, 添加從服務器的NS記錄 @ IN NS ns.playground.com. 129 IN PTR ns.playground.com. ## 添加完成后,如果不是使用named用戶操作,一定注意修把文件屬主屬組改為named:named, 另外修改一下序列號
service named reload ## 重啟服務
然后在從服務器主機上bind配置文件中添加,與主服務器相同的兩個正反向域
## 從服務器正向域 zone "playground.com" IN { type slave; masters { 192.168.233.128; }; file "slaves/playground.com.zone"; }; ## 從服務器反向域 zone "233.168.192.in-addr.arpa" IN { type slave; masters { 192.168.233.128; }; file "slaves/192.168.233.com.zone"; }; ## 重啟服務 service named restart
查看日志文件,同步過來的區域文件,嘗試用從服務器解析
tail /var/log/message Mar 17 03:59:52 www named[2533]: running Mar 17 03:59:52 www named[2533]: zone 233.168.192.in-addr.arpa/IN: sending notifies (serial 20150305) Mar 17 03:59:52 www named[2533]: zone playground.com/IN: sending notifies (serial 3934520385) ls /var/named/slaves ## 查看區域文件是否成功同步過來 -rw-r--r--. 1 named named 482 Mar 17 03:47 192.168.233.com.zone -rw-r--r--. 1 named named 497 Mar 17 03:54 playground.com.zone dig -t A www.playground.com @192.168.233.129 ## 嘗試解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t A www.playground.com @192.168.233.129 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17894 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.playground.com. IN A ;; ANSWER SECTION: www.playground.com. 600 IN A 192.168.98.13 ;; AUTHORITY SECTION: playground.com. 600 IN NS dns.playground.com. playground.com. 600 IN NS ns.playground.com. ;; ADDITIONAL SECTION: dns.playground.com. 600 IN A 172.25.137.40 ns.playground.com. 600 IN A 192.168.233.129 ;; Query time: 0 msec ;; SERVER: 192.168.233.129#53(192.168.233.129) ;; WHEN: Tue Mar 17 04:02:31 2015 ;; MSG SIZE rcvd: 119
五、 子域授權
1. BIND子域授權的實現:首先需要在父域區域文件中添加膠水記錄(glue record)說要授權的子域信息和主機IP,父域區域文件中需要添加如下幾項
授權的子區域域名稱
子區域的名稱服務器
子區域的名稱服務器IP地址
例子:
bio.playground.com. IN NS dns.bio.playground.com. bio.playground.com. IN NS ns2.bio.playground.com. dns.bio.playground.com. IN A 172.16.200.21 ns2.bio.playground.com. IN A 172.16.200.22
2. 配置區域轉發:轉發域
解析某本機不負責的區域內的名稱時不轉發給跟,而是轉發給指定主機
zone "ZONE NAME" IN { type forward; forwarders { DNS_SERVER; }; forward only|first; };
配置轉發方式:
轉發非本機負責解析的所有區域: options { forward only|first; forwarders { IP; } }; 轉發某特定區域: zone "特定區域" IN { type forward; forwarders { IP; } forward only|first; };
3. ACL:bind實現支持的訪問控制列表
acl ACL_NAME { 172.16.0.0/16; 192.168.0.0/24 127.0.0.0/8; };
訪問控制列表只有定義后才能使用;通常acl要定義在named.conf的最上方;
BIND有四個內置的acl:
any: 任何主機
none: 無一主機
local: 本機
localnet: 本機的所在的網絡
4. 實例, 接續上面上面的例子,
父域為playground.com. 地址為192.168.233.128,
需要授權給另一臺主機192.168.233.129,
子域bio.playground.com. 并且要求子域服務器可以解析父域其他域名
在父域playground.com區域文件中添加膠水記錄
bio IN NS ns.bio ns.bio IN A 192.168.233.129
在子域主機配置文件中添加這個域
zone "bio.playground.com" IN { type master; file "bio.playground.com.zone"; };
在子域主機編輯并添加/var/named/bio.playground.com.zone 子域區域文件, 并修改權限和屬主屬組(named:named)
@ IN SOA ns.bio.playground.com. nsbioadmin.playground.com. ( 20150309001 1H 5M 3D 12H ) @ IN NS ns.bio.playground.com. @ IN MX 10 mail.bio.playground.com. ns IN A 192.168.233.129 mail IN A 192.168.233.140 www IN A 192.168.233.141 ftp IN A 192.168.233.142 pop IN CNAME ftp
在子域配置文件中,添加轉發域,使得子域主機可以解析父域域名
此時注意要開啟父域配置文件中的recursion yes, 或者建立recursion白名單,這里筆者偷懶直接用recursion yes 解決,在生產條件下這樣設定很不安全
zone "playground.com" IN { type forward; forwarders { 192.168.233.128; }; forward only; };
重啟或者重新載入父子域服務器后,嘗試解析
在子域服務器上解析子域域名 dig www.bio.playground.com @192.168.233.129 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.bio.playground.com @192.168.233.129 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17622 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.bio.playground.com. IN A ;; ANSWER SECTION: www.bio.playground.com. 43200 IN A 192.168.233.141 ;; AUTHORITY SECTION: bio.playground.com. 43200 IN NS ns.bio.playground.com. ;; ADDITIONAL SECTION: ns.bio.playground.com. 43200 IN A 192.168.233.129 ;; Query time: 0 msec ;; SERVER: 192.168.233.129#53(192.168.233.129) ;; WHEN: Tue Mar 17 17:16:39 2015 ;; MSG SIZE rcvd: 89 ## 在子域服務器上解析父域域名 dig www.playground.com @192.168.233.129 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @192.168.233.129 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9272 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.playground.com. IN A ;; ANSWER SECTION: www.playground.com. 600 IN A 192.168.98.13 ;; AUTHORITY SECTION: playground.com. 600 IN NS dns.playground.com. ;; ADDITIONAL SECTION: dns.playground.com. 600 IN A 192.168.233.129 ;; Query time: 15 msec ;; SERVER: 192.168.233.129#53(192.168.233.129) ;; WHEN: Tue Mar 17 17:18:02 2015 ;; MSG SIZE rcvd: 86 兩次解析結果差別在于flags, 如果在子域解析父域,則少一個aa flag說明不是權威答案,只是參考答案
六、view視圖, 實現主機對于不同IP訪問對于同一域名產生不同的應答機制,用于解決不同網絡間解析效率問題 ,需要注意的是,如果使用view則所有區域都必須在view中
1. 語法格式如下
以中國移動和中國聯通為例 acl telecom { 1.2.0.0/16; 4.5.8.0/24; }; acl unicom { }; view telecom { match-clients { telecom; }; zone "playground.com" IN { type master; file "playground.com.telecom"; }; }; view unicom { match-clients { unicom; }; recursion no; zone "playground.com" IN { type master; file "playground.com.unicom"; }; }; view default { match-clients { any; }; zone "playground.com" IN { type master; file "playground.com.unicom"; }; };
2. 實驗事例,
假定有一個域,playground.com, 如果通過172.25.137.41訪問則返回一組解析結果, 如果通過192.168.233.129 訪問則返回另一組結果。
第一臺主機,為DNS服務器, 擁有兩個端口,192.168.233.128 和 172.25.137.40,這里筆者使用別名實現
另兩臺主句, 一臺為192.168.233.129 一臺為172.25.137.41
設置,DNS服務器IP
ifconfig eth0 192.168.233.128/24 ifconfig eth0:1 172.24.137.43/24
eth0 Link encap:Ethernet HWaddr 00:0C:29:E0:A2:0E inet addr:192.168.233.128 Bcast:192.168.233.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fee0:a20e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:45186 errors:0 dropped:0 overruns:0 frame:0 TX packets:32619 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18628316 (17.7 MiB) TX bytes:2974242 (2.8 MiB) eth0:1 Link encap:Ethernet HWaddr 00:0C:29:E0:A2:0E inet addr:172.25.137.40 Bcast:172.25.137.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
修改bind配置文件,添加view
acl localArea { 127.0.0.1/4; }; acl vm1 { 192.168.233.131/24; 192.168.233.128/24; }; acl vm2 { 172.25.137.41/24; 172.25.137.40/24; }; view localArea { match-clients { localArea; }; 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 { 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; }; }; }; view vm1 { match-clients { vm1; }; zone "playground.com" IN { type master; file "playground.vm1"; }; zone "98.168.192.in-addr.arpa" IN { type master; file "192.168.98.vm1"; }; }; view vm2 { match-clients { vm2; }; zone "playground.com" IN { type master; file "playground.vm2"; }; zone "137.25.172.in-addr.arpa" IN { type master; file "172.25.137.vm2"; }; }; view default { match-clients { any;}; zone "." IN { type hint; file "named.ca"; }; };
編輯vm1的正反向域區域文件
## vm1這是正向域 $TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com. ( 20150305 1H 5M 3D 12H ) @ IN NS dns @ IN MX 10 mail dns IN A 192.168.233.128 mail IN A 192.168.98.12 www IN A 192.168.98.13 ftp IN CNAME www pop IN CNAME www
## vm1這是反向域 $TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com.( 20150305 1H 5M 3D 12H ) @ IN NS ns.playground.com. 128 IN PTR ns.playground.com. 12 IN PTR mail.playground.com. 13 IN PTR www.playground.com.
編輯vm2正反向域區域文件
## 這是vm2正向域 $TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com. ( 20150305 1H 5M 3D 12H ) @ IN NS dns @ IN MX 10 mail dns IN A 172.25.137.40 mail IN A 172.25.137.12 www IN A 172.25.137.13 ftp IN CNAME www pop IN CNAME www
## 這是vm2反向域 $TTL 600 @ IN SOA dns.playground.com. dnsadmin.playground.com.( 20150305 1H 5M 3D 12H ) @ IN NS dns.playground.com. 40 IN PTR dns.playground.com. 12 IN PTR mail.playground.com. 13 IN PTR www.playground.com.
全部設置完成后,修改權限重啟服務,然后開始測試
## 測試192.168.233.128 dig www.playground.com @192.168.233.128 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @192.168.233.128 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38934 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.playground.com. IN A ;; ANSWER SECTION: www.playground.com. 600 IN A 192.168.98.13 ;; AUTHORITY SECTION: playground.com. 600 IN NS dns.playground.com. ;; ADDITIONAL SECTION: dns.playground.com. 600 IN A 192.168.233.128 ;; Query time: 1 msec ;; SERVER: 192.168.233.128#53(192.168.233.128) ;; WHEN: Sat Mar 14 14:34:47 2015 ;; MSG SIZE rcvd: 86 ## 測試172.25.137.40 dig www.playground.com @172.25.137.40 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @172.25.137.40 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12736 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.playground.com. IN A ;; ANSWER SECTION: www.playground.com. 600 IN A 172.25.137.13 ;; AUTHORITY SECTION: playground.com. 600 IN NS dns.playground.com. ;; ADDITIONAL SECTION: dns.playground.com. 600 IN A 172.25.137.40 ;; Query time: 0 msec ;; SERVER: 172.25.137.40#53(172.25.137.40) ;; WHEN: Sat Mar 14 14:35:39 2015 ;; MSG SIZE rcvd: 86 測試成功,我們可以看到,相同域名解析不同的IP
原創文章,作者:以馬內利,如若轉載,請注明出處:http://www.www58058.com/1047
niubility~ 很詳細,贊~