企業 dns 服務器搭建
- 1. dns 的名詞解釋
- 2. dns 服務的安裝與啟用
- 3. 高速快取 dns
- 4. dns 的正向決議
- 5. dns 的反向決議
- 6. dns 的雙向決議
- 7. dns 集群和更新
- 8. 動態域名決議(dhcp+dns)
實驗環境的搭建
在做此實驗時需要保證 linux 系統中真實主機的超級用戶可以聯網;兩臺虛擬機的 ip 設定為和真實主機之間可以通信的網段,
1. dns 的名詞解釋
dns:domin name service (域名決議服務)
- 關于客戶端:
/etc/resolv.conf ##dns指向檔案
nameserver 192.168.122.1

測驗:
host www.baidu.com ##地址決議命令
dig www.baidu.com ##地址詳細決議資訊命令


A記錄 ##ip地址叫做域名的Address 記錄
SOA ##授權起始主機
dns頂級 .
次級有13個 .com .net .edu .org …
無數多個域名 baidu.com
- 關于服務端
bind ##安裝包
named ##服務名稱
/etc/named.conf ##主組態檔
/var/named ##資料目錄
埠 ##53
- 關于報錯資訊:
1.no servers could be reached ##服務無法訪問(服務是否開啟、火墻策略是否設定、網路是否能通信、服務埠是否設定完成)
2.服務啟動失敗 ##組態檔寫錯,輸入命令 journalctl -xe 查詢錯誤資訊;
3.dig 查詢狀態
NOERROR ##表示查詢成功
REFUSED ##服務拒絕訪問
SERVFAIL ##查詢記錄失敗,(dns服務器無法到達上級,拒絕快取)
NXDOMAIN ##此域名A記錄在dns中不存在
2. dns 服務的安裝與啟用
-
安裝
輸入命令 dnf install bind.x86_64 -y 來安裝 dns 服務 -
啟用
輸入命令 systemctl enable --now named,開啟服務;
輸入命令 firewall-cmd --permanent --add-service=dns ,設定火墻策略;
輸入命令 firewall-cmd --reload ,重新加載火墻策略,

編輯 dns 服務的主組態檔 vim /etc/named.conf;內容為如下:
11 listen-on port 53 { any; }; ##在本地所有網路介面上開啟53埠
19 allow-query { any; }; ##允許查詢A記錄的客戶端串列
34 dnssec-validation no; ##禁用dns檢測使dns能夠快取外部資訊到本機
完成組態檔的更改之后,輸入命令 systemctl restart named 即可完成 dns 服務的啟用,
3. 高速快取 dns
當我們在訪問任何一個域名時,都會有一定的決議時間;在企業中有很多主機時,每一臺主機訪問相同的域名時,都會耗費一定的時間;為了節省訪問的時間,在企業中需要搭建一個高速快取 dns 主機,
當服務端主機已經安裝完成 dns 服務,但是在客戶端主機中并不能成功訪問,如圖所示的報錯;設定完成之后,其他主機還是不能訪問,因為默認安裝的 dns 服務只開啟了回環介面上的服務段口,除本機以外的主機是無法使用的;

在服務端主機中輸入命令 vim /etc/named.conf,編輯組態檔如圖所示,表示本機所有網路介面開啟 53 埠對外提供 dns 服務;然后輸入命令 systemctl restart named 重啟服務;

開啟埠之后,此時客戶端主機再次訪問時會有如下所示的報錯資訊出現,此時報錯為 REFUSED ,表示服務被拒絕; 因為雖然開了埠,但是還只是對本機提供決議服務;

在服務端主機中輸入命令 vim /etc/named.conf,編輯組態檔如圖所示,允許所有主機查詢 A 記錄的客戶端串列,為所有主機提供決議服務;然后輸入命令 systemctl restart named 重啟服務;

允許所有主機查詢 A 記錄的客戶端串列之后,此時在客戶機主機中還是不能訪問,報錯資訊如圖所示,SERVFAIL 表示查詢記錄失敗,(dns服務器無法到達上級,拒絕快取),并且速度非常滿;原因是當前 dns 主機中沒有網路地址決議資料,所以當做決議時需要到 .com 中去找;

在服務端主機中輸入命令 vim /etc/named.conf,編輯組態檔如圖所示,修改查找的位置為 114.114.114.114,設定指定提供決議的地址,避免訪問國外服務器,導致速度慢的問題;然后輸入命令 systemctl restart named 重啟服務;

設定完以上之后,此時在客戶機主機中雖然可以訪問,但是訪問域名的速度還是會非常慢;因為當前的 dns 是沒有經過備案的,需要關閉 dns 自檢;

在服務端主機中輸入命令 vim /etc/named.conf,編輯組態檔如圖所示,禁用 dns 檢測使dns能夠快取外部資訊到本機,加速 dns 的速度 ;然后輸入命令 systemctl restart named 重啟服務;

完成以上操作之后,此時高速快取 dns 服務器就已經搭建完成,當企業中的一臺主機訪問過一個網址之后,其他的主機在訪問時便會從搭建 dns 服務器的主機中獲得資料,會大大節省時間,

4. dns 的正向決議
在做該實驗時,為了更好的觀察實驗效果,將檔案 /etc/named.conf 中如圖所示的行注釋掉,

在當前主機中編輯 /etc/named.rfc1912.zones 檔案如圖所示,其中第 29 行 westos.org 表示要維護的域名;第 30 行 type master 表示 dns 為主 dns;第 31 行 westos.org.zone 表示 A 記錄決議檔案;第 32 行允許更新主機串列;

在 A 記錄決議檔案存放目錄 /var/named/ 中,輸入命令 cp -p named.localhost westos.org.zone ##生成 A 記錄檔案,-p 表示復制權限;
將 A 記錄決議檔案模板復制成在組態檔 /etc/named.rfc1912.zones 中寫入的 A 記錄決議檔案的名稱;
然后編輯復制的 A 記錄決議檔案,此檔案中所有不用 “.” 結尾的字串會自動補齊@處的值;
$TTL 1D ##快取時長
@ IN SOA dns.westos.org. root.westos.org. ( #SOA授權起始(Start of Authority)
0 ; serial #域名版本序列號
1D ; refresh #重繪時間(輔助dns)
1H ; retry #重試時間(輔助dns)
1W ; expire #過期時間(輔助dns,查詢失敗過期停止對輔助域名的應答)
3H ) ; minimum #A記錄最短有效期
NS dns.westos.org. #域名服務器的名稱
dns A 192.168.122.1 #提供域名決議的 IP
www A 192.168.122.20
編輯完成之后輸入命令 systemctl restart named 重啟服務,當兩個檔案中的任何檔案內容撰寫的有問題時,重啟服務時會報錯;報錯資訊可以用命令 journalctl -xe 來查看;也可以輸入命令 > /var/log/messages 清空日志;再重啟服務查看日志的問題;

如圖當在當決議 www.westos.org 時,可以看到該域名的 IP 為 192.168.122.20 ;體共分決議服務的是 192.168.122.1 ;當本機負責的域名時候就在當前主機中提供決議;

以上是在訪問當前維護的域,當訪問本機不維護的域時就會從別處找,


通過對 A 記錄決議檔案的更改,來規范域名的轉換;編輯檔案如圖所示,CNAME 為規范域名轉換;

組態檔更改之后,重啟服務;
輸入命令 dig www.westos.org 來查詢正向決議,此時在決議時如圖所示:

當輸入命令 dig -t mx westos.org 來查詢郵件決議記錄時,如下圖所示維護的域中可以看到郵件資訊,維護的域中并沒有郵件資訊;


通過對 A 記錄決議檔案的更改,如圖所示,其中倒數第二行為郵件決議記錄,最后一行為郵件 A 記錄地址;

編輯完成之后,此時重啟服務;
當輸入命令 dig -t mx westos.org 來查詢郵件決議記錄時,如下圖所示,可以看到當前維護域的郵件資訊,

5. dns 的反向決議
在上面的操作中,在輸入域名時,通過對于組態檔的更改,來提供決議服務屬于 dns 的正向決議;那么當我們在輸入 IP 時,將 IP 決議為域名的程序就是 dns 的反向決議,
地址決議為域名:域名叫 IP 的 ptr 記錄,IP 叫域名的 A 記錄;
編輯配置 ptr 記錄檔案 /etc/named.rfc1912.zones ,寫入反向決議陳述句塊;第 53 行寫入維護的 IP ,此處的書寫要反向寫入;第 54 行表示 dns 為主 dns;第 55 行 192.168.122.ptr 表示 ptr 記錄決議檔案;第 56 行表示允許更新主機串列;

在 A 記錄決議檔案存放目錄 /var/named/ 中,輸入命令 cp -p named.localhost 192.168.122.ptr 生成 ptr 記錄檔案,-p 表示復制權限;

編輯復制的 ptr 記錄檔案,內容如圖所示;寫入 PTR 記錄;
編輯完配置子檔案之后,輸入命令 systemctl restart named 重啟服務;

此時在訪問維護的 IP 時,輸入命令 dig -x 192.168.122.1 ,將地址決議為域名時可以看到 IP 的 PTR 記錄,

6. dns 的雙向決議
以上是基于同一個網段的決議配置,在企業中會面臨內網和外網之間的差異性;基于此就需要對 dns 做雙向決議,
實驗環境:
- 在服務端,設定當前主機為雙網段的主機,一個網段為內網 IP 172.25.254.1,另一個為外網 IP 192.168.122.1;

- 在客戶端,一臺和內網 IP 在一個網段,另一臺和外網 IP 在一個網段;
外網 IP 為 192.168.122.100 ,編輯 /etc/resolv.conf 檔案,寫入 nameserver 192.168.122.1 ;
內網 IP 為 172.25.254.200 ,編輯 /etc/resolv.conf 檔案,寫入 nameserver 172.25.254.1 ,如圖所示:

dns 雙向決議配置:
在服務端,將 /var/named/ 中的檔案 westos.com.zone 復制為 westos.com.inter 內網決議檔案;并編輯內網決議檔案如下圖所示:

將該服務的組態檔 /etc/named.rfc1912.zones 復制為 /etc/named.rfc1912.zones.inter ;

在復制好的檔案 /etc/named.rfc1912.zones.inter 中,更改第 31 內容如下圖所示的內容,其中第 29 行 westos.org 表示要維護的域名;第 30 行 type master 表示 dns 為主 dns;第 31 行 westos.org.inter 表示 A 記錄決議檔案;第 32 行允許更新主機串列;

然后編輯主組態檔 /etc/named.conf 中的內容如下圖所示,表示為不同網段主機 dns 決議不一樣;內網主機對應的是 /etc/named.rfc1912.zones.inter ;外網主機對應的 /etc/named.rfc1912.zones ;

注:
以上只是對于內網主機的決議做了設定,在前面已經為其他主機做過設定,
完成以上設定之后,輸入 systemctl restart named 重啟服務;
此時在外網主機中輸入 dig www.westos.org 時,可以看到提供決議的 192.168.122.1 ;對應的也是 /etc/named.rfc1912.zones 中的內容;

此時在內網主機中輸入 dig www.westos.org 時,可以看到提供決議的 172.25.254.1 ;對應的也是 /etc/named.rfc1912.zones.inter 中的內容,

7. dns 集群和更新
在大型企業中,往往會有更多的主機;當很多人同時訪問不通的網站時,此時就可能出現擁堵甚至停機的現象,那么可以用 dns 集群的方式來緩解這種情況,
實驗環境:
為了更好的觀察下面的實驗,將主配置 /etc/named.conf 檔案更改為如圖所示的樣子;避免雙向決議對接下來的實驗有影響;
然后輸入命令重啟服務;
此處將內網網段更改為和外網一樣的網段,來檢測 dns 集群的設定是否成功,
- 輔助 dns主 機,在該臺主機上裝 dns
輸入命令 dnf install bind -y 安裝 named 服務;
輸入命令 systemctl enbale --now named 開啟 dns 服務;
輸入命令 firewall-cmd --permanent --add-service=dns ,在火墻策略中寫入 dns 服務;
輸入命令 firewall-cmd --reload 重新加載火墻;

在安裝好服務設定好火墻之后,就要對輔助 dns 的組態檔進行更改;和主 dns 中的設定一樣,開啟 53 埠,允許所有用戶登錄,禁用 dns 檢測使dns能夠快取外部資訊到本機;如圖所示:

更改完主組態檔之后,需要更改 /etc/named.rfc1912.zone 檔案,更改內容如圖所示,其中第 29 行 westos.org 表示要維護的域名;第 30 行 type slave 表示 dns 為輔助 dns;第 31 行 192.168.122.1 表示主 dns ;第 32 行 slaves/westos.org.zone 表示 A 記錄同步資料檔案;第 33 行允許更新主機串列;

第 32 中的 slaves 是一個目錄,可以看到該目錄的權限;

當兩個組態檔更改之后,輸入命令 systemctl restart named ,重啟服務;
編輯 /etc/resolv.conf 檔案內入為 nameserver 192.168.122.100 ;
然后輸入 dig www.westos.org 來測驗輔助 dns 是否已經生效,如圖所示,說明輔助 dns 搭建成功,

- 主 dns:
如果此時主 dns 不做更改,是基于前面的設定;此時當主 dns 的資訊有更改時,輔助 dns 是沒有辦法獲得到更改資訊的;雖然可以先洗掉 /var/named/slaves/* 中的所有檔案,然后在輸入 systemctl restart named 重啟服務,獲得更改后的資訊;

此法方法雖然可行,但是比較麻煩,主機比較少的時候還可以,主機多的時候就很麻煩,
那么就需要對主組態檔的修改,來讓輔助 dns 自動識別;
編輯組態檔內容如圖所示,第 33 行表示主動通知的輔助 dns 100主機;

然后更改 /var/named/westos.com.zone dns A 記錄決議檔案內榮如圖所示,然后重啟服務;

此時在輔助 dns 中還是不能看到更改之后的資訊;因為每次修改 A 記錄檔案之后都需要更改版本號,不然不會更新資訊;

此時將之前的 0 修改為 1 ;版本號只能增量不能縮減,最多十位,修改的時候,可以按照時間去修改,

當更改完版本號之后,重啟服務,然后在輔助 dns 主機中輸入 dig www.westos.org 時可以看到更新后的 A 記錄內容,

8. 動態域名決議(dhcp+dns)
在 dns 主機中安裝 dhcp ;當客戶主機時 dhcp 的作業模式時,決議會因為獲得地址的不同而出現錯誤,
輸入命令 dnf instsall dhcp-server -y 安裝 dhcp 服務;
輸入命令 cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcpd/dhcpd.conf,將模板檔案復制為 /etc/dhcpd/dhcpd.conf 組態檔;
然后編輯組態檔 /etc/dhcpd/dhcpd.conf ,來設定 IP 的范圍,
設定 kkk 主機的作業模式為動態網路作業模式,如圖所示,當重啟網路時,便會獲得一個 IP ;

此時將其決議寫入 A 記錄檔案中,在測驗時輸入 dig kkk.westos.org 時,可以決議到寫入 A 記錄中的內容;

此時更改 dhcp 服務提供 IP 的范圍;
當獲得新的 IP 時,此時在輸入 dig kkk.westos.org 時,可以決議到寫入 A 記錄中的內容和之前一樣,顯然是不正確的,因為當前的 IP 已經不再是寫入 A 記錄檔案中的 IP ,

dns 的 key 更新
以上對于 dns 的決議,都是基于靜態網路作業模式下的更新,當作業模式為動態時,對于 A 記錄檔案中寫入內容的方式便不在妥當,因為當重啟網路之后,獲得的 IP 并不一定是之前寫入 A 記錄檔案中的內容,
在 dhcp 服務主機中,編輯 dhcp 服務的組態檔/etc/dhcpd/dhcpd.conf ,在第 14 行,去掉之前的注釋,將 none 改為 interim 表示 dhcp 開啟網路更新 dns 的功能;

輸入命令 dnssec-keygen -a HMAC-SHA256 -b 128 -n host westos ,表示設定 dns 的密碼,-a 表示采用 hmac-256 加密方式,-b 表示密碼長度為 128 位,-n 表示決議,密碼為 westos ;可以看到生成一個公鑰和一個私鑰;

1) dhcp更新
在 dhcp 服務的組態檔中寫入如圖所示的內容;第 33-36 行表示給 dhcp 服務添加更新 key;第 37-40 行表示指定 dhcp 用 key 去更新那個 dns 主機的那個域名,第38行表示當 dhcp 和當前的 dns 在一個主機時,用回環介面去更新;當不在一個主機時就需要用 dns 主機的 IP 去更新,

2) dns更新
在 dns 的組態檔 /etc/named.conf 中寫入如圖所示的內容,表示給 dns 添加 key ;

在 /etc/named.rfc1912.zone 中寫入如下圖所示的內容,第 32 行表示 westos.org 這個域支持 key westos 的更新;

此時 /etc/named/westos.oeg.zone 的內容如圖所示,應該去掉之前在該檔案中寫入的域名決議;

然后輸入命令 systemctl restart named 重啟 dns ;輸入命令 systemctl restart dhcpd 重啟 dhcp 服務;當重啟沒有報錯時,說明語法正確,
3) 測驗:
此時在更改 dhcp 組態檔,更改提供 IP 的范圍;然后重啟 dhcp 服務;

在服務端重啟網路獲得新的 IP ;

輸入 dig kkk.westos.org 來查看決議資訊;可以看到新獲得 IP 已經成功寫入 dns 的 A 級記錄檔案中,說明動態域名決議設定成功,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272808.html
標籤:其他
上一篇:Linux的基本指令1
