DNS:Domain Name Service 域名解析服務,工做在應用層,是互聯網的一項服務。它做爲將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便地訪問互聯網。DNS監聽在TCP和UDP端口53。html
FQDN:全稱域名,如 www.example.com
web
www
是主機名example.com
是域名實現名稱到IP解析的有三種方式:數據庫
權威的DNS服務器:記錄主機名到IP的DNS服務器叫作權威的DNS服務器vim
主從DNS服務器:主服務器記錄發生變化,會同步到從服務器,(主從複製),實現容錯機制緩存
DNS的查詢類型:安全
DNS的解析類型:正反向解析是兩個不一樣的名稱空間,是兩棵不一樣的解析樹服務器
正向解析:FQDN --> IP網絡
反向解析:IP ---> FQDN 如郵件服務器須要用到反向解析技術session
DNS服務器的類型:架構
.com
等後綴的域,代理DNS服務器會拿到.com
域的DNS服務器IP.com.
域的DNS服務器,若是仍是沒有找到主機,則再往它的下一級找,直到找到具體的主機,把IP返回給客戶端,同時代理DNS服務器也會緩存一份到本地一次完整的查詢請求通過的流程:Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名DNS…
ICANN(The Internet Corporation for Assigned Names and Numbers)互聯網名稱與數字地址分配機構,負責在全球範圍內對互聯網通用頂級域名(gTLD)以及國家和地區頂級域名(ccTLD)系統的管理、以及根服務器系統的管理
dig:只用於測試dns系統,不會查詢hosts文件進行解析
host
rndc
named-checkconf:檢查配置文件的語法
named-checkzone "dongfei.com" /var/named/dongfei.com.zone :查詢區域數據庫文件的語法
DNS的實現:bind(Bekerley Internat Name Domain ) ,由 ISC (www.isc.org) 維護,本章全部配置實例的bind版本爲 :bind-9.9.4-61.el7.x86_64
軟件包名:bind
服務名:named
提供的服務:DNS域名解析
主配置文件:/etc/named.conf
options { #全局選項 listen-on port 53 { 127.0.0.1; }; //默認監聽本機的53號端口,若是沒有其餘需求則註釋掉 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|no; //遞歸查詢,默認開啓 dnssec-enable yes; //sec功能,與安全加密傳輸相關的選項,若是要作轉發,須要關閉此選項 dnssec-validation yes; //同上一條,須要關閉 bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; allow-transfer { none; }:容許區域傳送的主機;白名單,默認開啓,建議關閉 }; 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";
DNS解析數據庫文件存放位置:/var/named/
區域定義:/etc/named.rfc1912.zones
zone "test.com" IN { //internation 記錄 type {master|slave|hint|forward}; //類型,主服務器 file "test.com.zone"; //區域數據庫文件 };
區域文件模板:/etc/named.rfc1912.zones
# cat /var/named/named.localhost $TTL 1D #默認的TTL值 @ IN SOA @ rname.invalid. ( #SOA記錄 0 ; serial #序列號 1D ; refresh #主從複製的時間間隔 1H ; retry #若是主從複製失敗重試時間 1W ; expire #失效時間 3H ) ; minimum #否認答案的TTL值 NS @ #名字服務器記錄 A 127.0.0.1 #正向解析記錄 AAAA ::1 #IPv6的正向解析記錄
資源記錄:Resource Record 簡稱 RR
語法格式:name [TTL] IN rr_type value
www.example.com.
,注意:最後的 "." 必定要加,若是不加則會把你的域名當成區域名字,再在後邊加上你的默認域名。 「@」:表示當前域名的名字TTL:例如$TTL 1D
的意思是默認的TTL值爲1天
TTL(Time- To-Live),簡單的說它表示一條域名解析記錄在DNS服務器上緩存時間.當各地的DNS服務器接受到解析請求時,就會向域名指定的DNS服務器發出解析請求從而得到解析記錄;在得到這個記錄以後,記錄會在DNS服務器中保存一段時間,這段時間內若是再接到這個域名的解析請求,DNS服務器將再也不向DNS服務器發出請求,而是直接返回剛纔得到的記錄;而這個記錄在DNS服務器上保留的時間,就是TTL值。
同一個名字能夠經過多條記錄定義多個不一樣的值;此時DNS服務器會以輪詢方式響應
同一個值也可能有多個不一樣的定義名字;經過多個不一樣的名字指向同一個值進行定義;此僅表示經過多個不一樣的名字能夠找到同一個主機
主機名(簡稱只寫主機名,如www) A ip地址 @ A 192.168.0.12 //不須要輸入www,直接輸入域名則可訪問此網站 * A 192.168.0.12 //泛域名解析,只要請求的是這個域,可是沒有匹配的主機,則應答此條記錄 $GENERATE 1-254 websvr$ A 192.168.0.$ //循環,表示websvr1 A 192.168.0.1 到 websvr254 A 192.168.0.254的254條記錄
12 PTR websrv.dongfei.com. 14 PTR web2srv.dongfei.com. 100 PTR mailsrv.dongfei.com.
NS dns //表示192.168.0.1這臺主機是這個域的dns服務器 dns A 192.168.0.1
websrv A 192.168.0.10 websrv A 192.168.0.11 websrv A 192.168.0.12 www CNAME websrv //訪問www.xxxx.com的時候則表明訪問192.168.0.10-12,DNS會作輪調應答,實現負載均衡的功能
@ MX 10 mailsrv1 @ MX 20 mailsrv2 mailsrv1 A 192.168.0.100 mailsrv2 A 192.168.0.200
SOA記錄的格式:域名稱 IN SOA 主DNS主機名 域管理員郵箱 (序列號 主從同步的時間間隔 同步失敗的嘗試時間間隔 聯繫不上主DNS多長時間後失效 域名沒法找到,在多長時間內不會再去查詢)
@ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H )
1)安裝bind
# yum install bind # systemctl start named
2)修改主配置文件,將下邊倆條註釋掉
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; //監聽本機的全部地址 // allow-query { localhost; }; //容許給全部客戶端解析
3)修改區域數據文件
# vim /etc/named.rfc1912.zones zone "dongfei.com" IN { //internation 記錄 type master; //類型,主服務器 file "dongfei.com.zone"; //區域數據庫文件,指向/var/named/dongfei.com.zone };
4)新建區域解析數據庫文件,/var/named/dongfei.com.zone
# vim /var/named/dongfei.com.zone $TTL 1D //表明全局的TTL值 @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) //SOA記錄,按格式寫 NS dns1 //NS記錄,域中有幾個DNS服務器都要寫出來 dns1 A 192.168.0.7 //NDS服務器的A記錄,0.7是本機的IP www A 192.168.0.6 //一條正向解析記錄,這裏的0.6是web服務器 # chgrp named /var/named/dongfei.com.zone //切記,修改文件的權限和所屬組,保證named進程有此文件的可讀屬性 # chmod 640 /var/named/dongfei.com.zone # ll /var/named/dongfei.com.zone -rw-r-----. 1 root named 120 Jun 1 19:39 /var/named/dongfei.com.zone
5)測試
# named-checkconf //檢查主配置文件 # named-checkzone "dongfei.com" /var/named/dongfei.com.zone //檢查 # rndc reload //重載配置文件 # dig www.dongfei.com @192.168.0.7 //在客戶端上使用dig命令測試,若是返回有如下值則說明成功 ;; ANSWER SECTION: www.dongfei.com. 86400 IN A 192.168.0.6
1)在/etc/name.rfc1912.zone中加入
zone "0.168.192.in-addr.arpa" IN { //地址須要反着寫,與正向解析不一樣,是另外一顆樹 type master; file "192.168.0.zone"; };
2)建立區域數據文件
# vim /var/named/192.168.0.zone $TTL 1D @ IN SOA dns.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) NS dns.dongfei.com. dns.dongfei.com A 192.168.0.7 100 PTR mail.dongfei.com. # chgrp named /var/named/192.168.0.zone # chmod 640 /var/named/192.168.0.zone # rndc reload
3)重載配置文件,測試
# vim /etc/resolv.conf nameserver 192.168.0.7 //在客戶端將DNS服務器指向咱們配置的DNS服務器 # dig -x 192.168.0.100 //測試,若是出現如下信息則表示成功 ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR mail.dongfei.com.
1)打開容許指定主機更新數據庫
zone "dongfei.com" IN { type master; file "dongfei.com.zone"; allow-update { 192.168.0.6; }; //容許192.168.0.6遠程更新數據庫 };
2)放開數據庫文件夾和文件的權限
# chmod 770 /var/named/ # ll -d /var/named/ drwxrwx---. 5 root named 173 Jun 1 20:55 /var/named/ # rndc reload
3)在客戶端測試,上傳一條更新記錄
# nsupdate > server 192.168.0.7 > zone dongfei.com > update add ftp.dongfei.com 86400 IN A 192.168.0.101 > send > quit # dig ftp.dongfei.com @192.168.0.7 // 出現如下信息表示成功 ;; ANSWER SECTION: ftp.dongfei.com. 86400 IN A 192.168.0.101
這時咱們再回來看DNS服務器的/var/named/文件夾下出現了一個
dongfei.com.zone.jnl
的文件,這個文件是更新數據庫的日誌文件,它不會當即同步到區域數據中庫文件中,而是會先存放到日誌文件中,過一下子再向數據庫文件中同步。
# named-journalprint /var/named/dongfei.com.zone.jnl
查看日誌文件
DNS服務通常須要一臺主,倆臺從,若是主DNS服務器出現故障後能夠向從DNS服務器請求解析;客戶端須要將主DNS設置爲主DNS服務器,將從DNS服務器設置爲備DNS服務器
192.168.0.7 爲主DNS服務器
192.168.0.11 爲從DNS服務器
192.168.0.6 爲客戶端
1)主服務器配置
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; allow-transfer { 192.168.0.11; }; //只容許從DNS服務器同步區域數據庫 # vim /etc/named.rfc1912.zones zone "dongfei.com" IN { type master; file "dongfei.com.zone"; }; # vim /var/named/dongfei.com.zone $TTL 86400 ; 1 day @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 2 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS dns1 NS dns2 //將從DNS服務器的NS記錄添加到此 dns1 A 192.168.0.7 dns2 A 192.168.0.11 //將從DNS服務器的A記錄添加到此 ftp A 192.168.0.101 www A 192.168.0.6 @ MX 10 mail mail A 192.168.0.100
2)配置從DNS服務器
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; allow-transfer { none; }; //爲了數據安全,不容許任何主機從從DNS服務器上拉取區域數據 # vim /etc/named.rfc1912.zones zone "dongfei.com" IN { type slave; //類型爲從服務器 masters { 192.168.0.7; }; //主DNS服務器的IP file "slaves/dongfei.com.zone.slave"; //數據庫文件保存到 /var/named/slaves/ 文件夾下,名字叫dongfei.com.zone.slave }; # systemctl restart named //重啓服務 # ls /var/named/slaves/ //能夠看到數據庫文件則證實已經同步成功 dongfei.com.zone.slave
3)在客戶端測試
# vim /etc/resolv.conf //修改DNS配置文件 ; generated by /sbin/dhclient-script nameserver 192.168.0.7 nameserver 192.168.0.11 # dig www.dongfei.com ;; ANSWER SECTION: www.dongfei.com. 86400 IN A 192.168.0.6 ;; SERVER: 192.168.0.7#53(192.168.0.7)
主服務器能夠正常解析,接下來咱們將主機模擬故障,好比把網絡斷掉
# dig www.dongfei.com //再次在客戶端測試,發現如今已是從服務響應咱們的解析請求了 ;; ANSWER SECTION: www.dongfei.com. 86400 IN A 192.168.0.6 ;; SERVER: 192.168.0.11#53(192.168.0.11) //192.168.0.11是從服務器地址
dig -t axfr magedu.com @192.168.0.7 手動抓取區域記錄
注意:
在互聯網中咱們的單個DNS服務沒法去存儲全部主機的域名到IP的記錄,好比根域,它只是未來至查詢.com
的請求委派給.com
域的DNS服務器,來自.org
的查詢交給.org
域的DNS服務器。具體怎麼實現配置,那咱們來一塊兒研究吧
環境:
父:192.168.0.7,dongfei.com
子:192.168.0.11,bj.dongfei.com
1)配置父域
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; dnssec-enable no; dnssec-validation no; # vim /etc/named.rfc1912.zones zone "dongfei.com" IN { type master; file "dongfei.com.zone"; }; # vim /var/named/dongfei.com.zone $TTL 86400 ; 1 day @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 2 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS dns1 bj NS dns2.dongfei.com. //將bj域的請求委派給dns2來處理 dns1 A 192.168.0.7 dns2 A 192.168.0.11 # chgrp named /var/named/dongfei.com.zone # chmod 640 /var/named/dongfei.com.zone # rndc reload
2)配置子域
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; # vim /etc/named.rfc1912.zones zone "bj.dongfei.com" IN { type master; file "bj.dongfei.com.zone"; }; # vim /var/named/bj.dongfei.com.zone $TTL 1D @ IN SOA dns1.bj.dongfei.com. admin.bj.dongfei.com. ( 1 1D 1H 1W 3H ) NS dns1 dns1 A 192.168.0.11 www A 192.168.0.6 # chgrp named /var/named/bj.dongfei.com.zone # chmod 640 /var/named/bj.dongfei.com.zone # rndc reload
3)在客戶端測試
# dig www.bj.dongfei.com @192.168.0.7 ;; ANSWER SECTION: www.bj.dongfei.com. 86385 IN A 192.168.0.6
注意:被轉發的服務器須要可以爲請求者作遞歸,不然轉發請求不予進行;關閉dnssec功能(dnssec-enable no; dnssec-validation no; )
轉發器類型:
192.168.0.11 爲轉發DNS服務器
192.168.0.7 爲目標DNS服務器
1)配置轉發DNS服務器
# vim /etc/named.conf options { // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; recursion yes; //開啓遞歸查詢 dnssec-enable no; dnssec-validation no; forward only; //only模式 forwarders { 192.168.0.7; }; //目標DNS服務器IP }; # rndc reload //重載配置文件
2)配置目標DNS服務器
# vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-transfer { 192.168.0.11; }; recursion no; //關閉遞歸查詢 dnssec-enable no; dnssec-validation no; # vim /etc/named.rfc1912.zones zone "dongfei.com" IN { type master; file "dongfei.com.zone"; }; # vim /var/named/dongfei.com.zone $TTL 86400 ; 1 day @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 2 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS dns1 dns1 A 192.168.0.7 webs A 192.168.0.6 webs A 192.168.0.5 www CNAME webs @ MX 10 mail mail A 192.168.0.100 ftp A 192.168.0.101 # rndc reload
3)在客戶端測試
# dig www.dongfei.com @192.168.0.11 ;; ANSWER SECTION: www.dongfei.com. 86369 IN CNAME webs.dongfei.com. webs.dongfei.com. 86369 IN A 192.168.0.6 webs.dongfei.com. 86369 IN A 192.168.0.5 ;; SERVER: 192.168.0.11#53(192.168.0.11) //真正的域名解析信息在192.168.0.7上,這裏由0.11代爲去查詢
若是對單個域進行轉發則把配置寫到區域配置文件中便可
# vim /etc/named.rfc1912.zones zone "dongfei.com" { type forward; forward only; forwarders { 192.168.0.7; }; };
在互聯網上各個地區的網絡站點分佈到各個地區,這時就須要按地區爲當地地區的客戶解析到當地的站點服務器,好比在北京和在上海打開同一個網站顯示的信息是不一樣的;這就須要用到智能DNS解析的技術。
電商站點或者視頻站點,這些站點須要快速響應客戶的請求,不可能將服務器搭建到一個地區,而是須要分佈到各個省市,在每一個地方有緩存服務器,這就是CDN: Content Delivery Network內容分發網絡的工做,通常由單獨的CDN公司搭建機房服務於各大電商視頻等站點。
接下來,咱們一塊兒研究一下如何實現智能DNS解析吧
acl: 把一個或多個地址歸併爲一個集合,並經過一個統一的名稱調用;只能先定義,後使用,所以通常定義在配置文件中,處於options的前面
格式:
acl acl_name { ip; net/prelen; …… };
bind有四個內置的acl:
none: 沒有一個主機
any: 任意主機
localhost: 本機
localnet: 本機的IP同掩碼運算後獲得的網絡地址
訪問控制的指令:
view:視圖:實現智能DNS
注意:
(1) 一旦啓用了view,全部的zone都只能定義在view中
(2) 僅在容許遞歸請求的客戶端所在view中定義根區域
(3) 客戶端請求到達時,是自上而下檢查每一個view所服務的客戶端列表
在一臺主機上有倆張網卡,配置倆個網段來模擬來自不一樣地區的客戶
192.168.0.7/24
172.20.111.236/16
1)添加ACL和視圖
# vim /etc/named.conf acl bjnet { //注意,acl要寫在options前邊,並且要注意acl的匹配順序關係,至上而下 192.168.0.0/24; }; acl shnet { 172.20.0.0/16; }; acl othernet { any; }; options { // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; }; view bjview { match-clients {bjnet;}; include "/etc/named.rfc1912.zones.beijing"; }; view shview { match-clients {shnet;}; include "/etc/named.rfc1912.zones.shanghai"; }; view otherview { match-clients {othernet;}; include "/etc/named.rfc1912.zones"; }; include "/etc/named.root.key";
注意:要將默認配置文件中的根區域配置放到/etc/named.rfc1912.zones文件中
2)建立各地區區域配置文件
# vim /etc/named.rfc1912.zones.beijing zone "dongfei.com" { type master; file "dongfei.com.zones.beijing"; };
# vim /etc/named.rfc1912.zones.shanghai zone "dongfei.com" { type master; file "dongfei.com.zones.shanghai"; };
3)配置解析數據庫文件
# vim /var/named/dongfei.com.zones.beijing $TTL 1D @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) NS dns1 dns1 A 192.168.0.7 www A 192.168.0.1
# vim /var/named/dongfei.com.zones.shanghai $TTL 1D @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) NS dns1 dns1 A 172.20.111.236 www A 172.20.111.1
4)在客戶端測試
# dig www.dongfei.com @192.168.0.7 ;; ANSWER SECTION: www.dongfei.com. 86400 IN A 192.168.0.1 ;; SERVER: 192.168.0.7#53(192.168.0.7) # dig www.dongfei.com @172.20.111.236 ;; ANSWER SECTION: www.dongfei.com. 86400 IN A 172.20.111.1 ;; SERVER: 172.20.111.236#53(172.20.111.236)
從上邊的測試結果,從不一樣IP段查詢同一個域名獲得的結果卻不同,從而能夠實現按地區來智能解析
1)192.168.0.1 : web
# echo -e web1.dongfei.com\n\<h1\>hello web1\</h1\> > /var/www/html/index.html # service httpd start # curl 192.168.0.1 # web1.dongfei.comn<h1>hello web1</h1>
2)192.168.0.2 : web2
# echo -e web2.dongfei.com\n\<h2\>hello web1\</h1\> > /var/www/html/index.html # service httpd start # curl 192.168.0.2 web2.dongfei.comn<h2>hello web2</h1>
3)192.168.0.3 :dns1,配置dongfei.com域的主DNS服務器
# vim /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; }; //註釋掉 allow-transfer { 192.168.0.4; }; //只容許192.168.0.4的主機,也就是從DNS來拉取區域解析數據庫 recursion yes; dnssec-enable yes; dnssec-validation yes; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
# vim /etc/named.rfc1912.zones zone "dongfei.com" IN { type master; file "dongfei.com.zone"; };
# vim /var/named/dongfei.com.zone $TTL 1D @ IN SOA dns1.dongfei.com. admin.dongfei.com. ( 1 1D 1H 1W 3H ) NS dns1 NS dns2 dns1 A 192.168.0.3 dns2 A 192.168.0.4 webs A 192.168.0.1 webs A 192.168.0.2 www CNAME webs
# chgrp named /var/named/dongfei.com.zone # chmod 640 /var/named/dongfei.com.zone # named-checkconf # named-checkzone "dongfei.com" /var/named/dongfei.com.zone # service named start # dig www.dongfei.com @192.168.0.3 ;; ANSWER SECTION: www.dongfei.com. 86400 IN CNAME webs.dongfei.com. webs.dongfei.com. 86400 IN A 192.168.0.1 webs.dongfei.com. 86400 IN A 192.168.0.2
4)192.168.0.4 :dns2,配置dongfei.com域的從DNS服務器
# vim /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; }; //註釋掉 allow-transfer { none; }; //不對任何主機作區域傳送 recursion yes; dnssec-enable yes; dnssec-validation yes; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
# vim /etc/named.rfc1912.zones zone "dongfei.com" { type slave; //類型爲從服務器 masters { 192.168.0.3; }; //指向誰是個人主服務器 file "slaves/dongfei.com.zone.slave"; //解析數據庫存放位置 };
# named-checkconf # service named start # ls -l /var/named/slaves/ //查看一下有沒有數據庫文件,有則說明同步成功 -rw-r--r--. 1 named named 417 May 19 22:09 dongfei.com.zone.slave
5)192.168.0.5 :com. 配置子域委派
# vim /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 yes; dnssec-validation yes; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
# vim /etc/named.rfc1912.zones zone "com" IN { type master; file "com.zone"; };
# vim /var/named/com.zone @ IN SOA dns1.com. admin.com. ( 1 1D 1H 1W 3H ) NS dns1 dongfei NS dns2.com. //子域委派給192.168.0.3和192.168.0.4 dns1 A 192.168.0.5 dns2 A 192.168.0.3 dns2 A 192.168.0.4
# chgrp named /var/named/com.zone # chmod 640 /var/named/com.zone # named-checkconf # service named start # dig www.dongfei.com @192.168.0.5 www.dongfei.com. 86387 IN CNAME webs.dongfei.com. webs.dongfei.com. 86387 IN A 192.168.0.1 webs.dongfei.com. 86387 IN A 192.168.0.2 ;; AUTHORITY SECTION: dongfei.com. 86400 IN NS dns2.com. ;; ADDITIONAL SECTION: dns2.com. 86400 IN A 192.168.0.4 dns2.com. 86400 IN A 192.168.0.3 ;; SERVER: 192.168.0.5#53(192.168.0.5)
6)192.168.0.6 :根域配置
# vim /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; dnssec-validation no; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
# vim /etc/named.rfc1912.zones zone "." { type master; file "root.zone"; };
# vim /var/named/root.zone $TTL 1D @ IN SOA dns1. admin. ( 1 1D 2H 3D 1H ) NS dns1 com NS dns2 dns1 A 192.168.0.6 dns2 A 192.168.0.5
# chgrp named /var/named/root.zone # chmod 640 /var/named/root.zone # service named start # dig www.dongfei.com @127.0.0.1 ;; ANSWER SECTION: www.dongfei.com. 86177 IN CNAME webs.dongfei.com. webs.dongfei.com. 86177 IN A 192.168.0.1 webs.dongfei.com. 86177 IN A 192.168.0.2
7)192.168.0.7 :緩存DNS服務器配置
# vim /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; dnssec-validation no; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; zone "." IN { type hint; file "named.ca"; };
# vim /var/named/named.ca . 3600000 NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 192.168.0.6 //將根服務器指向咱們本身搭建的根DNS服務器
# service named start
8)192.168.0.8 :在客戶端測試
# vim /etc/resolv.conf nameserver 192.168.0.7 //將本身的DNS服務器指向緩存服務器
# dig www.dongfei.com //出現如下信息則說明成功 ;; ANSWER SECTION: www.dongfei.com. 86319 IN CNAME webs.dongfei.com. webs.dongfei.com. 86319 IN A 192.168.0.1 webs.dongfei.com. 86319 IN A 192.168.0.2 ;; SERVER: 192.168.0.7#53(192.168.0.7)
到此爲止,咱們能夠訪問如下www.dongfei.com,看看是否能夠正常解析
[root@client ~]# curl www.dongfei.com web2.dongfei.comn<h2>hello web2</h1> [root@client ~]# curl www.dongfei.com web1.dongfei.comn<h1>hello web1</h1> [root@client ~]# curl www.dongfei.com web2.dongfei.comn<h2>hello web2</h1> [root@client ~]# curl www.dongfei.com web1.dongfei.comn<h1>hello web1</h1>
從測試結果看來,不只能夠正常解析,還實現了DNS負載均衡的功能。
學習 ^_^ date 2018.06.02 16.37