DNS子域授權的實現
- 2019 年 10 月 5 日
- 筆記
前幾天貼的部落格上沒有子域授權的實驗,這裡補上。
子域授權的概念:
在原有的域上再劃分出一個小的區域並指定新DNS伺服器。在這個小的區域中如果有客戶端請求解析,則只要找新的子DNS伺服器。這樣的做的好處可以減輕主DNS的壓力,也有利於管理。一般做正向區域的子域授權即可。
正向解析區域子域方法:
假設父域stu13.com,子域是ops.stu13.com,子域內有2台名稱伺服器ns1。
要注意在父域定義好子域的ns1的A記錄,不然子域不知道如何去×××器。
例如:
ops.stu13.com. IN NS ns1.ops.stu13.com.
ns1.ops.stu13.com. IN A 192.168.2.100
注意:子域和父域的域名伺服器可以不在同一個網路內,只要彼此能通訊即可。
2. 定義轉發伺服器【2種方式】
注意:被轉發的伺服器需要能夠為請求者做遞歸,否則,轉發請求不予進行。
(1) 全部轉發: 凡是對非本機所有負責解析的區域的請求,統統轉發給指定的伺服器。
Options {
forward{first|only}
forwarders{IP_address ; };
}
(2) 區域轉發:僅轉發對特定的區域的請求至某伺服器。
zone"ZONE_NAME" IN {
typeforward;
forward{first|only}
forwarders{IP_address ; };
}
#說明:
first表示先轉髮指定的區域伺服器,如果沒結果再去找根。
only是只轉發給指定的區域伺服器,有沒有結果,都不會去找根。
注意:配置子域授權時候,需要關閉dnssec功能,即設置:
dnssec-enableno;
dnssec-validationno;
下面正式開始配置
環境搭建:
Server1:192.168.2.7父域
Server2:192.168.2.12子域
父域的DNS配置:(192.168.2.7上)
步驟概要:將其配置成快取伺服器,關閉dnssec,添加本區域,編寫本區域解析庫文件(其中要加入子域的NS記錄、A記錄)。
vi /etc/named.conf 修改如下:
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
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 { localhost; };
recursion yes;
dnssec-enable no; //改為no
dnssec-validation no; //改為no
// dnssec-lookasideauto; //注釋掉這句
/* 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";
severitydynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
service named start
vi /etc/named.rfc1912.zones,在最後添加如下4行內容
zone "stu13.com" IN {
typemaster;
file"stu13.com.zone";
};
cd /var/named
vi stu13.com.zone內容如下:【注意FQDN中的注意點號】
$TTL 1D
$ORIGIN stu13.com.
@ IN SOA ns1.stu13.com. admin.stu13.com. (
2015093212
1M
5M
1H
1D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.2.7
ns2 IN A 192.168.2.8
www IN A 192.168.2.7
* IN A 192.168.2.7 ;加了一條泛域名解析記錄
;下面加的兩條是子域授權要用到的,否則父域找不到子域
ops IN NS ns1.ops
ns1.ops IN A 192.168.2.12 ; 子域的dns地址
named-checkzone"stu13.com" stu13.com.zone # 檢查區域文件
# 修改區域配置文件的許可權
chown .named stu13.com.zone
chmod 640 stu13.com.zone
service named restart #重啟dns服務
子域的DNS配置:(192.168.2.12上)
步驟概要:將其配置成快取伺服器,關閉dnssec,添加本區域和父區域,編寫本區域解析庫文件。
vi /etc/named.conf # 注釋掉下面紅色字體部分的程式碼,使其變成快取伺服器
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
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 { localhost; };
recursion yes;
dnssec-enable no; //改為no
dnssec-validation no; //改為no
// 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";
severitydynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
service named start #啟動named服務
vi /etc/named.rfc1912.zones,在最後添加2個區域:
zone "ops.stu13.com" IN {
type master;
file"ops.stu13.com.zone";
};
//定義轉發到父域
zone "stu13.com" IN {
type forward;
forwardonly;
forwarders { 192.168.2.7 ;};
};
vi /var/named/ops.stu13.com.zone 寫入如下內容:
$TTL 1D
$ORIGIN ops.stu13.com.
@ IN SOA ns1.ops.stu13.com. admin.ops.stu13.com. (
2015093201
1M
5M
1H
1D )
IN NS ns1
ns1 IN A 192.168.2.12 ;本機地址
www IN A 192.168.2.30
* IN A 192.168.2.30
# 修改區域配置文件的許可權
chown .named ops.stu13.com.zone
chmod 640 ops.stu13.com.zone
執行rndc reload或者service namedrestart
tail/var/log/messages 查看是否有錯誤提示。
多次執行dig命令檢查:
# 在父域dns伺服器上執行:
dig -t awww.ops.stu13.com @192.168.2.7 父域能正常解析子域
# 在子域dns伺服器上執行:
dig -t awww.stu13.com @192.168.2.12 子域能解析父域
說明我們定義的子域、父域配置成功了。