DNS子域授權
隨着公司業務的發展,當初申請的那個域名已經不夠用了。
zledu.com 任何一個子域必須經過父域的授權;
www.zledu.com
www.zledu.com/fin #通過這個目錄訪問的都是財務部的;
www.zledu.com/maket #通過這個目錄訪問的都是市場部的;
剛開始通過這兩個路徑都能對其進行訪問,後來過了一段時間發現這兩個部分都能單獨獨立出去了。
但是我們希望訪問財務部的網站,使用如下方式訪問:
www.fin.zledu.com.
www.market.zledu.com.
我們要劃分新的區域,需要得到父域的支持;而在正向區域裏面如何授權呢?
SUB_ZONE_NAME IN NS NSSERVER_SUB_ZONE_NAME
NSSERVER__SUB_ZONE_NAME IN A IP
.com
zledu.com. IN NS ns1.zledu.com.
ns1.zledu.com. IN A 172.16.100.1
在後臺頁面裏面,可以修改兩個a記錄;·
只需要在父域上進行授權即可,父域裏面添加幾條ns記錄即可。
zledu.com.
fin.zledu.com. IN NS ns1.fin.zledu.com.
fin.zledu.com. IN NS ns2.fin.zledu.com.
ns1.fin.zledu.com. IN A 172.16.100.8 (注意子域跟父域不一定是在一個網站裏面)
ns2.fin.zledu.com. IN A 172.16.100.9
market.zledu.com. IN NS ns1.market.zledu.com.
ns1.market.zledu.com. IN A 172.16.100.108
下面編輯父域文件:同時將序列號加1;
$TTL 600
zledu.com. IN SOA ns1.zledu.com. admin.zledu.com. (
20150524
1H
5M
2D
6H )
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 172.16.100.1
ns2 IN A 172.16.100.2
mail IN A 172.16.100.2
pop IN A 172.16.100.4
www IN A 172.16.100.1
www IN A 172.16.100.3
ftp IN CNAME www
imap IN A 172.16.100.5
hello IN A 172.16.100.6
fin IN NS ns1.fin
ns1.fin IN A 172.16.100.8
market IN NS ns1.market
ns1.market IN A 172.16.100.108
在父域上面建立完成之後,還是無法解析子域的ns記錄;原因真實的服務器還不存在;
在172.16.100.108的主機上進行如下配置;
[root@localhost named]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "fin.zledu.com" IN {
type master;
file "fin.zledu.com.zone";
};
[root@localhost named]# cat fin.zledu.com.zone
$TTL 600
fin.zledu.com. IN SOA ns1.fin.zledu.com. admin.fin.zledu.com. (
20150524
1H
5M
2D
6H )
IN NS ns1
IN MX 10 mail
ns1 IN A 172.16.100.8
mail IN A 172.16.100.9
www IN A 172.16.100.10
更新完這一切之後,就可以在父域的服務器上面進行查詢:且會有查詢結果返回。
[root@localhost named]# dig -t NS fin.zledu.com @172.16.100.1
flags: qr rd ra;
在自己上面也可以進行查詢;
[root@localhost named]# dig -t NS www.zledu.com @172.16.100.8
同時查詢結果裏面只看flags那個參數即可;
flags: qr aa rd ra;
注意此時,子域不知道父域的位置,沒法對數據進行轉發。如果想讓父域實現轉發,需要做如下配置:
forward {only|first} # only的意思是,如果我這裏解析不能進行,就將其轉發出去;
first就是我先轉發給你,你要是不給我轉發我就找根服務器;
forwarders {};#指定轉發器;
options {
directory "/var/named";
forward first;
forwarders { 172.16.100.1; };
};
這個是全局轉發的效果,如果只想父域轉發就需要另外做配置。
此時在windows客戶端做檢查就能查找到父域對應的結果。雖然也能解答出來,但是結果是非權威應答。
zone "ZONE_NAME" IN {
type forward;
};
如果我們只是想對其父域進行轉發,可以新建一個域,表示只對父域進行轉發。
zone "zledu.com" IN {
type forward;
forward first;
forwarders { 172.16.100.1; };
};
我們在父域裏面也可以指定,.com的域名,將所有.com的域進行轉發。