此次我們的口號是:簡單、有趣上手DNS服務
博主是一個言出必行de好人,(正經臉)上次轉載了有關DNS的基礎介紹,此次我們來通過實驗搭建DNS服務器從而更好的了解DNS搭建過程
如何開始,且聽我細細道來
首先我們通常使用bind來配置DNS服務器,何為bind,某百科曰:
BIND(Berkeley?Internet?Name?Domain)
是現今互聯網上最常使用的DNS服務器軟件,使用BIND作為服務器軟件的DNS服務器約占所有DNS服務器的九成。BIND現在由互聯網系統協會(Internet Systems Consortium)負責開發與維護。
懂了吧,bind是一個軟件,我們需要安裝使用....(路人:博主,我們不瞎,謝謝!)
咳咳,來,來點值錢的
實驗一:主DNS服務器搭建(正向解析,反向解析)
實驗環境:兩臺VMware下的虛擬機,
以CentOS7作為DNS服務端,用于配置DNS服務
以CentOS6作為DNS客戶端,用于測試DNS服務
呃...不行,正經不過三行,哈哈哈
實驗步驟:
1、安裝DNS服務軟件bind,
推薦使用yum安裝方法可以將bind及其所需組件一次性全部安裝。聲明一下,不是博主懶,這叫優化
[root@centos7?~]#yum?install?bind?-y???????????????? ..................... ..................... ..................... Installed:bind.x86_64?32:9.9.4-37.el7????????????????????????????????????????????????Complete!??????###成功安裝bind
注意:安裝完bind會自動創建named系統用戶,以named用戶運行服務而不是以root用戶運行,目的是為了防止***的***服務從而獲取權限,這樣的話遭受******只會獲取named用戶的低權限,不會獲取root用戶的管理員權限。許多服務軟件都會這樣來保護系統的安全。
2、配置文件的處理
安裝bind后會有許多DNS服務配置文件,(不是博主不懂那啥,而是..而是只介紹實驗相關的,其他..其他不考慮了,嘿嘿)
首先我們打開主配置文件:
[root@centos7?~]#vim?/etc/named.conf?? //.......... //.......... options?{............} logging?{............} zone?"."?IN?{??????????????type?hint;file?"named.ca"; };##我們可以直接在主配置文件里面模仿文件中的zone來寫自己所需要的zone域 include?"/etc/named.rfc1912.zones";????????##或者可以在此處/etc/named.rfc1912.zones中編輯自己所需要的zone域 include?"/etc/named.root.key";
注意:其中:// 后面接的都是注釋語句,類似于普通配置文件中的#
? ?? ?options 后面接的是全局配置選項,dns全局參數都在這里配置。
? ?? ?logging 定義日志的記錄范圍,一般默認不修改。
?????zone 定義一個區域聲明,比如區域文件名,類型等。
DNS服務的端口號為53,我們必須確定端口的監聽問題,才可以讓客戶機來進行測試。
options?{ //??????listen-on?port?53?{?127.0.0.1;?};??????##原端口的監聽listen-on?port?53?{localhost;};???????##修改端口的監聽,localhost為DNS自帶關鍵字,表示本機的所有IPlisten-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;?};??????##原允許查詢的IPallow-query?????{?any;?};????????##修改為允許所有IP均可查詢,any也是DNS自帶關鍵字,表示所有IP地址
為了更好的說明我們將正向解析(將域名解析為IP地址)的區域信息寫在主配置文件中
是這個樣子滴:
zone?"."?IN?{type?hint;file?"named.ca";????#區域解析庫文件存放于/var/named/下 };????????????????????#模仿文件中的zone來編寫我們需要解析的zone zone?"magedu.com"?{??????????#此處鍵入需要解析的域名,域名,域名,(剩下的一遍自己說)type?master;?????????#類型master表示此服務器為主服務器,稍后會介紹輔助DNS服務器file?"magedu.com.zone";????#定義區域正向解析庫文件 };
將反向解析(將IP地址解析為域名)的區域信息寫在包含的配置文件/etc/named.rfc1912.zones中
這樣這樣滴:
[root@centos7?~]#vim?/etc/named.rfc1912.zones? ............. zone?"1.0.0.127.in-addr.arpa"?IN?{type?master;file?"named.loopback";allow-update?{?none;?}; };??????????????????????#許多配置我們都可以模仿著來寫:模仿上文來寫自己需要反向解析的區域信息 zone?"136.168.192.in-addr.arpa"?IN?{????#此處鍵入需要反向解析的IP地址段type?masterfile?"192.168.136.zone"????#定義反向解析庫文件 };
接下來就是處理正向和反向解析庫文件
區域解析庫是由眾多RR(Resource Record資源記錄)?組成的,其中有這樣幾種類型
敲黑板、啪啪啪
SOA :Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA 記錄,必須位于解析庫的第一條記錄
A :internet Address ,將完整域名解析為IPv4地址?
AAAA: 將完整域名解析為IPv6地址
PTR: PoinTeR ,將IP地址解析為完整域名
NS: Name Server ,專用于標明當前區域的DNS 服務器
CNAME :Canonical Name ,別名記錄
?MX: Mail eXchanger ,郵件交換器
在/var/named下已經有許多區域解析庫文件,我們可以拷貝一份,然后進行必要的修改,也可以自己創建解析庫文件
注意:拷貝模板或者自己創建解析庫文件時注意權限問題,單純cp或者手動創建時文件的所屬組為root,named用戶無法訪問,就會報錯,錯誤詳情:server can't find XXX mailmagedu.com :SERVFAIL
為了簡單我們拷貝一份模板,(加上選項-p,保留原有屬性)
正向解析庫文件是這個樣子滴:
[root@centos7?named]#cp?-p?named.localhost?magedu.com.zone???##注意文件名與配置文件里面定義的保持一致 [root@centos7?named]#vim?magedu.com.zone? $TTL?1D????????????????????????????????????????????????##TTL值:域名解析記錄在服務器中的存留時間 @???????IN?SOA??dns1?mail.magedu.com.?(?????????##@可以引用當前區域的名字0???????;?serial????##此文件中;表示注釋,serial:序列號,與從DNS服務器有關1D??????;?refresh???##刷新時間1H??????;?retry?????##重試時間1W??????;?expire????##過期時間3H?)????;?minimum???##否定答案的TTL值NS??????dns1 dns1????A???????192.168.136.132 www?????A???????192.168.136.123 websrv??A???????192.168.136.125
反向解析庫文件這樣滴:
[root@centos7?named]#cp?-p?named.localhost?192.168.136.zone [root@centos7?named]#vim?192.168.136.zone? $TTL?1D @???????IN?SOA??dns1?mail.magedu.com.?(0???????;?serial1D??????;?refresh1H??????;?retry1W??????;?expire3H?)????;?minimumNS??????dns1 dns1????A???????192.168.136.132 123?????PTR?????www.magedu.com. 125?????PTR?????websrv
文件保存,配置全部完成(開心)
實際上,還有專門的檢查配置文件語法錯誤的命令,語法錯誤會導致服務啟動失敗:
[root@centos7?named]#named-checkconf????##檢查主配置文件/etc/named.conf文件的語法錯誤 .......?????????????????????????????????##無錯誤的話什么都不顯示,只會顯示錯誤信息 [root@centos7?named]#named-checkzone?magedu.com?/var/named/magedu.com.zone??????##檢查區域解析庫文件,格式為:named-checkzone?zone?filename zone?magedu.com/IN:?loaded?serial?3 OK?????##檢查無誤
3、測試環節
利用CentOS6客戶機進行測試,為確保實驗正確,我們網絡選擇僅主機模式,不連接互聯網,并且客戶機的DNS須指向服務器端,如何指向服務器端呢??給個贊就告訴你(路人肌肉男:你再說一遍,你說什么??)
我說..我說確保客戶機的DNS指向有兩種方法:
(1)
[root@centos6?~]#?vim?/etc/resolv.conf? #?Generated?by?NetworkManager search?9magedu.com nameserver?192.168.136.132???????????##直接在此處添加域名解析服務的IP地址,不需要重啟網絡,立即生效 [root@centos6?~]#?host?www.magedu.com??##host測試命令,用于專門測試DNS域名,或者dig命令,顯示的信息更為詳細 www.magedu.com?has?address?192.168.136.123
(2)
[root@centos6?~]#?vim?/etc/sysconfig/network-scripts/ifcfg-eth0 ........ ........ DNS1=192.168.136.132???????????????????????##在此處指定DNS指向 ........ [root@centos6?~]#?service?network?restart???##需要重啟網絡服務 ........ [root@centos6?~]#?host?www.magedu.com???? www.magedu.com?has?address?192.168.136.123 [root@centos6?~]#?dig?-x?192.168.136.125???##dig命令測試反向解析需要加-x ........
實驗成功,是不是很值錢,啊,誰不服,不服搭建個(馮小剛狀(囂張):還有誰)
來,再來五毛的
倘若主服務器不小心宕機,那么就需要一個副手(輔助DNS服務器)
主DNS服務器就像上述一樣配置,主要介紹配置從DNS服務器
實驗二:輔助DNS服務器(從DNS服務器)搭建
實驗環境:以CentOS7為主DNS服務器,CentOS6為從DNS服務器
實驗步驟:
1、從DNS服務器端安裝bind軟件包
2、配置文件處理
方便客戶機測試:
[root@centos6?~]#?vim?/etc/named.conf? ............. ............. options?{ //??????listen-on?port?53?{?127.0.0.1;?};????##可以將其注釋掉,默認監聽本機IP ............. //??????allow-query?????{?localhost;?};????##注釋掉,默認允許任何IP查詢 .............
修改配置文件:
[root@centos6?~]#?vim?/etc/named.conf? ............. zone?"."?IN?{type?hint;file?"named.ca"; }; zone?"magedu.com"?IN?{type?slave;???????????????##類型:slave(奴隸),同步主服務器解析庫文件masters?{?192.168.136.132;?};?????##標明主DNS服務器地址file?"slaves/magedu.com.zone.slave";???##從DNS服務器區域解析文件放在/var/named/slavesxia }; include?"/etc/named.rfc1912.zones";???????????##也可以修改此配置文件,效果一樣
我們也需要對主DNS服務器區域解析庫文件進行修改
[root@centos7?named]#vim?/var/named/magedu.com.zone? $TTL?1D @???????IN?SOA??dns1?mail.magedu.com.?(3???????;?serial1D??????;?refresh1H??????;?retry1W??????;?expire3H?)????;?minimumNS??????dns1NS??????dns2????????????##添加從DNS服務器IP dns2????A???????192.168.136.131 dns1????A???????192.168.136.132 www?????A???????192.168.136.123 websrv??A???????192.168.136.125
配置完成,接下來....
[root@centos6?~]#?service?named?restart????????##重啟服務 Stopping?named:????????????????????????????????????????????[??OK??] Starting?named:????????????????????????????????????????????[??OK??] [root@centos6?~]#?ls?/var/named/slaves/????????##從主DNS服務器上同步過來的區域解析庫文件 magedu.com.zone.slave
之前區域數據庫文件的序列號用于表示主從服務器文件的不同,主服務器文件發生修改,主服務器序列號發生變化,從服務器也會隨之更新同步
3、測試環節
找尋客戶機進行測試:
[root@centos6?~]#?host?websrv.magedu.com?192.168.136.131??????##指定DNS服務器地址 Using?domain?server: Name:?192.168.136.131 Address:?192.168.136.131#53 Aliases:?websrv.magedu.com?has?address?192.168.136.125 [root@centos6?~]#?host?websrv.magedu.com?192.168.136.132???????##指定DNS服務器地址 Using?domain?server: Name:?192.168.136.132 Address:?192.168.136.132#53 Aliases:?websrv.magedu.com?has?address?192.168.136.125
測試成功,怎么樣,值錢不,(可把我NB壞了,叉會腰)
好了,實驗就此結束了,沒有細細進行排錯(因為博主沒有出錯(傲氣)),倘若大家實驗過程中出錯,下方評論鍵,博主一定及時盡最大努力為其解決回復
轉載于:https://blog.51cto.com/mozart/1972337