此次我們的口號是:簡單、有趣上手DNS服務

博主是一個言出必行de好人,(正經臉)上次轉載了有關DNS的基礎介紹,此次我們來通過實驗搭建DNS服務器從而更好的了解DNS搭建過程

如何開始,且聽我細細道來

首先我們通常使用bind來配置DNS服務器,何為bind,某百科曰:

BINDBerkeley?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壞了,叉會腰)

好了,實驗就此結束了,沒有細細進行排錯(因為博主沒有出錯(傲氣)),倘若大家實驗過程中出錯,下方評論鍵,博主一定及時盡最大努力為其解決回復