1.DNS中的配置文件:
#主配置文件:/etc/named.conf
#子配置文件:/etc/name.rfc1912.zones
#數據目錄:/var/named
2.當DNS客戶端請求解析某個域名時,DNS服務器通過正向查找,並返回給DNS客戶端對應的IP地址
客戶主機中進行:
<1>進入主配置文件中將forwarders這行的內容刪除或註釋掉,並使服務重啓
[[email protected] named]# vim /etc/named.conf [[email protected] named]# systemctl restart named
<2>進入數據目錄並進行查看,然後將正向解析配置模板在此目錄下複製以便於創建解析庫文件
[[email protected] ~]# cd /var/named [[email protected] named]# ls [[email protected] named]# cp -p named.localhost westos.com.zone
注意:
1.複製時一定要注意加-p,因爲要將其權限和屬性一起復制
2.named.localhost中放的時172.0.0.1這個dns服務器
<3>進入到子配置文件中修改配置文件
[[email protected] named]# vim /etc/named.rfc1912.zones
在配置文件中增加以下內容:
zone "westos.com" IN { type master; file "westos.com.zone"; allow-update { none; }; };
<4>進入解析庫文件,修改其中的內容,其解析庫文件中的語法相當嚴格,故意不在域名後加上點,利用日誌文件查看其錯誤並解決
-1-修改解析庫文件並生效,會發現無法重新啓動服務
[[email protected] named]# vim westos.com.zone [[email protected] named]# systemctl restart named
查看配置文件,內容如下:
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com dns A 172.25.254.166 www CNAME bbs.a.westos.com. bbs.a A 172.25.254.222
-2-清空日誌文件後,再次重啓服務,報錯後,查看日誌文件下的內容
[[email protected] named]# > /var/log/messages [[email protected] named]# systemctl restart named [[email protected] named]# cat /var/log/messages
分析:報錯的原因是因爲在域名後少加了個點,日誌中的報錯說明由於沒有加點,故不認爲字符串結束,會繼續爲其補充。
-3-根據日誌中的報錯再次修改後,重新啓動服務成功
[[email protected] named]# vim westos.com.zone [[email protected] named]# systemctl restart namedi
正確的配置文件中的內容如下:
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 172.25.254.166 www CNAME bbs.a.westos.com. bbs.a A 172.25.254.222
測試主機上:
<5>進入/etc/resolv.conf中,併爲其添加解析域以及ip
[[email protected] ~]# vim /etc/resolv.conf
添加解析域以及ip:
<6>使用dig命令可以查看到www.westos.com解析的ip以及dns服務器名稱和dns服務器ip
[[email protected] ~]# dig www.westos.com
分析:
1.DNS的正相解析
1.維護的域名叫.(即根)
2.域的設定相當於分離出來了,在主配置文件裏面 include 「/etc/named.rfc1912.zones「更好的被讀取,在主配置文件裏寫的和在全局裏寫的一樣
3.複製時要加-p(重啓會報錯,查詢),權限參數
[email protected]:變量,在維護的域裏面,引號中的內容,會自動填充
5.如果字符串的值不以.結尾,例如haha(即代表haa.westos.con),把域名省略掉,告訴字符串已經完成,不需要再補齊了
6.語法非常嚴格,一點都不能錯
7.解析庫文件中的解釋:客戶可以把信息保存1天,給當前維護的人查看,refresh刷新主機的緩存時間,retry1個小時之後可以重新測試,expire過期時間1萬,minimum最小緩存時間是3小時,NS:nameserver(看到的服務器的名字)
<1>進入解析庫文件修改文件內容並使服務生效(在客戶端進行)
[[email protected] named]# vim westos.com.zone [[email protected] named]# systemctl restart named
文件中修改的內容如下:
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 172.25.254.166 www CNAME bbs.a.westos.com. bbs.a A 172.25.254.222 bbs.a A 172.25.254.111
<2>檢測域(在測試端進行)
[[email protected] ~]# dig www.westos.com ##首先檢測域 [[email protected] ~]# dig www.westos.com ##過一會再檢測域,發現ip的順序發生了改變(有延時)
第一次檢測:
第二次檢測:
<1>進入正向解析庫文件,對文件的內容進行修改並進行生效
[[email protected] named]# vim westos.com.zone(在/var/named) [[email protected] named]# systemctl restart named
添加MX記錄,修改後的內容如下:
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 172.25.254.166 www CNAME bbs.a.westos.com. bbs.a A 172.25.254.222 bbs.a A 172.25.254.11 westos.com. MX 1 mail.westos.com. ##域名westos.com代表「發送郵件」的ip mail A 172.25.254.155 ##mail代表郵件發送的ip爲172.25.254.155(注意:ip爲172.25.254.155的主機一定要關閉防火牆)
<2>給ip爲172.25.254.155的主機發送郵件內容(輸入一個域名,即會依次類推到最終要到達的ip)
[[email protected] named]# mail [email protected]
注意:輸入「.」之後便會退出郵件的寫入
<3>查看郵件是否發送,發現mail中沒有郵件,說明郵件已經發送
[[email protected] named]# > /var/log/maillog ##清空郵件發送的日誌 [[email protected] named]# mail ##查看郵件是否發送,當顯示No mail for root說明郵件已經發送
<4>查看郵件隊列。此時連接顯示的剛纔指定的ip,發現主機的ip爲172.25.254.155的主機拒絕接收(如果要使郵件可以接收,需要配置信息,這裏就不說了)
[[email protected] named]# mailq
<5>刪除郵件隊列中的內容並進行查看
[[email protected] named]# postsuper -d EBC70289921 ##刪除郵件隊列中指定的Queue ID [[email protected] named]# mailq
<6>檢測要維護的域,發現成功
[[email protected] named]# dig -t mx westos.com
補充:
MX的記錄也可以寫成如下格式
<1>進入配置文件修改內容並使服務生效
[[email protected] named]# vim westos.com.zone [[email protected] named]# systemctl restart named
配置文件中的內容如下:
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 172.25.254.166 www CNAME bbs.a.westos.com. bbs.a A 172.25.254.222 bbs.a A 172.25.254.11 westos.com. MX 10 mx1.westos.com. ##MX x(隨意) mx1 A 172.25.254.155
<8>檢測要維護的域
[[email protected] named]# dig -t mx westos.com
注意:最後的dig一定要輸入正確的域名
解釋:用於IP地址到域名的映射,當DNS客戶端請求解析某個IP地址時,DNS服務器通過反向查找,並返回給DNS客戶端對應的域名
<1>進入/etc/named.rfc1912.zones進行修改
[[email protected] ~]# vim /etc/named.rfc1912.zones
在配置文件中加入以下內容:
zone "254.25.172.in-addr.arpa" IN { type master; file "172.25.254.ptr"; allow-update { none; }; };
<2>進入/var/named目錄,將反向解析的模板複製到172.25.254.ptr文件
[[email protected] ~]# cd /var/named [[email protected] named]# cp -p named.loopback 172.25.254.ptr
<3>編輯172.25.254.ptr文件並生效
[[email protected] named]# vim 172.25.254.ptr [[email protected] named]# systemctl restart named
編輯的內容如下:
$TTL 1D @ IN SOA dns.westos.com. root.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 172.25.254.128 100 PTR dns.westos.com. 111 PTR www.westos.com. 222 PTR bbs.westos.com.
<4>試圖解析172.25.254.111,發現可以成功解析(要開啓name的服務)
[[email protected] named]# dig -x 172.25.254.111
<5>試圖解析172.25.254.222,發現可以成功解析
[[email protected] named]# dig -x 172.25.254.222
解釋:雙向解析即在不同的主機中,當訪問同一個域名時,會出現不同的ip
<1>將正向解析庫進行復制,並編輯文件中的內容(即修改別的主機訪問時的ip)
[[email protected] named]# cp -p westos.com.zone westos.com.inter [[email protected] named]# ls [[email protected] named]# vim westos.com.inter
修改westos.com.inter中的內容(將所有的172.25.254修改成192.168.0)
$TTL 1D @ IN SOA dns.westos.com. bai.westos.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.westos.com. dns A 192.168.0.166 www CNAME bbs.a.westos.com. bbs.a A 192.168.0.222 bbs.a A 192.168.0.11 westos.com. MX 1 mail.westos.com. mail1 A 192.168.0.155
<2>將子配置文件進行復制,並編輯文件中的內容
[[email protected] named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters [[email protected] named]# vim /etc/named.rfc1912.inters
修改的內容如下:
zone "westos.com" IN { type master; file "westos.com.inter"; allow-update { none; }; };
<3>在服務端中進入主配置文件修改以下內容並生效
[[email protected] named]# vim /etc/named.conf [[email protected] named]# systemctl restart named
修改的內容如下(將域的解析分成兩部分,一部分爲本機訪問時的解析域名的配置,一部分爲除了本機外的所有人訪問時的解析域名的配置,根域名必須包含在view內):
/* zone "." IN { ##將其根域名註釋掉,分別放到以下兩部分的域的解析 type hint; file "named.ca"; }; */ view localhost{ match-clients {localhost;}; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; ##將子配置文件分開放置 }; view internet{ match-clients {any;}; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.inters"; ##將子配置文件分開放置 };
<4>查看服務端和客戶端的域名是否都是服務端
[[email protected] ~]# vim /etc/resolv.conf [[email protected] ~]# vim /etc/resolv.conf
服務端解析文件:
客戶端解析文件:
<5>查看服務端的火牆,如果是開着的,則關閉服務端的火牆
[[email protected] named]# systemctl status firewalld
<6>在服務端進行域名的解析,發現解析的網段與設置的localhost一樣
[[email protected] ~]# dig www.westos.com
<7>在客戶端進行域名的解析,發現同一個域名,但解析的內容不同,因爲是文件中是除了本機外的所有主機,在訪問時,都是另外一個網段
[[email protected] ~]# dig www.westos.com
注意: 實驗做完後,一定要將主配置文件中的域的解析進行還原,否則會影響接下來的實驗