DNS是什么及BIND講解內容
域名系統(英文:Domain Name System,縮寫:DNS)是internet的一項服務。它作為將域名和IP地址相互映射服務,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。當前,對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
講解內容:
DNS名稱解析方式
DNS查詢類型
DNS服務器類型
區域數據庫文件詳解
Centos7安裝配置BIND
BIND主從服務器配置
BIND安全相關配置
BIND view視圖配置
一、DNS名稱解析方式
DNS名稱解析方式分為兩種:
名稱 —> IP
例如:此處命令會在后面工具中具體詳解
# 可以看出“名稱”www.magedu.com對應的ip是101.200.188.230
# dig -t A www.magedu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17179 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.magedu.com.INA ;; ANSWER SECTION: www.magedu.com.589INA101.200.188.230 ;; AUTHORITY SECTION: magedu.com.159640INNSv2s1.xundns.com. magedu.com.159640INNSv2s2.xundns.com.
例如:此處命令會在后面工具中具體詳解
# 可以看出“IP"172.16.0.1對應的名稱是server.mageliunx.com.
IP —> 名稱
# dig -x 172.16.0.1 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 172.16.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1126 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;1.0.16.172.in-addr.arpa.INPTR ;; ANSWER SECTION: 1.0.16.172.in-addr.arpa. 86400INPTRserver.magelinux.com. ;; AUTHORITY SECTION: 16.172.in-addr.arpa.86400INNSserver.magelinux.com. ;; ADDITIONAL SECTION: server.magelinux.com.86400INA172.16.0.1 ;; Query time: 2 msec ;; SERVER: 172.18.0.1#53(172.18.0.1) ;; WHEN: Fri Apr 08 21:47:00 CST 2016 ;; MSG SIZE rcvd: 116
二、DNS查詢類型
DNS查詢類型分為:
遞歸查詢
迭代查詢
下圖是本人對dns查詢過程的理解
三、DNS服務器類型
主DNS服務器:維護所負責解析的域數據庫的那臺服務器:讀寫操作均可進行;
從DNS服務器:從主DNS服務器那里或其他的從DNS服務器那里“復制”一份解析庫;但只能進行讀操作
“復制”操作的實施方式
序列號:serial,也即是數據庫版本號;主服務器數據庫內容發生變化時,其版本號遞增;
刷新時間間隔:refresh,從服務器每多久到從服務器檢查序列號更新情況;
重試時間間隔:retry,從服務器從主服務器請求同步解析失敗時,再次發起請求嘗試的時間間隔
過期時長:expire,從服務器始終聯系不到主服務器時,多久之后放棄主服務器同步;停止提供服務。
否定答案的緩存時長:緩存錯誤的地址的時間此內容在BIND中的區域文件中配置
例如:
$TTL 33600 @ IN SOA ns1.magedu.com. admin.magedu.com. ( 2016040801 ;seria 2H ;refresh 10M ;retry 1W ;expire 1D ;negative answer ttl )
四、區域數據庫文件詳解
區域文件一般存于/var/named/下,以ZONE_NAME.zone命名,其中包含了很多參數。
資源記錄:Resource Record,簡稱rr
記錄類型有:A,AAAA,PTR,SOA,NS,CNAME,MX
語法:
name [TTL] IN RR_TYPE value
SOA:Start Of Authority,其實授權記錄()額區域解析庫有且只能有一個SOA記錄,而且必須放在第一條
NS:Name Service,域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的
A:Address,地址記錄,FQDN –> IPV4
AAAA:地址記錄, FQDN –> IPv6
CNAME:Canonical Name,別名記錄
PTR:Pointer,反向指針記錄:IP –> FQDN
MX:Mail eXchanger,郵件交換器
優先級:0-99,數字越小優先級越高
使用方法及格式:
SOA:
name: 當前區域的名字;例如”mageud.com.”,或者“2.3.4.in-addr.arpa.”;
value:有多部分組成
(1) 當前區域的區域名稱(也可以使用主DNS服務器名稱);
(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代;
(3) (主從服務協調屬性的定義以及否定答案的TTL)
例如:
$TTL 33600 @ IN SOA ns1.magedu.com. admin.magedu.com. ( 2016040801 ;seria 2H ;refresh 10M ;retry 1W ;expire 1D ;negative answer ttl )
NS:
name:當前區域的區域名稱
value:當前區域的某DNS服務器的名字,例如ns.magedu.com.
注意:一個區域可以有多個ns記錄
例如:
zhaoxin.com. 86400 IN NS ns1.zhaoxin.com.
zhaoxin.com. 86400 IN NS ns2.zhaoxin.com.
MX:
name: 當前區域的區域名稱
value:當前區域某郵件交換器的主機名;
注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先級;
例如:
zhaoxin.com. IN MX 10 mx1.zhaoxin.com.
zhaoxin.com. IN MX 20 mx2.zhaoxin.com.
A:
name:某FQDN,例如www.maged.com.
value:某IPV4地址
例如:
www.zhaoxin.com. IN A 222.145.33.26
www.zhaoxin.com. IN A 222.145.33.26
AAAA:
name:FQDN
value:IPV6
PTR:
name:IP地址,有特定格式,IP反過來寫,而且加特定后綴:例如172.16.100.10應該寫為10.100.16.172.in-addr.arpa
value:FQDN
例如:
10.100.16.172.in-addr.arpa IN PTR www.zhaoxin.com.
CNAME:
name:FQDN格式的別名;
value:FQDN格式的正式名字;
例如:
web.zhaoxin.com. IN CNAME www.zhaoxin.com.
有以下幾點需要注意:
(1) TTL可以從全局繼承;
(2) @表示當前區域的名稱;
(3) 相鄰的兩條記錄其name相同時,后面的可省略;
(4) 對于正向區域來說,各MX,NS等類型的記錄的value為FQDN,此FQDN應該有一個A記錄;
五、Centos 7安裝配置BIND
主配置文件
介紹配置文件之前先介紹一下BIND
BIND: Berkeley Internet Name Domain(由伯克利學校開發)
dns:協議
bind:dns協議的一種實現
named:bind程序運行的進程名
程序包組成:
bind-libs:被bind和bind-utils包中的程序共同用到的庫文件;
bind-utils:bind客戶端程序集,例如dig, host, nslookup等;
bind:提供的dns server程序、以及幾個常用的測試程序;
bind-chroot:選裝,讓named運行于jail模式下;
centos 7 bind配置文件:
主配置文件:/etc/named.conf
或包含進來其他文件
/etc/named.iscdly.key
/etc/named.rfc1912.zones
/etc/named.root.key
centos 7中一般配置區域在/etc/rfc1912.zones,全局配置在/etc/named.conf中
1、主配置文件格式:
全局配置段:
options { … } # 注意內容前后有空格
日志配置端:
logging { … }
區域配置端:
zone { … }
配置那些由本機負責解析的區域,或轉發的區域
注意:每個語句必須以分號結尾
2、緩存名稱服務器的配置:(注意此處的配置應該在使用前操作)
監聽能與外部主機通信的地址:
listen-on port 53 { 172.18.4.1; };
學習時,建議關閉dnssec
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
關閉僅允許本地查詢:
//allow-query { localhost; }; 單行注釋用“//”
解析庫文件
/var/named/目錄下:
一般名字為:ZONE_NAME.zone
例如:magedu.com.zone
172.16.100.zone
注意:
1、一臺DNS服務器可同時為多個區域提供解析
2、必須要有跟區域解析庫文件:named.ca
3、還應該有兩個區域解析庫文件:localhost和127.0.0.1的正反向解析庫
正向:named.localhost
反向:named.loopback
檢查配置文件語法錯誤
named-checkconf [/etc/named.conf]
named-checkzone ZONE_NAME ZONE_FILE
# named-checkzone magedu.com. magedu.com.zone zone magedu.com/IN: loaded serial 2016040801 OK # named-checkconf /etc/named.conf #
測試及管理工具
dig命令:
語法:dig [-t RR_TYPE] name [@SERVER] [query options]
# dig -t A ns1.magedu.com @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A ns1.magedu.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6933 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ns1.magedu.com.INA ;; ANSWER SECTION: ns1.magedu.com.33600INA172.18.250.108 ;; AUTHORITY SECTION: magedu.com.33600INNSns2.magedu.com. magedu.com.33600INNSns1.magedu.com. ;; ADDITIONAL SECTION: ns2.magedu.com.33600INA172.18.250.108 ;; Query time: 0 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 13:54:42 CST 2016 ;; MSG SIZE rcvd: 107
作用:用于測試dns系統,因此其不會查詢hosts文件
查詢選項:
+[no]trace:跟蹤解析過程
+[no]recurse:進行遞歸解析
反向解析:
dig -x IP
# dig -x 202.106.0.20 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 202.106.0.20 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47349 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;20.0.106.202.in-addr.arpa.INPTR ;; ANSWER SECTION: 20.0.106.202.in-addr.arpa. 5181INPTRgjjline.bta.net.cn. ;; AUTHORITY SECTION: 106.202.in-addr.arpa.5179INNSns.bta.net.cn. 106.202.in-addr.arpa.5179INNSns2.bta.net.cn. ;; ADDITIONAL SECTION: ns.bta.net.cn.74848INA202.96.0.133 ns2.bta.net.cn.74848INA202.106.196.28 ;; Query time: 3 msec ;; SERVER: 172.18.0.1#53(172.18.0.1) ;; WHEN: Sat Apr 09 14:01:22 CST 2016 ;; MSG SIZE rcvd: 153
模擬完全區域傳送:
dig -t axfr DOMAIN [@server]
# dig -t axfr magedu.com. @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t axfr magedu.com. @172.18.250.108 ;; global options: +cmd magedu.com.33600INSOAns1.magedu.com. admin.magedu.com. 2016040801 7200 600 604800 86400 magedu.com.33600INNSns1.magedu.com. magedu.com.33600INNSns2.magedu.com. magedu.com.33600INMX10 mx1.magedu.com. magedu.com.33600INMX15 mx2.magedu.com. mx1.magedu.com.33600INA172.18.250.111 mx2.magedu.com.33600INA172.18.250.112 ns1.magedu.com.33600INA172.18.250.108 ns2.magedu.com.33600INA172.18.250.108 www.magedu.com.33600INA172.18.250.108 magedu.com.33600INSOAns1.magedu.com. admin.magedu.com. 2016040801 7200 600 604800 86400 ;; Query time: 3 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 14:01:58 CST 2016 ;; XFR size: 11 records (messages 1, bytes 266)
host命令:
host [-t RR_TYPE] name SERVER_IP
# host 172.16.0.1 1.0.16.172.in-addr.arpa domain name pointer server.magelinux.com. # host -t A www.magedu.com www.magedu.com has address 101.200.188.230
nslookup命令:
nslookup [-options] [name] [server]
# nslookup www.magedu.com Server:172.18.0.1 Address:172.18.0.1#53 Non-authoritative answer: Name:www.magedu.com Address: 101.200.188.230
rndc命令:named服務控制命令
# rndc status version: 9.9.4-RedHat-9.9.4-29.el7 <id:8f9657aa> CPUs found: 1 worker threads: 1 UDP listeners per interface: 1 number of zones: 102 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running # rndc flush # rndc reload server reload successful
配置一個正向區域
以zhaoxin.com域為例:
1、定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
# vim /etc/named.rfc1912.zones zone "zhaoxin.com" IN { type master; file "zhaoxin.com.zone"; };
# 注意:區域名字即為域名
2、建立區域數據文件(主要記錄為A或AAAA記錄等)
在/var/named目錄下建立區域數據文件
文件為:/var/named/zhaoxin.com.zone
$TTL 33600 $ORIGIN zhaoxin.com. @ IN SOA ns1.zhaoxin.com. admin.zhaoxin.com. ( 2016040801 2H 10M 1W 1D ) IN NS ns1 IN NS ns2 IN MX 10 mx1 IN MX 15 mx2 mx1 IN A 172.18.250.111 mx2 IN A 172.18.250.112 ns1 IN A 172.18.250.108 ns2 IN A 172.18.250.108 www IN A 172.18.250.108
# named-checkzone zhaoxin.com zhaoxin.com.zone zone zhaoxin.com/IN: loaded serial 2016040801 OK # named-checkconf
3、檢查配置文件及區域配置文件,修改屬組和權限
# chgrp named /var/named/zhaoxin.com.zone # chmod o= /var/named/zhaoxin.com.zone # ll /var/named/zhaoxin.com.zone -rw-r----- 1 root named 293 Apr 9 14:15 /var/named/zhaoxin.com.zone
4、讓服務器重載配置文件和區域數據文件:
# rndc reload 或者
# systemctl reload named.service
# rndc reload server reload successful # ss -tnl|grep 53 LISTEN 0 10 172.18.250.108:53 *:* LISTEN 0 128 127.0.0.1:953 *:* LISTEN 0 128 ::1:953 :::*
5、驗證
# 注意:此處的172.18.250.108是我本機ip,可以再/etc/resolv.conf中修改dns地址后就可以省略次ip;
# dig -t A www.zhaoxin.com @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.zhaoxin.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39443 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.zhaoxin.com.INA ;; ANSWER SECTION: www.zhaoxin.com.33600INA172.18.250.108 ;; AUTHORITY SECTION: zhaoxin.com.33600INNSns2.zhaoxin.com. zhaoxin.com.33600INNSns1.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.zhaoxin.com.33600INA172.18.250.108 ns2.zhaoxin.com.33600INA172.18.250.108 ;; Query time: 2 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 14:24:01 CST 2016 ;; MSG SIZE rcvd: 128
配置一個反向區域
1、定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
# vim /etc/named.rfc1912.zones zone "250.18.172.in-addr.arpa" IN { type master; file "172.18.250.zone"; };
# 注意:反向區域的名字
2、建立區域數據文件(主要記錄為PTR)
在/var/named目錄下建立區域數據文件
文件為:/var/named/172.18.250.zone
# vim /var/named/172.18.250.zone $TTL 3600 $ORIGIN 250.18.172.in-addr.arpa. @ IN SOA ns1.zhaoxin.com. admin.zhaoxin.com. ( 2016010501 1H 10M 3D 12H ) IN NS ns1.zhaoxin.com. 108 IN PTR ns1.zhaoxin.com. 111 IN PTR mx1.zhaoxin.com. 112 IN PTR mx2.zhaoxin.com. 108 IN PTR www.zhaoxin.com.
3、檢查配置文件及區域配置文件,修改屬組和權限
# named-checkconf # named-checkzone 250.18.172.in-addr.arpa 172.18.250.zone zone 250.18.172.in-addr.arpa/IN: loaded serial 2016010501 OK
4、讓服務器重載配置文件和區域數據文件:
# rndc reload 或者
# systemctl reload named.service
# rndc reload server reload successful # ss -tnl|grep 53 LISTEN 0 10 172.18.250.108:53 *:* LISTEN 0 128 127.0.0.1:953 *:* LISTEN 0 128 ::1:953 :::*
5、驗證
# 注意:此處的172.18.250.108是我本機ip,可以再/etc/resolv.conf中修改dns地址后就可以省略次ip;
# dig -x 172.18.250.108 @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 172.18.250.108 @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52168 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;108.250.18.172.in-addr.arpa.INPTR ;; ANSWER SECTION: 108.250.18.172.in-addr.arpa. 3600 INPTRns1.zhaoxin.com. 108.250.18.172.in-addr.arpa. 3600 INPTRwww.zhaoxin.com. ;; AUTHORITY SECTION: 250.18.172.in-addr.arpa. 3600INNSns1.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.zhaoxin.com.33600INA172.18.250.108 ;; Query time: 0 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 14:33:29 CST 2016 ;; MSG SIZE rcvd: 133
六、BIND主從服務器
注意:從服務器是區域級別的概念
主區域配置:可以參照上面的正向區域配置和反向區域配置
配置一個從區域:
On Master配置
注意:
a、確保區域數據文件中為每個從服務配置NS記錄,并且在正向區域文件需要每個從服務器的NS記錄的主機名配置一個A記錄,且此A后面的地址為真正的從服務器的IP地址
b、時間要同步
ntpdate命令
1、添加從dns服務器地址
# vim /var/named/zhaoxin.com.zone $TTL 33600 $ORIGIN zhaoxin.com. @ INSOAns1.zhaoxin.com.admin.zhaoxin.com. ( 2016040801 2H 10M 1W 1D ) INNSns1 IN NSns2 INMX 10 mx1 INMX 15 mx2 ns1INA172.18.250.108 ns2INA172.18.250.28 mx1INA172.18.250.111 mx2INA172.18.250.112 wwwINA172.18.250.108 # vim /var/named/172.18.250.zone # cat /var/named/172.18.250.zone $TTL 3600 $ORIGIN 250.18.172.in-addr.arpa. @ IN SOA ns1.zhaoxin.com. admin.zhaoxin.com. ( 2016010501 1H 10M 3D 12H ) IN NS ns1.zhaoxin.com. IN NS ns2.zhaoxin.com. 108 IN PTR ns1.zhaoxin.com. 28 IN PTR ns2.zhaoxin.com. 111 IN PTR mx1.zhaoxin.com. 112 IN PTR mx2.zhaoxin.com. 108 IN PTR www.zhaoxin.com.
2、同步時間
# 我本地有時間服務器,如果沒有時間服務器的可以去網絡上搜一下,保證兩臺服務器時間一直就好
# ntpdate 172.18.0.19 Apr 15:00:52 ntpdate[3721]: step time server 172.18.0.1 offset -5.768812 sec
3、重載配置
# rndc reload server reload successful
On Slav配置
1、定義區域
# vim /etc/named.rfc1912.zones zone "zhaoxin.com" IN { type slave; file "slaves/zhaoxin.com.zone"; masters { 172.18.250.108; }; }; zone "250.18.172.in-addr.arpa" IN { type slave; file "slaves/172.18.250.zone"; masters { 172.18.250.108; }; };
2、同步時間并修改配置文件
# ntpdate 172.18.0.1 9 Apr 15:11:57 ntpdate[1772]: step time server 172.18.0.1 offset -5.583571 sec # vim /etc/named.conf listen-on port 53 { 172.18.250.28; };
3、重載配置
# rndc reload server reload successful # ll /var/named/slaves/ total 8 -rw-r--r-- 1 named named 500 Apr 9 15:09 172.18.250.zone -rw-r--r-- 1 named named 476 Apr 9 15:09 zhaoxin.com.zone
# 此處可以看到,文件已經同步過來,下面進行測試
# 注意,在Centos 7中同步數據是加密的,所以不能查看文件內容
# dig -t A www.zhaoxin.com @172.18.250.28 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.zhaoxin.com @172.18.250.28 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35060 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.zhaoxin.com.INA ;; ANSWER SECTION: www.zhaoxin.com.33600INA172.18.250.108 ;; AUTHORITY SECTION: zhaoxin.com.33600INNSns2.zhaoxin.com. zhaoxin.com.33600INNSns1.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.zhaoxin.com.33600INA172.18.250.108 ns2.zhaoxin.com.33600INA172.18.250.28 ;; Query time: 1 msec ;; SERVER: 172.18.250.28#53(172.18.250.28) ;; WHEN: Sat Apr 09 15:15:13 CST 2016 ;; MSG SIZE rcvd: 128
4、添加新記錄并測試測試
ON master:
ON Slave:
# 注意:slave上面沒有進行任何操作就可以解析到。
# dig -t A bbs.zhaoxin.com @172.18.250.28 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A bbs.zhaoxin.com @172.18.250.28 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53442 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;bbs.zhaoxin.com.INA ;; ANSWER SECTION: bbs.zhaoxin.com.33600INA172.18.250.66 ;; AUTHORITY SECTION: zhaoxin.com.33600INNSns1.zhaoxin.com. zhaoxin.com.33600INNSns2.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.zhaoxin.com.33600INA172.18.250.108 ns2.zhaoxin.com.33600INA172.18.250.28 ;; Query time: 1 msec ;; SERVER: 172.18.250.28#53(172.18.250.28) ;; WHEN: Sat Apr 09 15:20:19 CST 2016 ;; MSG SIZE rcvd: 128
七、子域授權和DNS轉發
1、子域配置
主域服務器配置:
# vim /var/named/zhaoxin.com.zone $TTL 33600 $ORIGIN zhaoxin.com. @ IN SOA ns1.zhaoxin.com. admin.zhaoxin.com. ( 2016040803 2H 10M 1W 1D ) IN NS ns1 IN NS ns2 IN MX 10 mx1 IN MX 15 mx2 ns1 IN A 172.18.250.108 ns2 IN A 172.18.250.28 mx1 IN A 172.18.250.111 mx2 IN A 172.18.250.112 www IN A 172.18.250.108 bbs IN A 172.18.250.66 ops IN NS ns1.ops ns1 IN A 172.18.17.24 # rndc reload server reload successful
子域服務器配置:
a、修改配置文件
# vim /etc/named.conf options { listen-on port 53 { 127.0.0.1; 172.18.17.24; }; 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; }; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable no; dnssec-validation no; # vim /etc/named.rfc1912.zones zone "ops.zhaoxin.com" IN { type master; file "ops.zhaoxin.com.zone"; };
b、修改區域文件
# vim /var/named/ops.zhaoxin.com.zone $TTL 33600 $ORIGIN ops.zhaoxin.com. @ IN SOA ns1.ops.zhaoxin.com. admin.ops.zhaoxin.com. ( 2016040803 2H 10M 1W 1D ) IN NS ns1 ns1 IN A 172.18.17.24 www IN A 172.18.17.24
c、修改權限
# chown .named ops.zhaoxin.com.zone # chmod o= ops.zhaoxin.com.zone
d、啟動服務并測試
# systemctl start named.service # ss -tnl|grep 53 LISTEN 0 10 172.18.17.24:53 *:* LISTEN 0 10 127.0.0.1:53 *:* LISTEN 0 128 127.0.0.1:953 *:* LISTEN 0 10 ::1:53 :::* LISTEN 0 128 ::1:953 :::*
通過子域測試
# dig -t A www.ops.zhaoxin.com @172.18.17.24 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.ops.zhaoxin.com @172.18.17.24 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46104 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.ops.zhaoxin.com.INA ;; ANSWER SECTION: www.ops.zhaoxin.com.33600INA172.18.17.24 ;; AUTHORITY SECTION: ops.zhaoxin.com.33600INNSns1.ops.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.ops.zhaoxin.com.33600INA172.18.17.24 ;; Query time: 0 msec ;; SERVER: 172.18.17.24#53(172.18.17.24) ;; WHEN: Sat Apr 09 16:47:49 CST 2016 ;; MSG SIZE rcvd: 98
通過主域測試
# dig -t A www.ops.zhaoxin.com @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.ops.zhaoxin.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3566 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.ops.zhaoxin.com.INA ;; ANSWER SECTION: www.ops.zhaoxin.com.33600INA172.18.17.24 ;; AUTHORITY SECTION: ops.zhaoxin.com.33600INNSns1.ops.zhaoxin.com. ;; ADDITIONAL SECTION: ns1.ops.zhaoxin.com.33600INA172.18.17.24 ;; Query time: 3 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 16:50:05 CST 2016 ;; MSG SIZE rcvd: 98
2、dns轉發
dns轉發,一般指向外網的dns服務器,當本地沒有記錄時會向外網dns服務器發起查詢請求。
注意:被轉發的服務器必須允許為當前服務做遞歸;
(1) 區域轉發:僅轉發對某特定區域的解析請求;
zone "ZONE_NAME" IN {
type forward;
forward {first|only};
forwarders { SERVER_IP; };
};
first:首先轉發;轉發器不響應時,自行去迭代查詢;
only:只轉發;
(2) 全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;
options {
… …
forward {only|first};
forwarders { SERVER_IP; };
.. …
};
a、首先用本地查詢www.baidu.com(此時沒有做dns轉發)
# dig -t A www.baidu.com @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 24127 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com.INA ;; Query time: 1 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 16:53:02 CST 2016 ;; MSG SIZE rcvd: 42
b、配置dns轉發
添加forward
# vim /etc/named.conf options { listen-on port 53 { 172.18.250.108; }; //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"; forward {only}; forwarders { 172.18.0.1; };
檢查配置文件并重載配置:
# named-checkconf # rndc reload server reload successful
測試:
# dig -t A www.baidu.com @172.18.250.108 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1855 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com.INA ;; ANSWER SECTION: www.baidu.com.179INCNAMEwww.a.shifen.com. www.a.shifen.com.128INA61.135.169.121 www.a.shifen.com.128INA61.135.169.125 ;; AUTHORITY SECTION: a.shifen.com.1028INNSns3.a.shifen.com. a.shifen.com.1028INNSns5.a.shifen.com. a.shifen.com.1028INNSns4.a.shifen.com. a.shifen.com.1028INNSns2.a.shifen.com. a.shifen.com.1028INNSns1.a.shifen.com. ;; ADDITIONAL SECTION: ns5.a.shifen.com.1028INA119.75.222.17 ns4.a.shifen.com.1028INA115.239.210.176 ns3.a.shifen.com.1028INA61.135.162.215 ns2.a.shifen.com.1028INA180.149.133.241 ns1.a.shifen.com.1028INA61.135.165.224 ;; Query time: 1 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 09 17:02:11 CST 2016 ;; MSG SIZE rcvd: 271
八、BIND安全相關配置(acl)
acl:訪問控制列表:把一個或多個地址歸并一個命名的集合,隨后通過次名稱即可對此集全內的所有主機實現統一調用
acl acl_bame {
ip;
net/prelen;
};
示例:
acl mynet {
172.18.0.0/16;
127.0.0.0/8;
};
bind有四個內置的acl
none:沒有一個主機;
any:任意主機;
local:本機;
localnet:本機所在的IP所屬的網絡;
訪問控制指令:
allow-query {}; 允許查詢的主機;白名單;
allow-transfer {}; 允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器;
allow-recursion {}; 允許哪此主機向當前DNS服務器發起遞歸查詢請求;
allow-update {}; DDNS,允許動態更新區域數據庫文件中內容;
測試:
1、修改文件,僅允許172.16.0.0/16網段可查詢
# vim /etc/named.rfc1912.zones acl mynet { 172.16.0.0/16; 127.0.0.0/8; }; # vim /etc/named.rfc1912.zones zone "zhaoxin.com" IN { type master; file "zhaoxin.com.zone"; acl-query { mynet; }; }; # systemctl restart named
測試是否能解析
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:69:45:7B inet addr:172.18.4.2 Bcast:172.18.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe69:457b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2750 errors:0 dropped:0 overruns:0 frame:0 TX packets:329 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:467611 (456.6 KiB) TX bytes:33023 (32.2 KiB) # dig -t A www.zhaoxin.com @172.18.250.108 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.zhaoxin.com @172.18.250.108 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 5215 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.zhaoxin.com.INA ;; Query time: 4 msec ;; SERVER: 172.18.250.108#53(172.18.250.108) ;; WHEN: Sat Apr 9 15:37:15 2016 ;; MSG SIZE rcvd: 33
# 可以看出此服務器不在規定范圍內,不能解析
2、修改為18網段測試是否能夠解析
對于dns就寫到這里了,感覺寫的不錯可以給點個贊。
作者:Ace
QQ1257465991
Linux運維攻城獅一只
Q/A:如有問題請慷慨提出
原創文章,作者:Ace,如若轉載,請注明出處:http://www.www58058.com/15245