DNS原理和CentOS7上bind域名伺服器配置詳解
本文大綱:
理論部分:
1、什麼是DNS
2、DNS層次介紹及基礎內容
3、DNS的工作原理及過程
域名伺服器配置實戰:
4、主域名伺服器配置
5、輔域名伺服器配置
6、快取域名伺服器配置
1、什麼是DNS?
( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。
2、DNS簡介
域名系統作為一個層次結構和分散式資料庫,包含各種型別的資料,包括主機名和域名。DNS資料庫中的名稱形成一個分層樹狀結構稱為域名稱空間。域名包含單個標籤分隔點,例如:im.qq.com。
DNS 域的名稱層次結構
DNS域名層次介紹:
按其功能名稱空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中,以及與每個名稱型別的示例
常見的頂級域名:
組織域:.com, .net, .org, .gov, .edu, .mil
國家域:.iq, .tw, .hk, .jp, .cn, ...
網際網路域名系統由名稱註冊機構負責維護分配由組織和國家/地區的頂級域在 Internet 上進行管理。 這些域名按照國際標準 3166。 一些很多現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的DNS域名稱如下圖:
3、DNS的工作原理及過程
當我們開啟瀏覽器輸入某個網站,我們是如何通過網路找到主機的呢,下來我來說說域名解析的具體過程,看下圖:
具體的過程說明:
我們以上圖使用者訪問www.wlm.com為例
對於客戶機
1.當用戶以域名方式訪問某個主機時,本地計算機首先會檢視自己的DNS Cache裡有沒有該域名解析的快取,有則直接解析;
2.如果本地快取沒有該域名解析,就檢視hosts檔案,看有沒有該域名解析,有則給出解析結果;
3.如果沒有就請求DNS Server伺服器,通過遞迴查詢,直接從NDS Server得出需要查詢的結果。
對於DNS Server域名伺服器
1.如果使用者請求的是DNS Server掌管的域內伺服器,則直接給出解析結果;
2.如果使用者請求的不是本域內的伺服器或者DNS Server是快取伺服器,沒有自己掌握的域名;
(1)DNS Server會直接訪問根域伺服器,而不是訪問自己的頂級域伺服器,根域不知道www.wlm.com主機的IP地址,但是跟域會告訴DNSserver,.com頂級域會知道www.wlm.com的IP,並返回.com的IP;
(2)DNS Server請求.com頂級域解析,.com頂級域也不知道www.wlm.com主機,但是.com頂級域會返回wlm.com的地址;
(3)DNS Server 訪問wlm.com主機,www.wlm.com屬於wlm.com域內。wlm.com返回www.wlm.com的主機IP,DNSServer響應使用者的請求,返回IP地址;使用者計算機根據IP地址訪問www.wlm.com主機。
域名伺服器配置實戰:
部署的邏輯圖如下:
配置說明:
主域名伺服器:ns1.wlm.com. IP:10.10.10.3
從域名伺服器:ns2.wlm.com. IP:10.10.10.10
快取域名伺服器:ns3.wlm.com.IP:10.10.10.11
所有的系統都為CentOS7
在每臺伺服器上的準備工作:
這裡以ns1.wlm.com為例
(1)配置IP,將DNS指向自己
vim/etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=none IPADDR=10.10.10.3 NETMASK=255.255.255.0 GATEWAY=10.10.10.2 DNS1=10.10.10.3 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 DEVICE=eno16777736 ONBOOT=yes
(2)重啟網絡卡
systemctlrestartnetwork.service
(3)關閉防火牆和selinux
systemctlstopfirewalld.service systemctldisablefirewalld.service#開啟自動關閉 setenforce0#可以vim/etc/selinux/config將selinux改為disabled,設定為開機就關閉
(4)配置yum源(這裡就不贅述了),yum安裝bind
[[email protected]~]#yuminstall-ybind [[email protected]~]#yuminstall-ybind-libs [[email protected]~]#yuminstall-ybind-utils#這個非必要,需要dig命令,需要安裝
程式包說明:
bind-libs:被bind和bind-utils包中的程式共同用到的庫檔案;
bind-utils:bind客戶端程式集,例如dig, host, nslookup等;
bind:提供的dns server程式、以及幾個常用的測試程式
bind-chroot:選裝,讓named運行於jail模式下;
(5)修改配置檔案
[[email protected]~]#vim/etc/named.conf options{ listen-onport53{127.0.0.1;10.10.10.3;};#監聽本機IP的53埠 listen-on-v6port53{::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;};#這裡代表只解析本機,//為註釋 allow-transfer{10.10.10.0/24;}; #配置裡預設沒有這一項配置,只允許的slave主機做資料傳送 #從伺服器配置如下:allow-transfer{none;};#從伺服器不需要做傳輸 recursionyes; dnssec-enableno;#安全設定關閉 dnssec-validationno;#安全設定關閉
修改完畢,儲存退出
語法檢查:
named-checkconf#語法檢查,預設檢查/etc/named.conf檔案,如果不是這個路徑,在後面寫路徑
重啟named伺服器
[[email protected]~]#systemctlrestartnamed.service
設定開機啟動
[[email protected]named]#systemctlenablenamed.service
(6)檢視監聽的IP和埠
[[email protected]named]#netstat-tunlp|grep53 tcp0010.10.10.3:530.0.0.0:*LISTEN5509/named tcp00127.0.0.1:530.0.0.0:*LISTEN5509/named tcp00192.168.122.1:530.0.0.0:*LISTEN2384/dnsmasq tcp00127.0.0.1:9530.0.0.0:*LISTEN5509/named tcp600::1:53:::*LISTEN5509/named tcp600::1:953:::*LISTEN5509/named udp000.0.0.0:53530.0.0.0:*854/avahi-daemon:r udp0010.10.10.3:530.0.0.0:*5509/named udp00127.0.0.1:530.0.0.0:*5509/named udp00192.168.122.1:530.0.0.0:*2384/dnsmasq udp600::1:53:::*5509/named
(7)配置時間伺服器,利用ntpdate同步時間使每臺伺服器時間一致(如果是練習,這不是必要步驟)。
4、主域名伺服器配置
具體配置步驟:
1)yum安裝bind
[[email protected]~]#yuminstall-ybind
2)修改配置檔案
[[email protected]~]#vim/etc/named.conf options{ listen-onport53{127.0.0.1;10.10.10.3;};#監聽本機IP的53埠 listen-on-v6port53{::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;};#這裡代表只解析本機,//為註釋 allow-transfer{10.10.10.0/24;}; #配置裡預設沒有這一項配置,只允許的slave主機做資料傳送 recursionyes; dnssec-enableno;#安全設定關閉 dnssec-validationno;#安全設定關閉
修改完畢,儲存退出
語法檢查:
named-checkconf#語法檢查,預設檢查/etc/named.conf檔案,如果不是這個路徑,在後面寫路徑
重啟named伺服器
[[email protected]~]#systemctlrestartnamed.service
bind不設定任何域名,預設是快取伺服器,配置裡面預設有根域的地址,現在可以做域名解析了。
[[email protected]~]#dig-tA+tracewww.baidu.com ;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tA+tracewww.baidu.com ;;globaloptions:+cmd . 457478 IN NS a.root-servers.net.#首先找到跟域 com. 172800 IN NS a.gtld-servers.net.#再找.com baidu.com. 172800 IN NS dns.baidu.com.#最後找到dns ww.baidu.com. 1200 IN CNAME www.a.shifen.com.#找到最後的域名 ;;Received239bytesfrom220.181.37.10#53(ns3.baidu.com)in13ms#解析的ip
dig命令介紹: dig[-tRR_TYPE]name[@SERVER][queryoptions] 用於測試dns系統,因此其不會查詢hosts檔案; 查詢選項: +[no]trace:跟蹤解析過程; +[no]recurse:進行遞迴解析; 注意:反向解析測試 dig-xIP 模擬完全區域傳送: dig-taxfrDOMAIN[@server] dig+trace-tAwww.baidu.com dig-x61.135.169.121
3)配置一個正向解析區域
(1)定義區域,我們以wlm.com為例
在主配置檔案中或主配置檔案輔助配置檔案中實現(/etc/named.rfc1912.zones);
vim/etc/named.rfc1912.zones #配置檔案最後面新增 zone"wlm.com"IN{ typemaster; file"wlm.com.zone"; };
/etc/named.rfc1912.zones配置檔案裡的寫法格式: zone"ZONE_NAME"IN{ type{master|slave|hint|forward}; file"ZONE_NAME.zone"; }; 注意:區域名字即為域名;
(2)建立區域資料檔案(主要記錄為A或AAAA記錄)
在/var/named目錄下建立區域資料檔案;
[[email protected]~]#vim/var/named/wlm.com.zone#這裡定義的檔案要跟上一步在配置裡寫的檔案一致 $TTL3600 $ORIGINwlm.com. @INSOAns1.wlm.com.dnsadmin.wlm.com.( 2014100101 1H 10M 3D 1D) INNSns1 INMX10mx1 INMX20mx2 ns1INA10.10.10.3 mx1INA10.10.10.100 mx2INA10.10.10.200 wwwINA10.10.10.4 webINCNAMEwww
區域資料庫檔案說明; $TTL3600#設定客戶端快取時間 $ORIGINwlm.com.#定義當前區域的名字,下面的@就是替代這個值 @INSOAns1.wlm.com.dnsadmin.wlm.com.( #SOA:StartOfAuthority,起始授權記錄;一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條; #ns1.wlm.com.該域的主域名伺服器 #dnsadmin.wlm.com.管理員郵箱 2014100101#序列號:serial 1H#重新整理時間間隔:refresh 10M#重試時間間隔:retry, 3D#過期時長:expire 1D)#negativeanswerttl:否定答案的快取時長 INNSns1#域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的 INMX10mx1#郵件交換器優先順序:0-99,數字越小優先順序越高 INMX20mx2 ns1INA10.10.10.3#地址記錄 mx1INA10.10.10.100 mx2INA10.10.10.200 wwwINA10.10.10.4 webINCNAMEwww#別名記錄 系統的介紹: 主-輔DNS伺服器: 主DNS伺服器:維護所負責解析的域資料庫的那臺伺服器;讀寫操作均可進行; 從DNS伺服器:從主DNS伺服器那裡或其它的從DNS伺服器那裡“複製”一份解析庫;但只能進行讀操作; “複製”操作的實施方式: 序列號:serial,也即是資料庫的版本號;主伺服器資料庫內容發生變化時,其版本號遞增; 重新整理時間間隔:refresh,從伺服器每多久到主伺服器檢查序列號更新狀況; 重試時間間隔:retry,從伺服器從主伺服器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔; 過期時長:expire,從伺服器始終聯絡不到主伺服器時,多久之後放棄從主伺服器同步資料;停止提供服務; negativeanswerttl:否定答案的快取時長 主伺服器”通知“從伺服器隨時更新資料; 區域傳送: 全量傳送:axfr,傳送整個資料庫; 增量傳送:ixfr,僅傳送變數的資料; 區域(zone)和域(domain): magedu.com域: FQDN-->IP 正向解析庫;區域 IP-->FQDN 反向解析庫;區域 區域資料庫檔案: 資源記錄:ResourceRecord,簡稱rr; 記錄有型別:A,AAAA,PTR,SOA,NS,CNAME,MX SOA:StartOfAuthority,起始授權記錄;一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條; NS:NameService,域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的; A:Address,地址記錄,FQDN-->IPv4; AAAA:地址記錄,FQDN-->IPv6; CNAME:CanonicalName,別名記錄; PTR:Pointer,IP-->FQDN MX:MaileXchanger,郵件交換器; 優先順序:0-99,數字越小優先順序越高; 資源記錄的定義格式: 語法: name [TTL]IN RR_TYPEvalue 客戶端可以快取的時間 資源記錄 SOA: name:當前區域的名字;例如”magedu.com.”,或者“2.3.4.in-addr.arpa.”; value:有多部分組成 (1)當前區域的區域名稱(也可以使用主DNS伺服器名稱); (2)當前區域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代; (3)(主從服務協調屬性的定義以及否定答案的TTL) 例如: magedu.com.86400INSOAmagedu.com.admin.magedu.com.( 2017010801 ;serial 2H;refresh 10M;retry 1W ;expire 1D ;negativeanswerttl ) NS: name:當前區域的區域名稱 value:當前區域的某DNS伺服器的名字,例如ns.magedu.com.; 注意:一個區域可以有多個ns記錄; 例如: magedu.com.86400INNS ns1.magedu.com. magedu.com.86400INNS ns2.magedu.com. MX: name:當前區域的區域名稱 value:當前區域某郵件交換器的主機名; 注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先順序; 例如: magedu.com.INMX10 mx1.magedu.com. magedu.com.INMX20 mx2.magedu.com. A: name:某FQDN,例如www.magedu.com. value:某IPv4地址; 例如: www.magedu.com. INA 1.1.1.1 www.magedu.com. INA 1.1.1.2 bbs.magedu.com. INA 1.1.1.1 AAAA: name:FQDN value:IPv6 PTR: name:IP地址,有特定格式,IP反過來寫,而且加特定字尾;例如1.2.3.4的記錄應該寫為4.3.2.1.in-addr.arpa.; value:FQND 例如: 4.3.2.1.in-addr.arpa. INPTR www.magedu.com. CNAME: name:FQDN格式的別名; value:FQDN格式的正式名字; 例如: web.magedu.com. IN CNAMEwww.magedu.com. 注意: (1)TTL可以從全域性繼承; (2)@表示當前區域的名稱; (3)相鄰的兩條記錄其name相同時,後面的可省略; (4)對於正向區域來說,各MX,NS等型別的記錄的value為FQDN,此FQDN應該有一個A記錄;
許可權及屬組修改:
[[email protected]~]#chgrpnamed/var/named/wlm.com.zone [[email protected]~]#chmodo=/var/named/wlm.com.zone
檢查語法錯誤:
[[email protected]~]#named-checkzonewlm.com/var/named/wlm.com.zone zonewlm.com/IN:loadedserial2014100101 OK [[email protected]~]#named-checkconf
(3)讓伺服器過載配置檔案和區域資料檔案
#rndcreload或systemctlreloadnamed.service [[email protected]~]#rndcreload serverreloadsuccessful
(4)驗證
[[email protected] ~]# ping ns1.wlm.com
PING ns1.wlm.com (10.10.10.3) 56(84) bytes of data.
64 bytes from 10.10.10.3: icmp_seq=1 ttl=64 time=0.036 ms
[[email protected] ~]# nslookup
> ns1.wlm.com
Server:10.10.10.3
Address:10.10.10.3#53
Name:ns1.wlm.com
Address: 10.10.10.3
4)配置一個反向解析區域
(1)定義區域
在主配置檔案中或主配置檔案輔助配置檔案中實現;
[[email protected]~]#vim/etc/named.rfc1912.zones zone"10.10.10.in-addr.arpa"IN{ typemaster; file"10.10.10.zone"; };
zone"ZONE_NAME"IN{ type{master|slave|hint|forward}; file"ZONE_NAME.zone"; }; 注意:反向區域的名字 反寫的網段地址.in-addr.arpa 示例:100.16.172.in-addr.arpa
(2) 定義區域解析庫檔案(主要記錄為PTR)
在/var/named目錄下建立區域資料檔案;示例:區域名稱為100.16.172.in-addr.arpa;(反過來寫IP)
[[email protected]named]#vim/var/named/10.10.10.zone $TTL3600 $ORIGIN10.10.10.in-addr.arpa. @INSOAns1.wlm.com.nsadmin.wlm.com.( 2014100801 1H 10M 3D 12H) INNSns1.wlm.com. 3INPTRns1.wlm.com. 100INPTRmx1.wlm.com. 200INPTRmx2.wlm.com. 4INPTRwww.wlm.com.
許可權及屬組修改:
[[email protected]named]#chmodo=/var/named/10.10.10.zone [[email protected]named]#chgrpnamed/var/named/10.10.10.zone
檢查語法錯誤:
zonewlm.com/IN:loadedserial2014100101 OK [[email protected]named]#named-checkconf
(3) 讓伺服器過載配置檔案和區域資料檔案
#rndcreload或 #systemctlreloadnamed.service
驗證:
[[email protected]named]#dig-x10.10.10.3 ;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-x10.10.10.3 ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:25014 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:1,ADDITIONAL:2 ;;OPTPSEUDOSECTION: ;EDNS:version:0,flags:;udp:4096 ;;QUESTIONSECTION: ;3.10.10.10.in-addr.arpa. IN PTR ;;ANSWERSECTION: 3.10.10.10.in-addr.arpa.3600 IN PTR ns1.wlm.com. ;;AUTHORITYSECTION: 10.10.10.in-addr.arpa. 3600 IN NS ns1.wlm.com. ;;ADDITIONALSECTION: ns1.wlm.com. 3600 IN A 10.10.10.3 ;;Querytime:26msec ;;SERVER:10.10.10.3#53(10.10.10.3) ;;WHEN:三11月1613:55:13CST2016 ;;MSGSIZErcvd:107
至此,主域名伺服器已經配置好了。已經可以使用了。
5、輔域名伺服器配置
在準備工作已經說過了,這裡在新增上/etc/named.conf的配置
options{ listen-onport53{127.0.0.1;10.10.10.10;}; listen-on-v6port53{::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;}; allow-transfer{none;}; /* -IfyouarebuildinganAUTHORITATIVEDNSserver,doNOTenablerecursion. -IfyouarebuildingaRECURSIVE(caching)DNSserver,youneedtoenable recursion. -IfyourrecursiveDNSserverhasapublicIPaddress,youMUSTenableaccess controltolimitqueriestoyourlegitimateusers.Failingtodosowill causeyourservertobecomepartoflargescaleDNSamplification attacks.ImplementingBCP38withinyournetworkwouldgreatly reducesuchattacksurface */ recursionyes; dnssec-enableno; dnssec-validationno;
配置一個從區域:
1)在master DNS上新增NS記錄和A記錄
在Master上,確保區域資料檔案中為每個從服務配置NS記錄,並且在正向區域檔案需要每個從伺服器的NS記錄的主機名配置一個A記錄,且此A後面的地址為真正的從伺服器的IP地址;
$TTL3600 $ORIGINwlm.com. @INSOAns1.wlm.com.dnsadmin.wlm.com.( 2014100101#如果slave要過載配置,這需要變更序列號 1H 10M 3D 1D) INNSns1 INNSns2#NS記錄 INMX10mx1 INMX20mx2 ns2INA10.10.10.10#A記錄 ns1INA10.10.10.3 mx1INA10.10.10.100 mx2INA10.10.10.200 wwwINA10.10.10.4 webINCNAMEwww
語法檢查並重新配置
[[email protected]named]#named-checkzonewlm.com/var/named/wlm.com.zone zonewlm.com/IN:loadedserial2014100101 OK [[email protected]named]#rndcreload serverreloadsuccessful
2) 在slave DNS上定義區域
[[email protected]~]#vim/etc/named.rfc1912.zones zone"wlm.com"IN{ typeslave;#slave標記為從伺服器 file"slaves/wlm.com.zone";#×××區域檔案在/var/named/slaves目錄下,特定的 masters{10.10.10.3;};#填寫主域名伺服器IP };
書寫格式: zone"ZONE_NAME"IN{ typeslave; file"slaves/ZONE_NAME.zone"; masters{MASTER_IP;}; };
3) 過載配置
配置檔案語法檢查 named-checkconf
過載配置 rndcreload systemctlreloadnamed.service
說明:當主域名伺服器裡添加了新記錄,只需要主域名伺服器過載配置,從域名伺服器自動同步。
驗證:
(1)在/var/named/slaves目錄下自動同步wlm.com.zone檔案
[[email protected]slaves]#pwd /var/named/slaves [[email protected]slaves]#ls wlm.com.zone
(2)可以解析域名
[[email protected]slaves]#dig-tAwww.wlm.com ;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tAwww.wlm.com ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:27069 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:3 ;;OPTPSEUDOSECTION: ;EDNS:version:0,flags:;udp:4096 ;;QUESTIONSECTION: ;www.wlm.com. IN A ;;ANSWERSECTION: www.wlm.com. 3600 IN A 10.10.10.4 ;;AUTHORITYSECTION: wlm.com. 3600 IN NS ns1.wlm.com. wlm.com. 3600 IN NS ns2.wlm.com. ;;ADDITIONALSECTION: ns1.wlm.com. 3600 IN A 10.10.10.3 ns2.wlm.com. 3600 IN A 10.10.10.10 ;;Querytime:1msec ;;SERVER:10.10.10.10#53(10.10.10.10) ;;WHEN:三11月1614:20:52CST2016 ;;MSGSIZErcvd:124
至此,輔域名伺服器配置完畢
6、快取域名伺服器配置
在上面的準備工作做完了,預設就配置好了快取域名伺服器。
但是我們這裡還有在做兩點,為大家更好的理解域名伺服器的配置。
定義轉發:
注意:被轉發的伺服器必須允許為當前服務做遞迴;
1) 區域轉發:僅轉發對某特定區域的解析請求;
配置格式: zone"ZONE_NAME"IN{ typeforward; forward{first|only}; forwarders{SERVER_IP;}; }; first:首先轉發;轉發器不響應時,自行去迭代查詢; only:只轉發;
具體配置:
[[email protected]~]#vim/etc/named.rfc1912.zones#在最後面新增 zone"wlm.com"IN{ typeforward; forwardfirst; forwarders{10.10.10.3;}; };
語法檢查,重啟bind
[[email protected]~]#named-checkconf [[email protected]~]#systemctlrestartnamed.service
驗證:
[[email protected]~]#dig-tAwww.wlm.com ;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tAwww.wlm.com ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:5158 ;;flags:qrrdra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:3 ;;OPTPSEUDOSECTION: ;EDNS:version:0,flags:;udp:4096 ;;QUESTIONSECTION: ;www.wlm.com. IN A ;;ANSWERSECTION: www.wlm.com. 3600 IN A 10.10.10.4 ;;AUTHORITYSECTION: wlm.com. 3600 IN NS ns2.wlm.com. wlm.com. 3600 IN NS ns1.wlm.com. ;;ADDITIONALSECTION: ns1.wlm.com. 3600 IN A 10.10.10.3 ns2.wlm.com. 3600 IN A 10.10.10.10 ;;Querytime:53msec ;;SERVER:10.10.10.11#53(10.10.10.11) ;;WHEN:三11月1615:20:59CST2016 ;;MSGSIZErcvd:124
2) 全域性轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;
配置格式: options{ ...... forward{only|first}; forwarders{SERVER_IP;}; ..... };
具體配置:
vim/etc/named.conf options{ listen-onport53{127.0.0.1;10.10.10.11;};#監聽本機的IP埠 listen-on-v6port53{::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;};#允許為其他主機解析 allow-transfer{none;};#從伺服器不需要傳送 forwardfirst;#本機不能解析的轉發給10.10.10.3做解析 forwarders{10.10.10.3;};#被轉發的伺服器IP /* -IfyouarebuildinganAUTHORITATIVEDNSserver,doNOTenablerecursion. -IfyouarebuildingaRECURSIVE(caching)DNSserver,youneedtoenable recursion. -IfyourrecursiveDNSserverhasapublicIPaddress,youMUSTenableaccess controltolimitqueriestoyourlegitimateusers.Failingtodosowill causeyourservertobecomepartoflargescaleDNSamplification attacks.ImplementingBCP38withinyournetworkwouldgreatly reducesuchattacksurface */ recursionyes; dnssec-enableno;#關閉 dnssec-validationno;#關閉
語法檢查然後重啟bind
[[email protected]~]#systemctlrestartnamed.service
驗證:
[[email protected]~]#pingwww.baidu.com PINGwww.a.shifen.com(220.181.112.244)56(84)bytesofdata. 64bytesfrom220.181.112.244:icmp_seq=1ttl=128time=6.67ms p64bytesfrom220.181.112.244:icmp_seq=2ttl=128time=6.60ms ^C ---www.a.shifen.compingstatistics--- 2packetstransmitted,2received,0%packetloss,time1005ms rttmin/avg/max/mdev=6.608/6.640/6.672/0.032ms [[email protected]~]#pingwww.wlm.com PINGwww.wlm.com(10.10.10.4)56(84)bytesofdata. ^C ---www.wlm.compingstatistics--- 2packetstransmitted,0received,100%packetloss,time1001ms
總結:總體上,DNS的配置還是比較簡單的。雖然在日常運維中,可能不需要進行實戰,畢竟企業內部部署域名伺服器的不多,即使有,也是後期的維護了。但是作為運維人員,熟悉DNS的工作原理是非常必要的,通過這些配置,我相信你已經真正的熟悉了DNS。
本來還想配置子域名伺服器的,後來覺得沒必要了。具體的邏輯圖如下,供大家參考。
轉載於:https://blog.51cto.com/afterdawn/1420116