全套學(xué)習(xí)資料移步至公眾號【學(xué)神來啦】
本節(jié)所講內(nèi)容:
??5.1 ?DNS服務(wù)器常見概念
??5.2 ?DNS服務(wù)器安裝及相關(guān)配置文件
??5.3 ?實戰(zhàn):為公司內(nèi)網(wǎng)搭建一個DNS服務(wù)器
??5.4 ?實戰(zhàn):DNS遞歸查詢和搭建DNS轉(zhuǎn)發(fā)服務(wù)器
??5.5 ?實戰(zhàn):搭建DNS主從服務(wù)器
實驗環(huán)境:
DNS服務(wù)端:xuegod63.cn ??IP:192.168.1.63
DNS客戶端:xuegod64.cn ??IP:192.168.1.64
特別說明:
在以下的實驗當(dāng)中吏恭,配置文件中的內(nèi)容說明或調(diào)整配置時,如書面上沒有出現(xiàn)的內(nèi)容并在實驗主機中的配置文件中出現(xiàn)的內(nèi)容蟋恬,則不需要修改涤久,僅需要修改書面上出的加粗字體部分的內(nèi)容涡尘。
DNS(Domain Name System)域名系統(tǒng),在TCP/IP 網(wǎng)絡(luò)中有非常重要的地位响迂,能夠提供域名與IP地址的解析服務(wù)考抄,而不用去記住能夠被機器直接讀取的IP數(shù)串。通過域名栓拜,最終得到該域名對應(yīng)的IP地址的過程叫做域名解析(或主機名解析)座泳。DNS協(xié)議運行在UDP協(xié)議之上,使用端口號53幕与。
DNS 是一個分布式數(shù)據(jù)庫,命名系統(tǒng)采用層次的邏輯結(jié)構(gòu)镇防,如同一棵倒置的樹啦鸣,這個邏輯的樹形結(jié)構(gòu)稱為域名空間,由于DNS 劃分了域名空間来氧,所以各機構(gòu)可以使用自己的域名空間創(chuàng)建DNS信息诫给,如圖 5-1 所示。
圖 5-1 DNS樹形結(jié)構(gòu)示意圖
DNS 樹的每個節(jié)點代表一個域啦扬,通過這些節(jié)點中狂,對整個域名空間進行劃分,成為一個層次結(jié)構(gòu)扑毡。
域名空間的每個域的名字胃榕,通過域名進行表示。
域名:通常由一個完全合格域名(FQDN)標識瞄摊。FQDN能準確表示出其相對于DNS 域樹根的位置勋又,也就是節(jié)點到DNS 樹根的完整表述方式苦掘,從節(jié)點到樹根采用反向書寫,并將每個節(jié)點用“.”分隔楔壤,對于DNS 域google 來說鹤啡,其完全正式域名(FQDN)為google.com。
例如蹲嚣,google為com域的子域递瑰,其表示方法為google.com,而www為google域中的子域隙畜,可以使用www.google.com表示抖部。
注意:通常,F(xiàn)QDN 有嚴格的命名限制禾蚕,長度不能超過256 字節(jié)您朽,只允許使用字符a-z,0-9,A-Z
和減號(-)。點號(.)只允許在域名標志之間(例如“google.com”)或者FQDN 的結(jié)尾使用换淆。
域名不區(qū)分大小哗总,由最頂層到下層,可以分成:根域倍试、頂級域讯屈、二級域、子域县习。
Internet 域名空間的最頂層是根域(root)涮母,其記錄著Internet 的重要DNS 信息,由Internet域名注冊授權(quán)機構(gòu)管理躁愿,該機構(gòu)把域名空間各部分的管理責(zé)任分配給連接到Internet 的各個組織叛本,“.”全球有13個根(root)服務(wù)器
DNS 根域下面是頂級域,也由Internet 域名注冊授權(quán)機構(gòu)管理彤钟。共有3 種類型的頂級域来候。
組織域:采用3個字符的代號,表示DNS 域中所包含的組織的主要功能或活動逸雹。比如com 為商業(yè)機構(gòu)組織营搅,edu 為教育機構(gòu)組織,gov 為政府機構(gòu)組織梆砸,mil 為軍事機構(gòu)組織转质,net 為網(wǎng)絡(luò)機構(gòu)組織,org 為非營利機構(gòu)組織帖世,int 為國際機構(gòu)組織休蟹。
地址域:采用兩個字符的國家或地區(qū)代號。如cn 為中國,kr 為韓國鸡挠,us 為美國辉饱。
反向域:這是個特殊域,名字為in-addr.arpa拣展,用于將IP 地址映射到名字(反向查詢)彭沼。
對于頂級域的下級域,Internet 域名注冊授權(quán)機構(gòu)授權(quán)給 Internet 的各種組織备埃。當(dāng)一個組織獲得了對域名空間某一部分的授權(quán)后姓惑,該組織就負責(zé)命名所分配的域及其子域,包括域中的計算機和其他設(shè)備按脚,并管理分配的域中主機名與 IP?地址的映射信息于毙。
區(qū)是DNS 名稱空間的一部分,其包含了一組存儲在 DNS 服務(wù)器上的資源記錄辅搬。
使用區(qū)的概念唯沮,DNS 服務(wù)器回答關(guān)于自己區(qū)中主機的查詢,每個區(qū)都有自己的授權(quán)服務(wù)器堪遂。
5.1.3 ?主域名服務(wù)器與輔助域名服務(wù)器
當(dāng)本區(qū)的輔助服務(wù)器啟動時介蛉,它與該區(qū)的主控服務(wù)器進行連接并啟動一次區(qū)傳輸,區(qū)輔助服務(wù)器定期與區(qū)主控服務(wù)器通信溶褪,查看區(qū)數(shù)據(jù)是否改變币旧。如果改變了,它就啟動一次數(shù)據(jù)更新傳輸猿妈。
每個區(qū)必須有主服務(wù)器吹菱,另外每個區(qū)至少要有一臺輔助服務(wù)器,否則如果該區(qū)的主服務(wù)器崩潰了彭则,就無法解析該區(qū)的名稱鳍刷。
輔助服務(wù)器的優(yōu)點:
容錯能力
配置輔助服務(wù)器后,在該區(qū)主服務(wù)器崩潰的情況下俯抖,客戶機仍能解析該區(qū)的名稱倾剿。一般把區(qū)的主服務(wù)器和區(qū)的輔助服務(wù)器安裝在不同子網(wǎng)上,這樣如果到一個子網(wǎng)的連接中斷蚌成,DNS 客戶機還能直接查詢另一個子網(wǎng)上的名稱服務(wù)器。
減少廣域鏈路的通信量
如果某個區(qū)在遠程有大量客戶機凛捏,用戶就可以在遠程添加該區(qū)的輔助服務(wù)器担忧,并把遠程的客戶機配置成先查詢這些服務(wù)器,這樣就能防止遠程客戶機通過慢速鏈路通信來進行DNS 查詢坯癣。
減輕主服務(wù)器的負載
輔助服務(wù)器能回答該區(qū)的查詢瓶盛,從而減少該區(qū)主服務(wù)器必須回答的查詢數(shù)。
(1) DNS 服務(wù)器
運行DNS 服務(wù)器程序的計算機,儲存DNS 數(shù)據(jù)庫信息惩猫。DNS 服務(wù)器會嘗試解析客戶機的查詢請求芝硬。在解答查詢時,如果DNS 服務(wù)器能提供所請求的信息轧房,就直接回應(yīng)解析結(jié)果拌阴,如果該DNS 服務(wù)器沒有相應(yīng)的域名信息,則為客戶機提供另一個能幫助解析查詢的服務(wù)器地址奶镶,如果以上兩種方法均失敗迟赃,則回應(yīng)客戶機沒有所請求的信息或請求的信息不存在。
(2)DNS 緩存
DNS 服務(wù)器在解析客戶機請求時厂镇,如果本地沒有該DNS 信息纤壁,則可以會詢問其他DNS 服務(wù)器,當(dāng)其他域名服務(wù)器返回查詢結(jié)果時捺信,該DNS 服務(wù)器會將結(jié)果記錄在本地的緩存中酌媒,成為DNS 緩存。當(dāng)下一次客戶機提交相同請求時迄靠,DNS 服務(wù)器能夠直接使用緩存中的DNS 信息進行解析秒咨。
(3) DNS查詢方式: 遞歸查詢和迭代查詢
一個DNS查詢過程,通過8個步驟的解析過程就使得客戶端可以順利訪問www.163.com這個域名梨水,但實際應(yīng)用中拭荤,通常這個過程是非常迅速的,如圖 5-2 所示疫诽。
圖 5-2 DNS查詢過程示意圖
<1> 客戶機提交域名解析請求舅世,并將該請求發(fā)送給本地的域名服務(wù)器。
<2> 當(dāng)本地的域名服務(wù)器收到請求后奇徒,就先查詢本地的緩存雏亚。如果有查詢的DNS 信息記錄,則直接返回查詢的結(jié)果摩钙。如果沒有該記錄罢低,本地域名服務(wù)器就把請求發(fā)給根域名服務(wù)器。
<3> 根域名服務(wù)器再返回給本地域名服務(wù)器一個所查詢域的頂級域名服務(wù)器的地址胖笛。
<4> 本地服務(wù)器再向返回的域名服務(wù)器發(fā)送請求网持。
<5> 接收到該查詢請求的域名服務(wù)器查詢其緩存和記錄,如果有相關(guān)信息則返回客戶機查詢結(jié)果长踊,否則通知客戶機下級的域名服務(wù)器的地址麻汰。
<6> 本地域名服務(wù)器將查詢請求發(fā)送給返回的DNS 服務(wù)器饮六。
<7> 域名服務(wù)器返回本地服務(wù)器查詢結(jié)果(如果該域名服務(wù)器不包含查詢的DNS 信息,查詢過程將重復(fù)<6>、<7>步驟,直到返回解析信息或解析失敗的回應(yīng)。
<8> 本地域名服務(wù)器將返回的結(jié)果保存到緩存,并且將結(jié)果返回給客戶機。
(1) 遞歸查詢
遞歸查詢是一種DNS 服務(wù)器的查詢模式戴而,在該模式下DNS 服務(wù)器接收到客戶機請求,必須使用一個準確的查詢結(jié)果回復(fù)客戶機翩蘸。如果DNS 服務(wù)器本地沒有存儲查詢DNS 信息所意,那么該服務(wù)器會詢問其他服務(wù)器,并將返回的查詢結(jié)果提交給客戶機鹿鳖。
(2)迭代查詢
DNS 服務(wù)器另外一種查詢方式為迭代查詢扁眯,當(dāng)客戶機發(fā)送查詢請求時,DNS 服務(wù)器并不直接回復(fù)查詢結(jié)果翅帜,而是告訴客戶機另一臺DNS 服務(wù)器地址姻檀,客戶機再向這臺DNS 服務(wù)器提交請求,依次循環(huán)直到返回查詢的結(jié)果為止涝滴。
正向解析:
正向解析是指域名到IP 地址的解析過程绣版,如圖 5-3所示。
圖 5-3 正向解析域名
反向解析:
反向解析是從IP 地址到域名的解析過程歼疮。反向解析的作用為服務(wù)器的身份驗證杂抽,如圖 5-4 所示。
http://dns.aizhan.com/
圖 5-4 反向解析域名
1. SOA 資源記錄
每個區(qū)在區(qū)的開始處都包含了一個起始授權(quán)記錄(Start of Authority Record),簡稱SOA 記錄韩脏。
SOA 定義了域的全局參數(shù)缩麸,進行整個域的管理設(shè)置。一個區(qū)域文件只允許存在唯一的SOA 記錄赡矢。
2. NS 資源記錄
NS(Name Server)記錄是域名服務(wù)器記錄杭朱,用來指定該域名由哪個DNS服務(wù)器來進行解析。每個區(qū)在區(qū)根處至少包含一個NS 記錄吹散。
3. A 資源記錄
地址(A)資源記錄把FQDN 映射到IP 地址弧械。 因為有此記錄,所以DNS服務(wù)器能解析FQDN域名對應(yīng)的IP 地址空民。
4. PTR 資源記錄
相對于A 資源記錄刃唐,指針(PTR)記錄把IP地址映射到FQDN。 用于反向查詢界轩,通過IP地址画饥,找到域名。
5. CNAME 資源記錄
別名記錄(CNAME)資源記錄創(chuàng)建特定FQDN 的別名浊猾。用戶可以使用CNAME 記錄來隱藏用戶網(wǎng)絡(luò)的實現(xiàn)細節(jié)荒澡,使連接的客戶機無法知道真正的域名。
例:ping百度時与殃,解析到了百度的別名服務(wù)器单山。百度cname=www.a.shifen.com的別名,如圖 5-5 所示幅疼。
圖 5-5 FQDN別名
6. MX 資源記錄
郵件交換(MX)資源記錄米奸,為DNS 域名指定郵件交換服務(wù)器,郵件交換服務(wù)器是為DNS 域名處理或轉(zhuǎn)發(fā)郵件的主機爽篷。處理郵件指把郵件投遞到目的地或轉(zhuǎn)交另一不同類型的郵件傳送者悴晰。轉(zhuǎn)發(fā)郵件指把郵件發(fā)送到最終目的服務(wù)器,用簡單郵件傳輸協(xié)議SMTP 把郵件發(fā)送給離最終目的地最近的郵件交換服務(wù)器逐工,或使郵件經(jīng)過一定時間的排隊铡溪。
DNS的模式: C/S 模式
NDS監(jiān)聽的端口號:
[root@xuegod63 ~]# vim /etc/services? #查看services文件。
端口:
tcp/53 ??udp/53 ???#用于客戶端查詢
tcp/953 udp/953 ??#用于DNS主從同步
5.2 ?DNS服務(wù)器安裝及相關(guān)配置文件
BIND 簡介:
BIND 全稱為Berkeley Internet Name Domain(伯克利因特網(wǎng)名稱域系統(tǒng))泪喊,BIND 主要有三個版本:BIND4棕硫、BIND8、BIND9袒啼。
BIND8版本:融合了許多提高效率哈扮、穩(wěn)定性和安全性的技術(shù),而BIND9 增加了一些超前的理念:IPv6支持蚓再、密鑰加密滑肉、多處理器支持、線程安全操作摘仅、增量區(qū)傳送等等靶庙。
安裝程序:
[root@xuegod63 ~]# yum –y install bind bind-chroot bind-utils
bind-9.9.4-50.el7.x86_64 ?????#該包為DNS 服務(wù)的主程序包。
bind-chroot-9.9.4-50.el7.x86_64 ????#提高安全性娃属。
#bind-chroot是bind的一個功能六荒,使bind可以在一個chroot?的模式下運行,也就是說,bind運行時的/(根)目錄膳犹,并不是系統(tǒng)真正的/(根)目錄恬吕,只是系統(tǒng)中的一個子目錄而已,這樣做的目的是為了提高安全性须床,因為在chroot的模式下铐料,bind可以訪問的范圍僅限于這個子目錄的范圍里,無法進一步提升豺旬,進入到系統(tǒng)的其他目錄中钠惩。
bind-utils-9.9.4-50.el7.x86_64.rpm? ??#該包為客戶端工具,系統(tǒng)默認已經(jīng)安裝的了族阅,它用于搜索域名指令篓跛。
[root@xuegod63 ~]# ls /etc/named.conf
/etc/named.conf
named.conf 是BIND 的核心配置文件,它包含了BIND 的基本配置坦刀,但其并不包括區(qū)域數(shù)據(jù)愧沟。
/var/named/ 目錄為DNS數(shù)據(jù)庫文件存放目錄蔬咬,每一個域文件都放在這里
[root@xuegod63 ~]# systemctl start named#啟動DNS服務(wù)。
[root@xuegod63 ~]# systemctl enable named#設(shè)置為開機自動啟動沐寺。
[root@xuegod63 Packages]# netstat -antup | grep 53#查看53號端口是否監(jiān)聽林艘。
tcp ?????0 ?????0 127.0.0.1:53 ??????????0.0.0.0:* ?????LISTEN ???????11135/named ????????
tcp ?????0 ?????0 ::1:53 ????????? ???:::* ??????????LISTEN ??????11135/named ????????
udp ?????0 ????0 127.0.0.1:53 ??? ??0.0.0.0:* ???????????? ??11135/named ????????
在客戶端上配置好DNS服務(wù)器地址。
[root@xuegod64 ~]# vim /etc/resolv.conf #編輯resolv.conf文件混坞,添加DNS狐援,此文件的生效范圍是全局的,即是所有網(wǎng)卡的可以有效究孕。
# Generated by NetworkManager
nameserver 202.106.46.151
修改網(wǎng)卡配置文件添加DNS啥酱,此方式添加的DNS僅生效當(dāng)前網(wǎng)卡。
[root@xuegod64 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33?
DNS1=202.106.46.151
配置DNS服務(wù)器解析:xuegod.cn
[root@xuegod63 ~]# cp /etc/named.conf ?/etc/named.conf.bak? #備份DNS原有的配置文件厨诸,便于后期恢復(fù)镶殷。
[root@xuegod63 named]# vim /etc/named.conf? #編輯DNS配置。
DNS配置中泳猬,整體分3段批钠,如圖 5-6 所示。
options:對全局生效得封。
zone:針對某個區(qū)域生效埋心。
圖 5-6 DNS配置
重點講解type參數(shù),如圖 5-7 所示忙上。
圖 5-7 file參數(shù)
type 字段指定區(qū)域的類型拷呆,對于區(qū)域的管理至關(guān)重要,一共分為六種:
Master:主DNS 服務(wù)器:擁有區(qū)域數(shù)據(jù)文件疫粥,并對此區(qū)域提供管理數(shù)據(jù)
Slave:輔助DNS 服務(wù)器:擁有主DNS 服務(wù)器的區(qū)域數(shù)據(jù)文件的副本茬斧,輔助DNS 服務(wù)器會從主DNS服務(wù)器同步所有區(qū)域數(shù)據(jù)。
Stub:stub 區(qū)域和slave 類似梗逮,但其只復(fù)制主DNS 服務(wù)器上的NS 記錄而不像輔助DNS 服務(wù)器會復(fù)制所有區(qū)域數(shù)據(jù)项秉。
Forward:一個forward zone 是每個域的配置轉(zhuǎn)發(fā)的主要部分。一個zone 語句中的type forward可以包括一個forward 和/或forwarders 子句慷彤,它會在區(qū)域名稱給定的域中查詢娄蔼。如果沒有forwarders 語句或者forwarders 是空表,那么這個域就不會有轉(zhuǎn)發(fā)底哗,消除了options 語句中有關(guān)轉(zhuǎn)發(fā)的配置岁诉。
Hint:根域名服務(wù)器的初始化組指定使用線索區(qū)域hint zone,當(dāng)服務(wù)器啟動時跋选,它使用根線索來查找根域名服務(wù)器涕癣,并找到最近的根域名服務(wù)器列表。
5.3 ?實戰(zhàn):為公司內(nèi)網(wǎng)搭建一個DNS服務(wù)器
修改配置文件前标,授權(quán)DNS服務(wù)器管理xuegod.cn 區(qū)域坠韩,并把該區(qū)域的區(qū)域文件命名為xuegod.cn
[root@xuegod63 ~]#?vim /etc/named.conf#編輯DNS配置文件距潘,修改如下配置文件區(qū)域的內(nèi)容,其他區(qū)域不需要做修改同眯,保持默認绽昼。
options {
????????listen-on port 53 { any; };? #把原來的127.0.0.1改為any。
????????listen-on-v6 port 53 { any; };? #把原來的::1须蜗,改為any。
????????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; };? #把原來的localhost目溉,改為any明肮。
????????recursion yes;
????????dnssec-enable yes;
????????dnssec-validation yes;
????????dnssec-lookaside auto;? #加入此項。
zone "xuegod.cn" IN {? #把原來的 . 改為xuegod.cn缭付。
????????type master;? ? #把原來的hint柿估,改為master。
????????file "xuegod.cn.zone";? #把原來的named.ca陷猫,改為xuegod.cn.zone秫舌。
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[root@xuegod63 ~]# cd /var/named? #切換工作目錄至/var/named目錄下。
[root@xuegod63 named]# cp -a named.localhost ?xuegod.cn.zone? #復(fù)制named.localhost文件為xuegod.cn.zone文件绣檬,在復(fù)制過程中需要加-a選項足陨,保持原有的權(quán)限。
[root@xuegod63 named]# vim xuegod.cn.zone? #編輯該文件中的內(nèi)容娇未,如圖 5-8 所示墨缘。
圖 5-8 xuegod.cn.zone文件
$TTL 1D
xuegod.cn. IN SOA dns.xuegod.cn. ?root.xuegod.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
xuegod.cn. ????? NS ?????dns.xuegod.cn.
dns.xuegod.cn. ? A ??????192.168.1.63
www.xuegod.cn. ???A ??????192.168.1.63
www1.xeugod.cn. ??CNAMEwww.xuegod.cn.
配置文件參數(shù)說明:
$TTL 1D:設(shè)置有效地址解析記錄的默認緩存時間,默認為1天也就是1D零抬。
xuegod.cn. ??IN SOA dns. xuegod.cn. root. xuegod.cn.
#原來的@表示當(dāng)前的域xuegod.cn.镊讼,為方便大家記憶,在此直接寫成xuegod.cn.
#設(shè)置SOA記錄為:dns.xuegod.cn. ?
#在此配置文件中寫域名時平夜,都把根 . 也需要寫上蝶棋。
#域管理郵箱root.xuegod.cn. 由于@有其他含義,所以用“.”代替@忽妒。
0 :更新序列號玩裙,用于標示數(shù)據(jù)庫的變換,可以在10位以內(nèi)锰扶,如果存在輔助DNS區(qū)域献酗,建議每次更新完數(shù)據(jù)庫,手動加1坷牛。
1D :刷新時間罕偎,從域名服務(wù)器更新該地址數(shù)據(jù)庫文件的間隔時間,默認為1天京闰。
1H :重試延時颜及,從域名服務(wù)器更新地址數(shù)據(jù)庫失敗以后甩苛,等待多長時間,默認為1小時俏站。
1W :到期讯蒲,失效時間,超過該時間仍無法更新地址數(shù)據(jù)庫肄扎,則不再嘗試墨林,默認為一周。
3H :設(shè)置無效地址解析記錄(該數(shù)據(jù)庫中不存在的地址)默認緩存時間犯祠。設(shè)置無效記錄旭等,最少緩存時間為3小時。
NS @ :域名服務(wù)器記錄衡载,用于設(shè)置當(dāng)前域的DNS服務(wù)器的域名地址搔耕,
A 127.0.0.1: 設(shè)置域名服務(wù)器的A記錄,地址為ipv4的地址127.0.0.1痰娱,可以設(shè)置成192.168.100.102
AAAA ::1:設(shè)置域名服務(wù)器的A記錄弃榨,地址為ipv6的地址。
資源記錄參數(shù)詳解:
CNAME 資源記錄
別名(CNAME)資源記錄用于為某個主機指定一個別名
CNAME 資源記錄語法格式:
別名 CNAME 主機名
www1.xuegod.cn. ?CNAMEwww.xuegod.cn.
MX 資源記錄
MX(郵件交換器)資源記錄提供郵件傳遞信息梨睁。該記錄會指定區(qū)域內(nèi)的郵件服務(wù)器名稱鲸睛。
MX 資源記錄語法格式:
mail ?A 192.168.1.63
?MX 192.168.1.63
PTR 資源記錄
指針(PTR)資源記錄。該記錄與A 記錄相反而姐,用于查詢IP 地址與主機名的對應(yīng)關(guān)系腊凶。
5.3.2??根區(qū)域設(shè)置及對應(yīng)區(qū)域文件
根區(qū)域是一個較為特殊的區(qū)域,記錄列出了全球根域名服務(wù)器的信息拴念,域名通常用“.”表示钧萍,如表 5-1 所示。
表 5-1 根區(qū)域設(shè)置及對應(yīng)區(qū)域文件
重啟DNS服務(wù)器:
[root@xuegod63 named]# systemctl restart named
[root@xuegod64 ~]# vim /etc/resolv.conf
nameserver 192.168.1.63? #DNS修改為xuegod63主機IP政鼠。
[root@xuegod64 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33? #配置網(wǎng)卡风瘦。
DEVICE="ens33"
HWADDR="00:0C:29:A7:3D:8D"
NM_CONTROLLED="yes"
BOOTPROTO=static
ONBOOT="yes"
IPADDR=192.168.1.64
NETMASK=255.255.255.0
[root@xuegod64 ~]# systemctl restart network? #重啟動網(wǎng)絡(luò)服務(wù)。
[[root@xuegod63 ~]# pingwww.xuegod.cn#ping 域名測試公般。
PING www.xuegod.cn (192.168.1.63) 56(84) bytes of data.
64 bytes from xuegod63.cn (192.168.1.63): icmp_seq=1 ttl=64 time=0.196 ms
64 bytes from xuegod63.cn (192.168.1.63): icmp_seq=2 ttl=64 time=0.160 ms
5.4 ?實戰(zhàn):DNS遞歸查詢和搭建DNS轉(zhuǎn)發(fā)服務(wù)器
[root@xuegod63 etc]# vim /etc/named.conf? #修改DNS配置文件万搔,修改如下內(nèi)容。
options {
????????listen-on port 53 { any ; };? #把原來的127.0.0.1改為any官帘。
????????listen-on-v6 port 53 { any; };? #把原來的::1瞬雹,改為any。
????????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; };? #把原來的localhost刽虹,改為any酗捌。
????????recursion yes; ???? #默認是支持遞歸查詢。
????????#dnssec-enable yes; ??
????????#dnssec-validation yes;
????????#dnssec-lookaside auto;
只需要把以上三條內(nèi)容注釋了,其它內(nèi)容不用改胖缤,這樣客戶端才能通過這個DNS進行遞歸查詢尚镰,把dns加密通訊功能關(guān)閉,才可以和根服務(wù)器時行迭代查詢哪廓。
重啟DNS服務(wù)狗唉,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
[root@localhost network-scripts]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
5.4.2 ?搭建DNS轉(zhuǎn)發(fā)服務(wù)器
[root@xuegod63 ~]# vim /etc/named.conf
options {
????????listen-on port 53 { any; };? #把原來的127.0.0.1改為any。
????????listen-on-v6 port 53 { any; };? #把原來的::1涡真,改為any分俯。
????????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; };? #把原來的localhost,改為any哆料。
????????recursion yes; ???? #允許遞歸查詢
????????#dnssec-enable yes; ?? #注釋以下三行澳迫。
????????#dnssec-validation yes;
????????#dnssec-lookaside auto;
zone "xuegod.cn" IN {
# ??????type master;? #注釋此項
????????type forward;? #添加此項,類型為轉(zhuǎn)發(fā)剧劝。
# ??????file "xuegod.cn.zone"; #注釋此項
forward ?only ; ??? #僅執(zhí)行轉(zhuǎn)發(fā)操作,only:僅轉(zhuǎn)發(fā)抓歼,first:先查找本地zone讥此,再轉(zhuǎn)發(fā)。
forwarders ?{ 8.8.8.8; }; ??? #指定轉(zhuǎn)發(fā)查詢請求的DNS服務(wù)器列表谣妻。
};
重啟DNS服務(wù)萄喳,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
在xuegod64主機上進行測試:
[root@localhost network-scripts]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
5.5 ?實戰(zhàn):搭建DNS主從服務(wù)器
1. 搭建一個主DNS服務(wù)器A,配置內(nèi)容如下
[root@xuegod63 ~]# vim /etc/named.conf
options {
????????listen-on port 53 { any; };? #把原來的127.0.0.1改為any蹋半。
????????listen-on-v6 port 53 { any; };? #把原來的::1他巨,改為any。
????????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; };? #把原來的localhost减江,改為any染突。
????????recursion yes;
????????#dnssec-enable yes;
????????#dnssec-validation yes;
????????#dnssec-lookaside auto;
zone "xuegod.cn" IN {
????????type master;? ? ? #指定類型為master。
????????file "xuegod.cn.zone";? ? #指定為xuegod.cn.zone辈灼。
????????allow-transfer { 192.168.1.0/24; };? #指定允許哪個網(wǎng)段的從DNS服務(wù)器份企,可以同步主DNS服務(wù)器zone文件,不寫默認為所有巡莹。
};
include "/etc/named.rfc1912.zones";
重啟DNS服務(wù)司志,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
2. 從DNS服務(wù)器的配置
要求:主從系統(tǒng)時間一定要保持一致。
安裝程序:
[root@xuegod64 ~]# yum install bind bind-chroot bind-utils -y
[root@xuegod64 ~]# systemctl start named
[root@xuegod64 ~]# vim /etc/named.conf
options {
????????listen-on port 53 { any; };
????????listen-on-v6 port 53 { any; };
????????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; };
????????recursion yes;
????????#dnssec-enable yes;
????????#dnssec-validation yes;
???
zone "xuegod.cn" IN {
????????type slave;
????????file "slaves/xuegod.cn.zone.file";
????????masters { 192.168.1.63; };
};
include "/etc/named.rfc1912.zones";
注:這樣從DNS服務(wù)器就可以從主DNS服務(wù)器上獲取DNS解析記錄信息了降宅。寫時注意slave slaves ?master ?單詞的書寫骂远,有的加s有的不加
重啟從DNS服務(wù)器會在:/var/named/slaves文件夾下自動創(chuàng)建一個文件xuegod.cn.zone.file 這個文件是從DNS服務(wù)器從主DNS服務(wù)器上獲取的數(shù)據(jù)
這樣隨便一個DNS就可以獲取主DNS服務(wù)器的解析記錄,不安全腰根,文章的后面會講如何進行主從認證激才。
注:主DNS記錄中應(yīng)該有兩NS記錄,一條是主DNS的NS記錄,一條是從DNS服務(wù)器的域名記錄贸营。
測試:
[root@xuegod64 etc]# systemctl restart named? #重啟DNS服務(wù)吨述。
[root@xuegod64 etc]# ls /var/named/slaves/ ??#看到這個文件,說明成功了
xuegod.cn.zone.file
5.5.2 ?zone文件中的其它記錄信息钞脂。 通過DNS做負載均衡
編輯主DNS服務(wù)器上/var/name/ xuegod.cn.zone的配置文件:
[root@xuegod63 ~]# cd ?/var/named
[root@xuegod63 named]# vim xuegod.cn.zone
$TTL 1D
xuegod.cn. IN SOA dns.xuegod.cn. root.xuegod.cn. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
xuegod.cn.? NS dns.xuegod.cn.
dns.xuegod.cn.? A ? 192.168.1.63
www.xuegod.cn. 1 ?A ?????192.168.1.63 #DNS做簡單的負載均衡,1表示此記錄在客戶端保存1秒揣云。
www.xuegod.cn. 1 ?A ??????192.168.1.64
www.xuegod.cn. 1 ?A ??????192.168.1.1
#DNS做簡單的負載均衡,1表示此記錄在客戶端保存1秒。這樣客戶訪問www.xuegod.cn時冰啃,可以解析成192.168.1.63或192.168.1.64或192.168.1.1 從而實現(xiàn)負載均衡
www1.xeugod.cn. ?CNAME ??www.xuegod.cn.
xuegod.cn. ???????MX ?10 ?mail.xuegod.cn. ??? #添加郵件記錄
mail.xuegod.cn. ???A ???192.168.1.63
bbs.xuegod.cn. ???CNAME ?www.xuegod.cn.
主服務(wù)器重啟時邓夕,會主動給從服務(wù)器發(fā)送信息,讓從服務(wù)器更新自己的記錄阎毅,通訊端口采用TCP 的53端口焚刚。
注:TSIG (主從DNS的時間必須一樣)
1. 同步時間
[root@xuegod63?~]# yum -y install ntp? #安裝ntp工具。
[root@xuegod63 named]# vim /etc/ntp.conf ?? #查看ntp服務(wù)器扇调。
[root@xuegod63 named]# ntpdate 0.rhel.pool.ntp.org? ?#同步時間矿咕。
2. 生成密鑰,進行主從認證(在主DNS服務(wù)器上操作)
[root@xuegod63 chroot]# rpm -qf `which dnssec-keygen `
bind-9.9.4-50.el7.x86_64
dnssec-keygen命令使用格式:dnssec-keygen -a hmac-md5 -b 128 -n HOST 名字
[root@xuegod63 etc]# cd /var/named/chroot/? #切換工作目錄狼钮。
[root@xuegod63 chroot]# dnssec-keygen -a hmac-md5 -b 128 -n HOST abc ?#生成一對對稱鑰匙
選項說明:
?-a hmac-md5? #-a選項指定加密算法碳柱,采用hmac-md5加密算法。
-b 128? #-b選項指定密鑰長度熬芜,生成的密鑰長度為128位莲镣。
-n?? ? #密鑰類型。我們選擇主機類型:HOST 涎拉。
-n <nametype>: ZONE | HOST | ENTITY | USER | OTHER
abc? ? #為生成密鑰的名字
在生成的過程中需要的時間比較長瑞侮,因為生成密鑰需要一些隨機事件,因此可以通過移動鼠標或執(zhí)行find / 來產(chǎn)生一些隨機事件鼓拧,整個過程等待大約2分鐘半火。
[root@xuegod63 chroot]# find / ???
3. 查看生成的密鑰對
[root@xuegod63 chroot]# ls
dev ?etc ?Kabc.+157+36589.key ?Kabc.+157+36589.private ?usr ?var
?
[root@xuegod63 chroot]# cat Kabc.+157+54214.private ???
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: nVk1s0B6XVB4BFfkr+vdfQ== ??#這是密鑰
[root@xuegod63 chroot]# cat Kabc.+157+54214.key
abc. IN KEY 512 3 157 nVk1s0B6XVB4BFfkr+vdfQ==
4. 修改主DNS配置
[root@xuegod63 chroot]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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; };
recursion yes;
dnssec-enable yes; ??? #取原來注釋
dnssec-validation yes;? ? #取原來注釋
dnssec-lookaside auto;? #取原來注釋
key abckey { ??????????#先定義密鑰的名字
????????algorithm hmac-md5;
????????secret "nVk1s0B6XVB4BFfkr+vdfQ==";
?};
zone "xuegod.cn." IN {
type master;
file "xuegod.cn.zone";
allow-transfer { key abckey; }; ????? #采用密鑰進行同步
};
include "/etc/named.rfc1912.zones";
5. 重啟服務(wù):
[root@xuegod63 chroot]# systemctl restart named
6. 從DNS 服務(wù)器:192.168.1.64
步驟:首先定義密鑰 ---》而后采用密鑰進行同步。
[root@xuegod64 chroot]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
key abckey { ???? #先定義密鑰名
????????algorithm hmac-md5;
????????secret "nVk1s0B6XVB4BFfkr+vdfQ==";
????????
};
zone "xuegod.cn." IN {
type slave;
file "slaves/xuegod.cn.zone.file";
masters { 192.168.1.63 key abckey; }; ?? #采用密鑰進行同步毁枯。
};
include "/etc/named.rfc1912.zones";
7. 重啟服務(wù)進行測試:
[root@xuegod63 chroot]# cd
[root@xuegod63 ~]# systemctl restart named
8. 從DNS服務(wù)器上測試:
[root@xuegod64 ~]# rm -rf /var/named/slaves/xuegod.cn.zone.file
[root@xuegod64 ~]# systemctl restart named
[root@xuegod64 ~]# ls /var/named/slaves/
xuegod.cn.zone.file
5.5.4 ?測試工具
nslookup 測試域名解析
非交互式模式
語法: nslookup 域名或IP地址
例:
[root@xuegod63 chroot]# nslookup www.xuegod.cn
Server:? 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: www.xuegod.cn
Address: 101.200.128.35
交互模式
[root@xuegod63 ~]# nslookup? #直接輸入命令慈缔,并回車,而后輸入需要解析的域名
> www.g.cn
Server:? 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: www.g.cn
Address: 203.208.40.95
Name: www.g.cn
Address: 203.208.40.79
Name: www.g.cn
Address: 203.208.40.88
Name: www.g.cn
Address: 203.208.40.87
>
5.5.5??命令dig
Linux下使用dig命令來查詢域名信息种玛,當(dāng)然也可以使用nslookup藐鹤,但dig比nslookup更方便更強大一些。
安裝:
[root@xuegod63 ~]# rpm -qf `which dig`
bind-utils-9.7.3-8.P3.el6.x86_64
例:使用114.114.114.114 DNS服務(wù)器解析www.xuegod.cn
[root@xuegod63 ~]# dig @114.114.114.114 www.xuegod.cn
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> @114.114.114.114 www.suegod.cn
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58632
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;www.suegod.cn.? IN A
;; AUTHORITY SECTION:
cn.? 3600 IN SOA a.dns.cn. root.cnnic.cn. 2023818223 7200 3600 2419200 21600
;; Query time: 40 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 三 10月 17 19:40:01 CST 2018
;; MSG SIZE ?rcvd: 84
更多學(xué)習(xí)資料請移步至公眾號【學(xué)神來啦】