Linux運維實戰(zhàn)經(jīng)驗分享:搭建DNS服務(wù)器實現(xiàn)域名解析

全套學(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)容涡尘。

5.1 ?DNS服務(wù)概述

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)示意圖

5.1.1 ?域和域名

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?地址的映射信息于毙。

5.1.2 ?區(qū)(Zone)

區(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ù)。

5.1.4 ?DNS 相關(guān)概念

(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é)果返回給客戶機。

5.1.5 ?兩種查詢方式

(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é)果為止涝滴。

5.1.6 ?正向解析與反向解析

正向解析:

正向解析是指域名到IP 地址的解析過程绣版,如圖 5-3所示。

圖 5-3 正向解析域名

反向解析:

反向解析是從IP 地址到域名的解析過程歼疮。反向解析的作用為服務(wù)器的身份驗證杂抽,如圖 5-4 所示。

http://dns.aizhan.com/

圖 5-4 反向解析域名

5.1.7 ?DNS資源記錄

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)配置文件

5.2.1 ?安裝DNS

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)安裝的了族阅,它用于搜索域名指令篓跛。

5.2.2 ?DNS服務(wù)器相關(guān)配置文件

[root@xuegod63 ~]# ls /etc/named.conf

/etc/named.conf

named.conf 是BIND 的核心配置文件,它包含了BIND 的基本配置坦刀,但其并不包括區(qū)域數(shù)據(jù)愧沟。

/var/named/ 目錄為DNS數(shù)據(jù)庫文件存放目錄蔬咬,每一個域文件都放在這里

5.2.3 ?啟動服務(wù)

[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 ????????

5.2.4 ?服務(wù)的使用方法

在客戶端上配置好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

5.2.5 ?配置文件詳解

配置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ù)器

5.3.1 ?配置正向解析區(qū)域

修改配置文件前标,授權(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";

創(chuàng)建zone文件

[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

修改DNS地址:

[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ù)器

5.4.1 ?使用DNS支持遞歸查詢

[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

在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.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ù)器

5.5.1 ?搭建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.

5.5.3 DNS主從密鑰認證

主服務(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é)神來啦】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赂韵,一起剝皮案震驚了整個濱河市娱节,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祭示,老刑警劉巖肄满,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡稠歉,警方通過查閱死者的電腦和手機掰担,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怒炸,“玉大人带饱,你說我怎么就攤上這事≡母” “怎么了勺疼?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捏鱼。 經(jīng)常有香客問我执庐,道長,這世上最難降的妖魔是什么导梆? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任轨淌,我火速辦了婚禮,結(jié)果婚禮上看尼,老公的妹妹穿的比我還像新娘猿诸。我一直安慰自己,他們只是感情好狡忙,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著址芯,像睡著了一般灾茁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谷炸,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天北专,我揣著相機與錄音,去河邊找鬼旬陡。 笑死拓颓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的描孟。 我是一名探鬼主播驶睦,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼匿醒!你這毒婦竟也來了场航?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤廉羔,失蹤者是張志新(化名)和其女友劉穎溉痢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡孩饼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年髓削,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镀娶。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡立膛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汽畴,到底是詐尸還是另有隱情旧巾,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布忍些,位于F島的核電站鲁猩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏罢坝。R本人自食惡果不足惜廓握,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘁酿。 院中可真熱鬧隙券,春花似錦、人聲如沸闹司。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽游桩。三九已至牲迫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間借卧,已是汗流浹背盹憎。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铐刘,地道東北人陪每。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像镰吵,于是被迫代替她去往敵國和親檩禾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容