目錄:
一、理論部分
二、實驗部分
******************************理論部分***************************************
正文:
一、什麼是DNS服務.
DNS服務是互聯網的基礎性服務之一.全稱為Domain Name System(域名系統).DNS是因特網上作為域名和IP地址相互映射的一個分布式數據庫,提供將域名轉換成對應IP地址的信息條目,能夠使用戶更方便的通過域名(如baidu.com)去訪問互聯網,而不用去記住能夠被機器直接讀取的IP地址。這種將域名轉換成ip地址的方法稱為域名解析.
二、企業自建DNS的目的.
其實互聯網上已有現成的DNS服務器,那麼企業內部為什麼還要自建DNS服務器呢?
主要原因如下:
節省內網域名解析占用的上網帶寬;
方便解析內網服務器IP地址;
內網有域環境,域中的計算機通過內網的DNS定位域控制器(Windows)
...
三、DNS基礎原理詳解.
1、DNS采用C/S架構,服務器端工作在TCP/UDP協議的53號端口.是應用層的協議.
2、BIND: Bekerley Internet Name Domain (伯克利因特網名字域系統), ISC (www.isc.org)
3、對於DNS服務使用TCP和UDP協議的解釋:
a. TCP:面向連接的協議; (每次連接前須三次握手,斷開時須四次斷開,使得傳輸一段很小的數據時浪費大量時間,所以dns多使用53/udp). b. UDP: User Datagram Protocol(用戶數據報文協議), 無連接的協議
c. DNS在進行區域傳送時使用TCP協議,其它時候則使用UDP協議;
d. TCP是一種可靠的連接,保證了數據的准確性。 e. named進程查詢時使用的是UDP協議的53號端口發送UDP報文。響應通過UDP報文返回,除非他們大於512K,這種情況使用TCP。服務器之間的"區域傳送"則都使用TCP。
4、區域傳送:
當一個輔助(從)DNS服務器啟動時,它需要與主DNS服務器通信,並加載(同步)數據信息,這就叫做區域傳送(zone transfer)。 5、DNS域名:
根域:全球所有的DNS都要聽從於它;
頂級域名:Top Level Domain:tld;
.com .edu .mil .gov .net .org ...
三類:組織域,國家域(.cn, .iq, .hk, .tw, ...),反向域
二級域名:
google.com youtube.com baidu.com ...
三級域名:
www.google.com mail.google.com stu.google.com
最多127級域名
6、DNS查詢類型
a. 遞歸查詢
客戶端只發出一次請求一定要得到最終結果;(主機向本地域名服務器的查詢一般都是采用遞歸查詢.)
b. 迭代查詢
服務器發出多次請求,層層請求後返回最終結果;(本地域名服務器向根域名服務器的查詢(域名服務器之間的查詢)一般都是采用迭代查詢)
圖解:
7. 名稱服務器: 域內負責解析本域內名稱的主機; 根服務器: 指13組服務器,異地多活.
8. DNS解析類型:
正向解析: Name --> IP (絕大多數都能正向解析)
反向解析: IP --> Name (部分解析不了,該解析類型常用在郵件服務反向解析,來判斷是否為垃圾郵件)
注:正反向解析是兩個不同的名稱空間,是兩棵不同的解析樹;
9. DNS服務器的類型:
主DNS服務器 輔助(從)DNS服務器 緩存DNS服務器 轉發器
主DNS服務器:維護所負責解析的域內解析庫服務器;解析庫由管理員維護; 從DNS服務器:從主DNS服務器或其他的從DNS服務器那裡"復制"(區域傳送)一份解析庫; 從DNS服務器到主DNS服務器處的傳送,之間有一系列定義,主要定義在SOA資源記錄當中,包括: 序列號:解析庫的版本號(同步後主從一致);前提是主服務器解析庫內容發生變化,其序列號遞增(每 次加1);(數字最長不要超過十位); 刷新時間:從服務器從主服務器請求同步解析庫的時間間隔; 重試時間間隔:從服務器從主服務器請求同步解析庫失敗時,再次嘗試的時間間隔,重試時間須小於刷 新時間,否則無意義. 過期時長:從服務器始終聯系不到主服務器時,多久之後放棄從服務器角色,停止提供服務; 通知"機制:主服務器發生變化後,會通知從服務器及時更新解析庫,即使更新時間沒到也會通知從服 務器,避免從服務器落後主服務器太多.
10. 區域傳送類型:
a. 全量傳送:傳送整個解析庫; b. 增量傳送:傳送解析庫發生變化的那部分內容;
11. 對從服務器及區域傳送的理解:
從服務器要從主服務器同步.首先,從服務器如何知道主服務器已更新解析庫? 主要在於序列號,主服務器每更新一次解析庫,序列號都會主動加1; 正常情況下,主從服務器的序列號相同.從服務器通過刷新時間從主服務器處對比序列號並請求同步解析庫的時間間隔.還有重試時間間隔和過期時長.
12. 一次完整的查詢/解析請求經過的流程: Client --> 本地hosts文件 --> DNS Service Local Cache -->DNS Server(Iesursion) --> Server Cache-->Iteration
13. 區域解析庫:
由眾多RR組成; 資源記錄: Resource Record, RR 記錄類型: A, AAAA, PTR, SOA, NS, CNAME, MX等 SOA: Start Of Authority,起始授權記錄,一個區域解析庫有且僅能有一個SOA記錄,而且必須為解析庫的第一條記錄; A: internet Address, 作用:FQDN --> IP AAAA: FQDN --> IPv6 PTR: PointTeR, IP -->FQDN NS: Name Server,專用於標明當前區域的DNS服務器 CNAME: Canonical Name,別名記錄.正式名稱 MX: Mail exchanger, 郵件交換器 資源記錄定義的格式: 語法:name [TTL] IN rr_type value 注意: (1) TTL可從全局繼承; (2) @可用於引用當前區域的名字; (3) 同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務器會以輪詢方式響應; (4) 同一個值也會有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義; SOA: name:當前區域的名字,例如"baidu.com."; value:有多部分組成 (1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字; (2)當前區域管理員的郵箱地址;但地址中不能用@符號,一般用.替換,如linuxedu.163.com (3)主從服務協調屬性的定義以及否定的答案的統一的TTL. 例如:
baidu.com.86400INSOAns.baidu.com.nsadmin.baidu.com.( 2015042201;序列號 2H;刷新時間 10M;重試時間 1W;過期時間 1D;否定答案的TTL值 )
注:不帶單位,默認為秒鐘; NS: name:當前區域的名字; value:當前區域的某DNS服務器的名字,例如 ns.baidu.com.; 注:一個區域可以有多個NS記錄;例如:
baidu.com.INNSns1.baidu.com.//此處nsx.baidu.com.可寫成nsx(注:nsx後面沒有點號) baidu.com.INNSns2.baidu.com.
注: (1)相鄰的兩個資源記錄的name相同時,後續的可省略; (2)對NS記錄而言,任何一個ns記錄後面的服務器名字,都應該在後續有一個A記錄; MX: name: 當前區域的名字; value: 當前區域的某郵件服務器(smtp服務器)的主機名; 注:一個區域內,MX記錄可有多個;但每個記錄的value之前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高; 例:
baidu.com.INMX10mx1.baidu.com. INMX20mx2.baidu.com.
注: (1)對MX記錄而言,任何一個MX記錄後面的服務器名字,都應該在後續有一個A記錄; A: name:其主機的FQDN,例如www.baidu.com. value:主機名對應主機的IP地址;
例:
www.baidu.com.INA1.1.1.1 www.baidu.com.INA1.1.1.2 mx1.baidu.com.INA1.1.1.3 mx2.baidu.com.INA1.1.1.3
注: 避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址,如下:
*.baidu.com.INA1.1.1.4 baidu.com.INA1.1.1.4
AAAA: name:FQDN value: IPv6 PTR: name: IP ,有特定格式; value: FQDN
注: name處的IP有特定格式,需要把IP地址反過來寫,1.2.3.4,要寫作4.3.2.1;而且有特定後綴:.in-addr.arpa.,所以完整寫法為:4.3.2.1.in-addra.arpa. 例如:
4.3.2.1.in-addr.arpaINPTRwww.baidu.com 簡寫成: 4INPTRwww.baidu.com.
注:網絡地址及後綴可省略;主機地址依然需要反著寫: CNAME: name: 別名的FQDN; value: 正規名字的FQDN; 例:
web.baidu.com.INCNAMEwww.baidu.com.
14. 子域授權:
每個域的名稱服務器,都是通過其上級名稱服務器在解析庫進行授權;
類似根域授權tld:
.com.INNSns1.com .com.INNSns2.com ns1.com.INA2.2.2.1 ns2.com.INA2.2.2.2
baidu.com. 在.com的名稱服務器上,解析庫中添加資源記錄;
baidu.com.INNSns1.baidu.com. baidu.com.INNSns2.baidu.com. baidu.com.INNSns3.baidu.com. ns1.baidu.com.INA3.3.3.1 ns2.baidu.com.INA3.3.3.2 ns3.baidu.com.INA3.3.3.3
15. BIND的安裝配置: dns服務,程序包名bind, 程序名named 程序包: bind.X86_64 提供服務 bind-libs 提供庫文件 bind-utils 提供測試服務,測試服務是否ok
#rpm-qlbind-utils /usr/bin/dig /usr/bin/host /usr/bin/nslookup /usr/bin/nsupdate
bind-chroot: /var/named/chroot/ bind-chroot.x86_64 測試環境不可安裝. 安全性.
bind: 服務腳本: /etc/rc.d/init.d/named 主配置文件: /etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key 解析庫文件: /var/named/ZONE_NAME.ZONE 分正向和反向. named守護進程–用來回答查詢結果
[root@localhostnamed]#pwd /var/named [root@localhostnamed]#catnamed.localhost $TTL1D @[email protected].( 0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum NS@ A127.0.0.1 AAAA::1
[root@localhostnamed]# [root@localhostnamed]#catnamed.loopback $TTL1D @[email protected].( 0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum NS@ A127.0.0.1 AAAA::1 PTRlocalhost. [root@localhostnamed]#
注: (1) 一台物理服務器可同時為多個區域提供解析; (2) 必須要有根區域文件:/var/named/named.ca (3) 應該有兩個(如果包括ipv6的,應該更多)實現localhost和本地回環地址的解析庫; rndc:
remote name domain controller,默認與bind安裝在同一主機,且只能通過127.0.0.1來連接named進程,提供輔助性的管理功能; 953/tcp 主配置文件: 全局配置:options {} 日志子系統配置:logging {} 區域定義: 本機能夠為哪些zone進行解析,就要定義哪些zone; zone "ZONE_NAME" IN {} 注意:任何服務程序如果期望其能夠通過網絡被其他主機訪問,至少應該監聽在一個能夠與外部主機通信的IP地址上;
四、各類型服務器配置介紹:
緩存DNS服務器:
修改配置文件/etc/named.conf,使DNS服務53號端口監聽於外部地址即可;
dnssec作用:防止DNS被污染; 配置麻煩,建議測試做實驗時關閉dnssec;即改為no
2. 主DNS名稱服務器: 在緩存名稱服務器的基礎上加zone的定義即可; (1)在主配置文件/etc/named.rfc1912.zones中定義區域 zone "ZONE_NAME" IN { type {master|slave|hint|forward}; file "ZONE_NAME.zone"; //區域解析庫文件路徑 }; (2)定義區域解析庫文件 出現的內容: 宏(變量)定義; 資源定義;
反向區域配置:
區域名稱:網絡地址反寫.in-addr. 172.16.100. --> 100.16.172.in-addr.arpa. 保留不變的部分當做區域名字 定義區域 zone "ZONE_NAME" IN { type {master|slave|forward}; file "網絡地址.zone" };
注: 不需要MX和A,以及AAAA記錄,以PTR記錄為主;
正向區域中的別名記錄(CNAME)在反向區域不需要反解.
3.:通過區域傳送實現主從同步:
配置一台正向從DNS服務器:
定義從區域的方法: zone "ZONE_NAME" IN { type slave; masters { MASTER_IP; }; file "slaves/ZONE_NAME.zone"; };
總結: 1: 從服務器應該為一台獨立的名稱服務器; 2: 主服務器的區域解析庫文件中必須有一條NS記錄是指向從服務器的; 3: 從服務器只需要定義區域,而無需提供解析庫文件;如果是采用rpm方法安裝的,解析庫文件應該放置於/var/named/slaves目錄中;否則需要改/var/named 目錄的權限,不然寫不進去. 4: 主服務器得允許從服務器作區域傳送;區域傳送對方會獲取本區域的所有解析記錄,很危險,應選擇性開放; 5: 主從服務器時間應該同步,可通過ntp進行; 6: bind程序的版本應該保持一致;否則,應該從高,主低,達到兼容性要求; 7: 一個區域內只能有一個主DNS服務器,但可以有多個從DNS服務器.一主一從或一主多從
4. 檢查配置語法是否錯誤的命令:
#named-checkconf #named-checkzone 5. 查看服務器的當前系統狀態: # rndc status 6.測試命令:
dig的使用 dig [-t type] name [@SERVER] [query options] dig用於測試dns系統,因此不會查詢hosts文件進行解析; 查詢選項: +[no]trace: 跟蹤解析過程 +[no]recurse: 進行遞歸解析 測試反向解析: dig -x IP @SERVER 模擬區域傳送: --查看區域中的所有資源記錄,比較危險. dig -t axfr ZONE_NAME @SERVER 資源記錄中的某台客戶機想解析dns,如果報錯,可能是因為防火牆導致的 解析時,如果將該DNS服務器的IP寫入本機/etc/resolv.conf文件下,則之後測試時無需在命令行末尾加該DNS Server IP.
host命令: host [-t type] name [SERVER] nslookup命令: nslookup [-t type] [name | -] [server] 交互式模式: nslookup> server IP:指明使用哪個DNS server進行查詢; set q=RR TYPE:指明查詢的資源記錄類型; NAME:要查詢的名稱;
rndc命令: rndc --> rndc (953/tcp) rndc COMMAND COMMAND: -h: 顯示詳細幫助信息; reload:重載主配置文件和區域解析庫文件; reload zone:重載區域解析庫文件; retransfer zone:手動啟動區域傳送過程,而不管序列號是否增加; notify zone:重新對區域傳送發通知; reconfig:重載主配置文件; querylog:開啟或關閉查詢日志; trace:遞增debug級別; //y用於調試排錯.正常生產環境須關閉; trace LEVEL:指定使用的級別; [ LEVEL 為數字,自己指定 ] 關於[querylog:開啟或關閉查詢日志]的詳解: 開啟查詢日志可通過查看log查看到查詢日志,此項會消耗系統IO,一般只在排查錯誤時使用,平時無需打開;
******************************實驗部分******************************
實驗環境:
CentOS6.7 x 3, Windows7 x 1
主機名:
DNS-master -- 10.68.7.235
DNS-slave -- 10.68.7.231
http -- 10.68.7.234
Windows-Client -- 10.68.7.236
實驗要求:
一. 配置緩存域名服務器
二. 配置正向解析和反向解析域名服務器
三. 通過區域傳送實現主從同步
四. 搭建http服務,開啟windows主機,配好DNS進行訪問:
一、配置緩存域名服務器:
配置主配置文件:
[root@DNS-master~]#yum-yinstallbindbind-utilsbind-lib
[root@DNS-master~]#rpm-qabind* bind-utils-9.8.2-0.37.rc1.el6.x86_64 bind-libs-9.8.2-0.37.rc1.el6.x86_64 bind-9.8.2-0.37.rc1.el6.x86_64 [root@DNS-master~]#servicenamedstart Generating/etc/rndc.key:[OK] Startingnamed:[OK] [root@DNS-master~]#
[root@DNS-master~]#cp/etc/named.conf{,.bak} [root@DNS-master~]#vim/etc/named.conf options{ //listen-onport53{127.0.0.1;};//該行為初始行,使用雙斜線注釋(因為該配置文件為C或C++寫成,所以注釋符號用//而不用#). listen-onport53{10.68.7.235;127.0.0.1;};//修改初始行為該行,添加本機IP或外部IP,以期望其能夠通過網絡被其他主機訪問;並添加本地回環地址,以便本機能夠解析到.本行也可以刪除不要,實現效果相同. //listen-on-v6port53{::1;}; directory"/var/named";//此項定義工作目錄,也就是區域解析庫文件路徑.此項是關鍵,其他項都是為安全而設定的.推薦將所有與BIND相關的配置文件(除了named.conf和resolv.conf)放在/var之下的子目錄中。例如/var/nam 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{any;};//此項表示允許誰來查詢,any表示任何主機.或者可以直接注釋掉,注釋掉默認為允許任何主機查詢. recursionyes;//此項表示是否允許遞歸查詢. //dnssec-enableyes;//該行及以下幾行通通注釋掉;最好把yes改為no,安全設定,可能會影響後面實驗的驗證. //dnssec-validationyes; //dnssec-lookasideauto; /*PathtoISCDLVkey*/ //bindkeys-file"/etc/named.iscdlv.key"; //managed-keys-directory"/var/named/dynamic"; }; ...
[root@DNS-master~]#servicenamedrestart Stoppingnamed:[OK] Startingnamed:[OK] [root@DNS-master~]#
[root@DNS-master~]#ss-tunlp|grep53 udpUNCONN0010.68.7.235:53*:*users:(("named",2510,513)) udpUNCONN00127.0.0.1:53*:*users:(("named",2510,512)) udpUNCONN00::1:53:::*users:(("named",2510,514)) tcpLISTEN03::1:53:::*users:(("named",2510,22)) tcpLISTEN0310.68.7.235:53*:*users:(("named",2510,21)) tcpLISTEN03127.0.0.1:53*:*users:(("named",2510,20)) tcpLISTEN0128::1:953:::*users:(("named",2510,24)) tcpLISTEN0128127.0.0.1:953*:*users:(("named",2510,23)) [root@DNS-master~]#
以上配置完即為緩存名稱服務器的配置:監聽外部地址即可; 二. 配置主域名服務器的正向解析:
在緩存DNS服務器的基礎上添加zone定義
[root@DNS-master~]#vim/var/named/yangbin.com.zone $TTL1D $ORIGINyangbin.com. @INSOAns1.yangbin.comadmin.yangbin.com.( 2016120701 2H 5M 7D 1D ) INNSns1.yangbin.com. INNSns2.yangbin.com. INMX10mx1.yangbin.com. INMX20mx2.yangbin.com.//該處幾行.yangbin.com.可省略。省略後後面沒有小數點. ns1INA10.68.7.235 ns2INA10.68.7.231 mx1INA10.68.7.232 mx2INA10.68.7.233 wwwINA10.68.7.234//這些域名對應的IP,即主機不存在也沒關系.也可以一個名稱對應多個IP. webINCNAMEwww
注:
$TTL 1D:
此處可用1D或1d或86400,該時間可自定義,時間越短,緩存有效期就越短,向服務器發起查詢請求的次數也就越多,緩存時間越短,服務器壓力越大,生成緩存生效的時間越快,反之亦然.
$ORIGIN keeny.xin.:
此處的宏表示當之後所寫的名稱為相對名稱時,會自動在後邊補上keeny.xin. ,當然此項也可省略不寫,系統會自動這麼做.
admin.yangbin.com.: 表示管理員的郵箱,@符號用點號.代替;
在主配置文件/etc/named.rfc1912.zones中定義區域:
[root@DNS-master~]#vim/etc/named.rfc1912.zones ... 結尾添加: zone"yangbin.com"IN{ typemaster; file"/var/named/yangbin.com.zone"; allow-update{none;} };
檢查配置文件語法:
[root@DNS-master~]#named-checkconf [root@DNS-master~]# [root@DNS-master~]#named-checkzone"yangbin.com"/var/named/yangbin.com.zone zoneyangbin.com/IN:loadedserial2016120701 OK [root@DNS-master~]#
查看文件權限,禁止普通用戶隨意訪問從而獲悉公司服務器數量:
[root@DNS-master~]#psaux|grepnamed named25100.01.419314014616?Ssl02:200:00/usr/sbin/named-unamed root28870.00.0103304892pts/0S+03:020:00grepnamed [root@DNS-master~]#ll/etc/named.conf -rw-r-----.1rootnamed1089Aug3002:20/etc/named.conf [root@DNS-master~]#ll/var/named total32 drwxrwx---.2namednamed4096Aug3002:13data drwxrwx---.2namednamed4096Aug3002:13dynamic -rw-r-----.1rootnamed2075Apr232014named.ca -rw-r-----.1rootnamed152Dec152009named.empty -rw-r-----.1rootnamed152Jun212007named.localhost -rw-r-----.1rootnamed168Dec152009named.loopback drwxrwx---.2namednamed4096Jul242015slaves -rw-r--r--.1rootroot451Aug3002:57yangbin.com.zone [root@DNS-master~]#idnamed uid=25(named)gid=25(named)groups=25(named) [root@DNS-master~]#chown:named/var/named/yangbin.com.zone [root@DNS-master~]#servicenamedrestart Stoppingnamed:.[OK] Startingnamed:[OK] [root@DNS-master~]#
此時,正向解析區域配置完畢!
查看系統當前狀態:
[root@DNS-master~]#rndcstatus version:9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 CPUsfound:4 workerthreads:4 numberofzones:20 debuglevel:0 xfersrunning:0 xfersdeferred:0 soaqueriesinprogress:0 queryloggingisOFF recursiveclients:0/0/1000 tcpclients:0/100 serverisupandrunning [root@DNS-master~]#
通過dig命令在本機測試查詢解析:
[root@DNS-master~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:63733 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:2 ;;QUESTIONSECTION: ;www.yangbin.com.INA ;;ANSWERSECTION: www.yangbin.com.86400INA10.68.7.234 ;;AUTHORITYSECTION: yangbin.com.86400INNSns2.yangbin.com. yangbin.com.86400INNSns1.yangbin.com. ;;ADDITIONALSECTION: ns1.yangbin.com.86400INA10.68.7.235 ns2.yangbin.com.86400INA10.68.7.231 ;;Querytime:0msec ;;SERVER:10.68.7.230#53(10.68.7.230) ;;WHEN:TueAug3003:23:232016 ;;MSGSIZErcvd:117 [root@DNS-master~]#
在從DNS服務器進行測試,把DNS地址指向主DNS服務器:
[root@DNS-slave~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:32698 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:2 ;;QUESTIONSECTION: ;www.yangbin.com.INA ;;ANSWERSECTION: www.yangbin.com.86400INA10.68.7.234 ;;AUTHORITYSECTION: yangbin.com.86400INNSns2.yangbin.com. yangbin.com.86400INNSns1.yangbin.com. ;;ADDITIONALSECTION: ns1.yangbin.com.86400INA10.68.7.235 ns2.yangbin.com.86400INA10.68.7.231 ;;Querytime:0msec ;;SERVER:10.68.7.235#53(10.68.7.235) ;;WHEN:TueAug3003:38:002016 ;;MSGSIZErcvd:117 [root@DNS-slave~]#
注:
1、生產環境下修改相關配置文件後,不能restart,應該使用reload:
# service named reload
2、當一個域名配置有一個以上的ip地址時,查詢時會進行輪詢.
配置主域名服務器的反向解析服務器
不需要MX和A,以及AAAA記錄,以PTR記錄為主,別名記錄(CNAME)不需要反解.
[root@DNS-master~]#vim/var/named/7.68.10.in-addr.arpa $TTL1D $ORIGIN7.68.10.in-addr.arpa. @INSOAns1.yangbin.comadmin.yangbin.com.( 2016120701 2H 5M 7D 1D ) INNSns1.yangbin.com. INNSns2.yangbin.com. INMX10mx1.yangbin.com. INMX20mx2.yangbin.com. 235INPTRns1 231INPTRns2 232INPTRmx1 233INPTRmx2 234INPTRwww
[root@DNS-master~]#vim/etc/named.rfc1912.zones zone"7.68.10.in-addr.arpa"IN{ typemaster; file"7.68.10.in-addr.arpa"; allow-update{none;}; };
[root@DNS-master~]#named-checkzone"7.68.10.in-addr.arpa"/var/named/7.68.10.in-addr.arpa zone7.68.10.in-addr.arpa/IN:getaddrinfo(mx1.yangbin.com)failed:Temporaryfailureinnameresolution zone7.68.10.in-addr.arpa/IN:getaddrinfo(mx2.yangbin.com)failed:Temporaryfailureinnameresolution zone7.68.10.in-addr.arpa/IN:loadedserial2016120701 OK //mx1和mx2服務器沒有打開,所以此處報錯,可以不用理會,解析不受影響.
[root@DNS-master~]#ll/var/named/ total36 -rw-r--r--.1rootroot394Aug3004:107.68.10.in-addr.arpa drwxrwx---.2namednamed4096Aug3002:13data drwxrwx---.2namednamed4096Aug3003:14dynamic -rw-r-----.1rootnamed2075Apr232014named.ca -rw-r-----.1rootnamed152Dec152009named.empty -rw-r-----.1rootnamed152Jun212007named.localhost -rw-r-----.1rootnamed168Dec152009named.loopback drwxrwx---.2namednamed4096Jul242015slaves -rw-r--r--.1rootnamed451Aug3003:36yangbin.com.zone [root@DNS-master~]#chown:named/var/named/7.68.10.in-addr.arpa [root@DNS-master~]#chmod640/var/named/{7.68.10.in-addr.arpa,yangbin.com.zone} [root@DNS-master~]#ll/var/named/ total36 -rw-r-----.1rootnamed394Aug3004:107.68.10.in-addr.arpa drwxrwx---.2namednamed4096Aug3002:13data drwxrwx---.2namednamed4096Aug3003:14dynamic -rw-r-----.1rootnamed2075Apr232014named.ca -rw-r-----.1rootnamed152Dec152009named.empty -rw-r-----.1rootnamed152Jun212007named.localhost -rw-r-----.1rootnamed168Dec152009named.loopback drwxrwx---.2namednamed4096Jul242015slaves -rw-r-----.1rootnamed451Aug3003:36yangbin.com.zone [root@DNS-master~]#
[root@DNS-master~]#servicenamedstart Startingnamed:[OK] [root@DNS-master~]# [root@DNS-master~]#rndcstatus version:9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 CPUsfound:4 workerthreads:4 numberofzones:21 debuglevel:0 xfersrunning:0 xfersdeferred:0 soaqueriesinprogress:0 queryloggingisOFF recursiveclients:0/0/1000 tcpclients:0/100 serverisupandrunning [root@DNS-master~]#
檢查語法出現的錯誤:
[root@DNS-master~]#named-checkzone"7.68.10.in-addr.arpa"/var/named/10.68.7.101.zone.arpa /var/named/10.68.7.235.zone.arpa:3:SOArecordnotattopofzone(7.68.10.in-addr.arpa.7.68.10.in-addr.arpa) zone7.68.10.in-addr.arpa/IN:loadingfrommasterfilear/named/10.68.7.101.zone.arpafailed:notattopofzone zone7.68.10.in-addr.arpa/IN:notloadedduetoerrors. 解決辦法: [root@DNS-master~]#vim/var/named/7.68.10.in-addr.arpa $ORIGIN7.68.10.in-addr.arpa.//該行直接不要寫或者結尾不要忘記加點號(.);
驗證:
用本機驗證:
[root@DNS-master~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:53809 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:2 ;;QUESTIONSECTION: ;232.7.68.10.in-addr.arpa.INPTR ;;ANSWERSECTION: 232.7.68.10.in-addr.arpa.86400INPTRmx1.7.68.10.in-addr.arpa. ;;AUTHORITYSECTION: 7.68.10.in-addr.arpa.86400INNSns2.yangbin.com. 7.68.10.in-addr.arpa.86400INNSns1.yangbin.com. ;;ADDITIONALSECTION: ns1.yangbin.com.86400INA10.68.7.235 ns2.yangbin.com.86400INA10.68.7.231 ;;Querytime:0msec ;;SERVER:10.68.7.235#53(10.68.7.235) ;;WHEN:TueAug3004:21:252016 ;;MSGSIZErcvd:139 [root@DNS-master~]#
在slave機器上驗證:
[root@DNS-slave~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:16793 ;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:2 ;;QUESTIONSECTION: ;234.7.68.10.in-addr.arpa.INPTR ;;ANSWERSECTION: 234.7.68.10.in-addr.arpa.86400INPTRwww.7.68.10.in-addr.arpa. ;;AUTHORITYSECTION: 7.68.10.in-addr.arpa.86400INNSns1.yangbin.com. 7.68.10.in-addr.arpa.86400INNSns2.yangbin.com. ;;ADDITIONALSECTION: ns1.yangbin.com.86400INA10.68.7.235 ns2.yangbin.com.86400INA10.68.7.231 ;;Querytime:36msec ;;SERVER:10.68.7.235#53(10.68.7.235) ;;WHEN:TueAug3004:22:102016 ;;MSGSIZErcvd:139 [root@DNS-slave~]#
在slave機器上模擬全量區域傳送: 可以得到對方正向區域所有的資源記錄:
[root@DNS-slave~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd yangbin.com.86400INSOAns1.yangbin.com.yangbin.com.admin.yangbin.com.2016120701720030060480086400 yangbin.com.86400INNSns1.yangbin.com. yangbin.com.86400INNSns2.yangbin.com. yangbin.com.86400INMX10mx1.yangbin.com. yangbin.com.86400INMX20mx2.yangbin.com. mx1.yangbin.com.86400INA10.68.7.232 mx2.yangbin.com.86400INA10.68.7.233 ns1.yangbin.com.86400INA10.68.7.235 ns2.yangbin.com.86400INA10.68.7.231 web.yangbin.com.86400INCNAMEwww.yangbin.com. www.yangbin.com.86400INA10.68.7.234 yangbin.com.86400INSOAns1.yangbin.com.yangbin.com.admin.yangbin.com.2016120701720030060480086400 ;;Querytime:20msec ;;SERVER:10.68.7.235#53(10.68.7.235) ;;WHEN:TueAug3004:25:272016 ;;XFRsize:12records(messages1,bytes301) [root@DNS-slave~]#
在slave機器上模擬全量區域傳送: 可以得到對方反向區域所有的資源記錄:
[root@DNS-slave~]#[email protected] ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6<<>>[email protected] ;;globaloptions:+cmd 7.68.10.in-addr.arpa.86400INSOAns1.yangbin.com.7.68.10.in-addr.arpa.admin.yangbin.com.2016120701720030060480086400 7.68.10.in-addr.arpa.86400INNSns1.yangbin.com. 7.68.10.in-addr.arpa.86400INNSns2.yangbin.com. 7.68.10.in-addr.arpa.86400INMX10mx1.yangbin.com. 7.68.10.in-addr.arpa.86400INMX20mx2.yangbin.com. 231.7.68.10.in-addr.arpa.86400INPTRns2.7.68.10.in-addr.arpa. 232.7.68.10.in-addr.arpa.86400INPTRmx1.7.68.10.in-addr.arpa. 233.7.68.10.in-addr.arpa.86400INPTRmx2.7.68.10.in-addr.arpa. 234.7.68.10.in-addr.arpa.86400INPTRwww.7.68.10.in-addr.arpa. 235.7.68.10.in-addr.arpa.86400INPTRns1.7.68.10.in-addr.arpa. 7.68.10.in-addr.arpa.86400INSOAns1.yangbin.com.7.68.10.in-addr.arpa.admin.yangbin.com.2016120701720030060480086400 ;;Querytime:1msec ;;SERVER:10.68.7.235#53(10.68.7.235) ;;WHEN:TueAug3004:27:432016 ;;XFRsize:11records(messages1,bytes329) [root@DNS-slave~]#
主服務器已配置完畢!
三. 通過區域傳送實現主從同步
配置一台正向從DNS服務器:
[root@DNS-slave~]#yum-yinstallbind [root@DNS-slave~]#vim/etc/named.conf options{ listen-onport53{10.68.7.231;127.0.0.1;}; //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{any;}; recursionyes; dnssec-enableno; dnssec-validationno; dnssec-lookasideauto; /*PathtoISCDLVkey*/ //bindkeys-file"/etc/named.iscdlv.key"; //managed-keys-directory"/var/named/dynamic"; }; ... [root@DNS-slave~]#vim/etc/named.rfc1912.zones zone"yangbin.com"IN{ typeslave; masters{10.68.7.235;}; file"slaves/yangbin.com.zone"; }; [root@DNS-slave~]#ll/var/named total28 drwxrwx---.2namednamed4096Jul242015data drwxrwx---.2namednamed4096Jul242015dynamic -rw-r-----.1rootnamed2075Apr232014named.ca -rw-r-----.1rootnamed152Dec152009named.empty -rw-r-----.1rootnamed152Jun212007named.localhost -rw-r-----.1rootnamed168Dec152009named.loopback drwxrwx---.2namednamed4096Jul242015slaves//系統已自動准備好供寫入的文件(file)slaves目錄. [root@DNS-slave~]# 注意: 必須在主服務器的配置文件下有從服務器的ns記錄,且ns名稱對應的IP為從服務器的IP才行;
啟動服務然後查看日志信息:
[root@DNS-slave~]#servicenamedstart Generating/etc/rndc.key:[OK] Startingnamed:[OK] [root@DNS-slave~]#less/var/log/messages Aug3004:47:26DNS-slavenamed[3287]:zoneyangbin.com/IN:Transferstarted. Aug3004:47:26DNS-slavenamed[3287]:transferof'yangbin.com/IN'from10.68.7.235#53:connectedusing10.68.7.231#5802 4 Aug3004:47:26DNS-slavenamed[3287]:zoneyangbin.com/IN:transferredserial2016120701 Aug3004:47:26DNS-slavenamed[3287]:transferof'yangbin.com/IN'from10.68.7.235#53:Transfercompleted:1messages, 12records,301bytes,0.001secs(301000bytes/sec) [root@DNS-slave~]#cat/var/named/slaves/yangbin.com.zone $ORIGIN. $TTL86400;1day yangbin.comINSOAns1.yangbin.com.yangbin.com.admin.yangbin.com.( 2016120701;serial 7200;refresh(2hours) 300;retry(5minutes) 604800;expire(1week) 86400;minimum(1day) ) NSns1.yangbin.com. NSns2.yangbin.com. MX10mx1.yangbin.com. MX20mx2.yangbin.com. $ORIGINyangbin.com. mx1A10.68.7.232 mx2A10.68.7.233 ns1A10.68.7.235 ns2A10.68.7.231 webCNAMEwww wwwA10.68.7.234 [root@DNS-slave~]#
沒有問題!
在主DNS服務器修改區域文件,然後再在slave服務器作區域傳送查看結果:
[root@DNS-master~]#vim/var/named/yangbin.com.zone ... 序列號加1 增加如下行: ftpINA10.68.7.238 [root@DNS-master~]#rndcreload serverreloadsuccessful
主服務器重載服務器查看結果:
[root@DNS-slave~]#rndcreload [root@DNS-slave~]#tail-20/var/log/messages Aug3005:07:02DNS-slavenamed[3287]:client10.68.7.235#34827:receivednotifyforzone'yangbin.com' Aug3005:07:02DNS-slavenamed[3287]:zoneyangbin.com/IN:Transferstarted. Aug3005:07:02DNS-slavenamed[3287]:transferof'yangbin.com/IN'from10.68.7.235#53:connectedusing10.68.7.231#44271 Aug3005:07:02DNS-slavenamed[3287]:zoneyangbin.com/IN:transferredserial2016120702 Aug3005:07:02DNS-slavenamed[3287]:transferof'yangbin.com/IN'from10.68.7.235#53:Transfercompleted:1messages,12records,301bytes,0.002secs(150500bytes/sec) Aug3005:07:02DNS-slavenamed[3287]:zoneyangbin.com/IN:sendingnotifies(serial2016120702) Aug3005:07:03DNS-slavenamed[3287]:client10.68.7.235#9138:receivednotifyforzone'7.68.10.in-addr.arpa':notauthoritative [root@DNS-slave~]# [root@DNS-slave~]#cat/var/named/slaves/yangbin.com.zone $ORIGIN. $TTL86400;1day yangbin.comINSOAns1.yangbin.com.yangbin.com.admin.yangbin.com.( 2016120702;serial 7200;refresh(2hours) 300;retry(5minutes) 604800;expire(1week) 86400;minimum(1day) ) NSns1.yangbin.com. NSns2.yangbin.com. MX10mx1.yangbin.com. MX20mx2.yangbin.com. $ORIGINyangbin.com. ftpA10.68.7.238 mx1A10.68.7.232 mx2A10.68.7.233 ns1A10.68.7.235 ns2A10.68.7.231 webCNAMEwww wwwA10.68.7.234 [root@DNS-slave~]#
主從復制配置完畢!
四. 搭建http服務,開啟windows主機,配好DNS進行訪問:
[root@http~]#yum-yinstallhttpd [root@http~]#curl10.68.7.234
然後在win7配置好DNS並訪問:
實驗驗證完成