bind的簡單配置
摘要:DNS bind簡單配置
FQDN
http://www.www58058.com. WWW是主機名 .178linux.COM.是私有域名 .com.是DNS一級域名 .是根域
DNS解析順序
/etc/hosts→DNS緩存→DNS域服務器
主機優先查找本地的hosts(/etc/hosts)文件,沒有想對應的記錄則去查找本地DNS客戶端的解析緩存庫,緩存庫沒有想對應的記錄則詢問本地配置的DNS服務器(DNS服務器配飾文件 /etc/resolv.conf)
DNS服務器同樣優先查找本地緩存數據,沒有相對應的記錄直接去找根,根會告訴你這事我委托給.com管理了這是.com的地址你去找他吧,DNS服務器找到.com得到這事我委托給178linux.com管理員ns.178linux.com來管理這事他的地址你去找他吧;繼續拜訪ns.178linux.com得到www.www58058.com的地址返回給主機。
主機得到對應的IP地址就將訪問數據報文發送給此IP
遞歸查詢:主機訪問DNS服務器,并且DNS服務器最終返回解析結果給客戶端的方式為遞歸查詢。不輪客戶端所查詢的域名是否為此DNS服務器管理它最終會個客戶端返回解析結果。
迭代查詢:DNS服務器子根向下逐級查找解析資源記錄的過程為迭代查詢,被DNS訪問的服務器只返回下級域的域管理員的地址。
DNS域服務器架構
二、搭建一個DNS服務器
2.1 DNS服務器軟件搭建采用bind
Bind是一款開放源碼的DNS服務器軟件,Bind由美國加州大學Berkeley分校開發和維護的,全名為Berkeley Internet Name Domain它是目前世界上使用最為廣泛的DNS服務器軟件,支持各種unix平臺和 windows平臺。
2.2 安裝bind
yum install bind -y
[root@localhost ~]# rpm -ql bind
[root@localhost ~]# rpm -ql bind
#rpm生成的幾個重要的配置文件 /etc/named.conf #bind的主配置文件 /etc/named.rfc1912.zones #bind的zone配置文件,通過主配置的include選項作為主配置文件的一部分 /etc/rndc.conf #rndc的主配置文件 /etc/rndc.key #rndc的消息完整性驗證key /var/named/named.ca #DNS根服務器信息 #以上文件權限模型 640 root named /var/named/sslaves/ # 叢服務器配置文件存放目錄 權限模型 770 named named
2.3 bind的主配置文件
// 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. // options { listen-on port 53 { 127.0.0.1; }; #監聽的端口和地址 { } 前后需各有一個空格否則為語法錯誤, #每行結束需以“;”結尾否則也為語法錯誤 listen-on-v6 port 53 { ::1; }; #IPv6的端口和地址配置 directory "/var/named"; #bind工作目錄;配置文件內的相對文件路徑都是在此目錄下 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; }; #允許那些客戶端來查詢 此內的localhost為內置acl 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.4 allow白名單控制
allow-*** allow-query #原先那些主機前來查詢DNS allow-transfer #允許那些主機進行區域傳送 allow-update #允許接收那些主機動態DNS更新 allow-recursion #允許為哪些主機進行遞歸查詢
2.5 acl控制列表;定義在options內
幾個內建的acl:none: 所有都不
any: 任意
localhost: 本機
acl 語法格式 acl ACL_NAME { ip; ip; network; }; #示例 遞歸查詢白名單 acl rec_network { 10.10.10.0/24; #網段 192.168.1.254; #ip localhost; #可包含其他acl }; recursion yes allow-recursion { localhost;rec_network; }
2.6 named.rfc1912.zones配置文件
域分為正向域和反向域:正向域為FQDN→IP地址;反向域為IP地址→FQND。
正向域和反向域的域配置文件是兩份獨立的配置文件。
其中郵件地址需配置反向域否則會被認為是垃圾郵件。
#####named.rfc1912.zones配置文件內容 // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // zone "localhost.localdomain" IN { #域名;IN為固定格式 type master; #服務類型:master|slave|forward|hind file "named.localhost"; #區域解析庫配置文件,相對路徑在options定義的工作目錄下 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; }; };
2.7 區域解析庫配置文件
區域解析庫內存放地址映射資源記錄:rr(resource record);映射信息有類型的概念:用于此記錄解析的屬性;主要類型分為以下幾種
SOA: Start Of Authority, 起始授權記錄,一個區域文件只能有一個;
NS:Name Server
MX: Mail eXchange, 郵件交換器,MX記錄有優先級屬性(0-99);
A:FQDN –> IP,專用于正向解析庫
PTR: IP –> FQDN,專用于反向解析庫
AAAA:FQDN –> IPv6,專用于正向解析庫
CNAME: Canonical Name,正式名稱
這些配置信息需要手動配置,配置前需要做好信息收集及信息注冊
資源記錄類型書寫格式
SOA:
@ TTL IN SOA FQDN ADMIN.MAIL ( serial number ;解析庫的版本號, refresh time ;主叢服務器周期性同步的時間間隔;time默認單位秒,也可使用1D,1H等代替 retry time ;主服務器為響應叢服務器后叢服務器的重試時間間隔 expire time ;主服務器一直未響應;叢服務器解析庫失效時長 negative answer ttl ;無效主機名否定答案的統一緩存時長 ) # @:域名替代符 # TTL:緩存時間 # IN:固定字符 # SOA:資源記錄類型 # FQND:區域內主DNS服務器的FQDN # ADMIN.MAIL:管理郵箱 其中郵箱的@在配置文件中有特殊意義需替換成.
NS:
@ TTL IN NS FQDN # @:域名替代符 # TTL:緩存時間 # IN:固定字符 # NS:資源記錄類型 # FQND:DNS服務器的FQDN
MX:
@ TTL IN NS priority FQDN # @:域名替代符 # TTL:緩存時間 # IN:固定字符 # NS:資源記錄類型 # priority:優先級 0-99 越小越優先,用于有多個郵件服務器 # FQND:郵件服務器的FQDN
A:
FQND TTL IN A|AAAA IPADDR # FQDN:主機完全域名 # TTL:緩存時間 # IN:固定字符 # A:IPV4資源記錄類型 # AAAA:IPV6資源記錄類型 # IPADDR:IPV4或IPV6的主機地址
CNAME:
FQND1 TTL IN CNAME FQDN2 # FQDN1:主機完全域名 # TTL:緩存時間 # IN:固定字符 # FQDN2:主機完全域名,必須有A記錄,訪問FQDN1時會先解析到FQDN1=FQDN2然后再去查FQDN2的A記錄
PTR:
反序IP.in-addr.arpa TTL IN PTR FQDN # 反序IP.in-addr.arpa:示例192.168.1.1PTR=1.1.168.192.in-addr.arpa # TTL:緩存時間 # IN:固定字符 # FQDN:主機完全域名
2.8 搭建緩存bind服務器
邏輯拓撲結構圖 bind服務器OS系統為centos 6.7 IP地址:10.10.10.3
第一步:安裝bind程序前面已經做完
第二步:配置主配置文件 /etc/named.conf
###將以下參數注釋掉 //listen-on port 53 { 127.0.0.1; }; #注釋后bind將監聽所有IPv4地址的53號端口 listen-on-v6 port 53 { ::1; }; #如果你沒有IPv6的配置這項無需配置 //allow-query { localhost; }; #注釋后允許所有任何地址前來查詢 recursion yes; #允許為所有客戶端進行遞歸查詢 //dnssec-enable yes; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 //dnssec-validation yes; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 //dnssec-lookaside auto; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 /* Path to ISC DLV key */ #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 //bindkeys-file "/etc/named.iscdlv.key"; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 //managed-keys-directory "/var/named/dynamic"; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 //include "/etc/named.root.key"; #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉
第三步:增加解析域信息至named.rfc1912.zones
zone "mylinux.com" IN { type master; file "mylinux.zone"; allow-update { none; }; }; zone "10.10.10.in-addr.arpa" IN { #反向區域,我選的這個地址不是太直觀,如果是172.16.1.2的話反向就是這樣寫1.16.172.in-addr.arpa type master; file "10.10.10.zone"; allow-update { none; }; }; #####檢查配置文件是否正確 [root@localhost named]# named-checkconf [root@localhost named]# ##沒有輸出就沒有錯誤
第四步配置解析資源記錄
[root@localhost named]# vim /var/named/mylinux.zone ################全稱拼寫格式 $TTL 7200 @ IN SOA ns.mylinux.com. admin.mylinux.com. ( 2015101600 1H 300 1W 1D ) IN NS ns.mylinux.com. #第一個字段如果與上一行一樣可省略不寫會自動補全 IN MX 10 mail.mylinux.com. ns.mylinux.com. IN A 10.10.10.3 #FQDN全名后面必須加.,.代表根區域 mail.mylinux.com. IN A 10.10.10.4 www.mylinux.com. IN A 10.10.10.5 ftp.mylinux.com. IN A 10.10.10.6 ############### 簡寫 $TTL 7200 $ORIGIN mylinux.com #自動將此變量作為FQDN的一部分補在,如果不聲明此變量內容默認為zones文件中定義的域名 @ IN SOA ns admin ( 2015101600 1H 300 1W 1D ) IN NS ns IN MX 10 mail ns IN A 10.10.10.3 mail IN A 10.10.10.4 www IN A 10.10.10.5 ftp IN A 10.10.10.6 #####反向域配置 $TTL 7200 @ IN SOA ns.mylinux.com. admin.mylinux.com. ( 2015101600 1H 300 1W 2D) IN NS ns.mylinux.com. 3 IN PTR ns.mylinux.com. 4 IN PTR mail.mylinux.com. 5 IN PTR www.mylinux.com. 6 IN PTR ftp.mylinux.com. #####檢查zone配置文件是否有錯誤 [root@localhost ~]# chown root:named /var/named/mylinux.zone /var/named/10.10.10.zone [root@localhost ~]# chmod 640 /var/named/mylinux.zone /var/named/10.10.10.zone [root@localhost named]#named.checkzone "mylinux.com" /var/named/mylinux.zone #檢查無錯誤后執行重讀配置文件 [root@localhost named]# named-checkzone "10.10.10.in-addr.arpa" /var/named/10.10.10.zone zone 10.10.10.in-addr.arpa/IN: loaded serial 2015101600 OK [root@localhost named]# rndc reload #重讀配置文件 server reload successful [root@localhost named]# service named reload Reloading named: [ OK ] #重讀配置文件 [root@localhost named]# ####如果修改過端口及監聽地址需要重啟服務 [root@localhost named]# service named restart [root@localhost ~]# chkconfig --level 2345 named on
DNS測試
常用的DNS測試命令有
1、host -t RRType NAME [SERVER]
例如:host -t NS mylinux.com 10.10.10.3
2、nslookup 交互式測試工具
nslookup>
server IP:
set type={A|SOA|NS|MX}
name
3、dig
dig -t TYPE name @server
-t AXFR: 標示區域傳送
-x:測試反解
+(no)trace:是否顯示查詢過程
+(no)recurse:是否遞歸查詢
[mylinux@www ~]$ dig -t AXFR mylinux.com @10.10.10.3 #做區域傳輸測試,查看DNS服務器所有記錄 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t AXFR mylinux.com @10.10.10.3 ;; global options: +cmd mylinux.com. 7200 IN SOA ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400 mylinux.com. 7200 IN NS ns.mylinux.com. mylinux.com. 7200 IN MX 10 mail.mylinux.com. ftp.mylinux.com. 7200 IN A 10.10.10.6 mail.mylinux.com. 7200 IN A 10.10.10.4 ns.mylinux.com. 7200 IN A 10.10.10.3 www.mylinux.com. 7200 IN A 10.10.10.5 mylinux.com. 7200 IN SOA ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400 ;; Query time: 0 msec ;; SERVER: 10.10.10.3#53(10.10.10.3) ;; WHEN: Thu Oct 15 21:09:36 2015 ;; XFR size: 8 records (messages 1, bytes 217) [mylinux@www ~]$ dig -x 10.10.10.5 @10.10.10.3 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 10.10.10.5 @10.10.10.3 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50444 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;5.10.10.10.in-addr.arpa. IN PTR ;; ANSWER SECTION: 5.10.10.10.in-addr.arpa. 7200 IN PTR www.mylinux.com. ;; AUTHORITY SECTION: 10.10.10.in-addr.arpa. 7200 IN NS ns.mylinux.com. ;; ADDITIONAL SECTION: ns.mylinux.com. 7200 IN A 10.10.10.3 ;; Query time: 2 msec ;; SERVER: 10.10.10.3#53(10.10.10.3) ;; WHEN: Thu Oct 15 23:18:54 2015 ;; MSG SIZE rcvd: 103 windows下測試
原創文章,作者:東郭先生,如若轉載,請注明出處:http://www.www58058.com/8746
內容豐滿,有原理有實驗,樣式奪目,非常贊,已置頂