02: DNS服務基礎 特殊解析 DNS子域授權 快取DNS 總結和答疑
NSD SERVICES DAY02
1 案例1:搭建單區域DNS伺服器
1.1 問題
本例要求要求為DNS區域tedu.cn搭建一臺DNS伺服器,以便使用者能通過域名的方式訪問網站。測試階段主要提供以下正向記錄:
- svr7.tedu.cn ---> 192.168.4.7
- pc207.tedu.cn ---> 192.168.4.207
- www.tedu.cn ---> 192.168.4.100
配置完成後在客戶機上驗證查詢結果。
1.2 方案
快速構建DNS伺服器的基本過程:
- 安裝 bind、bind-chroot 包
- 建立主配置檔案 /etc/named.conf
- 建立地址庫檔案 /var/named/.. ..
- 啟動 named 服務
配置及使用DNS客戶端的基本過程:
- 修改配置檔案/etc/resolv.conf,新增nameserver=DNS伺服器地址
- 使用host命令查詢,提供目標域名作為引數
1.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:配置DNS伺服器svr7
1)安裝 bind、bind-chroot 包
- [[email protected] ~]# yum -y install bind bind-chroot
- .. ..
2)建立主配置檔案 /etc/named.conf
- [[email protected] ~]# mv /etc/named.conf /etc/named.conf.origin //備份預設配置
- [[email protected] ~]# vim /etc/named.conf //建立新配置
- options {
- directory "/var/named"; //地址庫預設存放位置
- };
- zone "tedu.cn" { //定義正向DNS區域
- type master; //主區域
- file "tedu.cn.zone"; //自定義地址庫檔名
- };
3)建立地址庫檔案 /var/named/tedu.cn.zone
- [[email protected] ~]# cd /var/named/ //進地址庫目錄
- [[email protected] named]# cp -p named.localhost tedu.cn.zone //參考範本建地址庫檔案
- [[email protected] named]# vim tedu.cn.zone //修訂地址庫記錄
- $TTL 1D //檔案開頭部分可保持不改
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- @ NS svr7.tedu.cn. //本區域DNS伺服器的FQDN
- svr7 A 192.168.4.7 //為NS主機提供A記錄
- pc207 A 192.168.4.207 //其他正向地址記錄.. ..
- www A 192.168.4.100
4)啟動 named 服務,並設定開機自啟
- [[email protected] named]# systemctl restart named
- [[email protected] named]# systemctl enable named
- Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
步驟二:配置DNS客戶機pc207並測試
1)修改配置檔案/etc/resolv.conf,指定預設使用哪一臺DNS伺服器
- [[email protected] ~]# vim /etc/resolv.conf
- nameserver 192.168.4.7
- .. ..
2)使用host命令查詢,提供目標域名作為引數
- [[email protected] ~]# host svr7.tedu.cn
- svr7.tedu.cn has address 192.168.4.7
- [[email protected] ~]# host pc207.tedu.cn
- pc207.tedu.cn has address 192.168.4.207
- [[email protected] ~]# host www.tedu.cn
- www.tedu.cn has address 192.168.4.100
使用host測試DNS查詢結果時,如果不方便修改/etc/resolv.conf檔案,也可以採用“host 目標域名 DNS伺服器地址”形式臨時指定使用哪一臺DNS伺服器。
- [[email protected] ~]# host pc207.tedu.cn 192.168.4.7
- Using domain server:
- Name: 192.168.4.7
- Address: 192.168.4.7#53
- Aliases:
- pc207.tedu.cn has address 192.168.4.207
2 案例2:特殊DNS解析
2.1 問題
沿用案例1,本例要求掌握DNS輪詢、泛域名解析的配置,實現的目標如下:
- 為站點 www.tedu.cn 提供DNS輪詢解析,三臺Web伺服器節點的IP地址分別為:192.168.4.100、192.168.4.110、192.168.4.120
- 配置泛域名解析實現以下解析記錄:任意名稱.tedu.cn ---> 119.75.217.56
2.2 方案
DNS輪詢:FQDN ---> IP地址1、IP地址2、.. ..
泛域名解析(站點名不確定):多個FQDN ---> 一個IP地址
2.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:配置DNS輪詢
1)修改DNS伺服器上tedu.cn區域的地址庫檔案,在末尾新增輪詢地址記錄
- [[email protected] ~]# vim /var/named/tedu.cn.zone
- .. ..
- www A 192.168.4.100
- www A 192.168.4.110
- www A 192.168.4.120
2)重啟系統服務named
- [[email protected] named]# systemctl restart named
3)在客戶機pc207上測試輪詢記錄
針對目標www.tedu.cn執行多次查詢,觀察第1條結果的變化:
- [[email protected] ~]# host www.tedu.cn
- www.tedu.cn has address 192.168.4.100 //第1個結果為192.168.4.100
- www.tedu.cn has address 192.168.4.110
- www.tedu.cn has address 192.168.4.120
- [[email protected] ~]# host www.tedu.cn
- www.tedu.cn has address 192.168.4.120 //第1個結果為192.168.4.120
- www.tedu.cn has address 192.168.4.110
- www.tedu.cn has address 192.168.4.100
- [[email protected] ~]# host www.tedu.cn
- www.tedu.cn has address 192.168.4.110 //第1個結果為192.168.4.110
- www.tedu.cn has address 192.168.4.120
- www.tedu.cn has address 192.168.4.100
步驟二:配置多對一的泛域名解析
1)修改DNS伺服器上指定區域的地址庫檔案,在末尾新增*通配地址記錄
- [[email protected] ~]# vim /var/named/tedu.cn.zone
- .. ..
- * A 119.75.217.56
2)重啟系統服務named
- [[email protected] named]# systemctl restart named
3)在客戶機pc207上測試多對一的泛域名解析記錄
當查詢未知站點(地址庫中沒有明確記錄)時,以 * 對應的IP地址反饋:
- [[email protected] ~]# host station123.tedu.cn
- station123.tedu.cn has address 119.75.217.56
- [[email protected] ~]# host movie.tedu.cn
- movie.tedu.cn has address 119.75.217.56
- [[email protected] ~]# host tts8.tedu.cn
- tts8.tedu.cn has address 119.75.217.56
3 案例3:配置DNS子域授權
3.1 問題
沿用案例1,本例要求為上下級兩個DNS區域建立父子關聯,實現客戶機向父DNS也可以查詢到子域內的FQDN,基本要求如下:
- 構建父DNS(tedu.cn)伺服器
- 構建子DNS(bj.tedu.cn)伺服器
- 在父DNS上配置子域授權
- 測試子域授權查詢
3.2 方案
為一個DNS區域新增授權子域時,需要修改此區域的地址庫,新增以下記錄:
- 子域域名. IN NS 子DNS的FQDN.
- 子DNS的FQDN. IN A 子DNS的IP地址
3.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:構建父DNS(tedu.cn)伺服器
1)將svr7配置為父DNS伺服器,確認配置
主配置檔案/etc/named.conf:
- [[email protected] ~]# viim /etc/named.conf
- options {
- directory "/var/named";
- };
- zone "tedu.cn" {
- type master;
- file "tedu.cn.zone";
- };
- .. ..
正向地址庫檔案:
- [[email protected] ~]# vim /var/named/tedu.cn.zone
- $TTL 1D
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- @ NS svr7.tedu.cn.
- svr7 A 192.168.4.7
- pc207 A 192.168.4.207
- www A 192.168.4.100
- .. ..
確保服務已啟用:
- [[email protected] ~]# systemctl restart named
2)測試 —— 向父DNS可成功查詢到父區域中的站點
- [[email protected] ~]# host www.tedu.cn 192.168.4.7
- Using domain server:
- Name: 192.168.4.7
- Address: 192.168.4.7#53
- Aliases:
- www.tedu.cn has address 192.168.4.100
- .. ..
步驟二:構建子DNS(bj.tedu.cn)伺服器
1)將pc207配置為子DNS伺服器,確認配置
安裝軟體包bind、bind-chroot:
- [[email protected] ~]# yum -y install bind bind-chroot
- .. ..
建立主配置檔案/etc/named.conf:
- [[email protected] ~]# mv /etc/named.conf /etc/named.conf.origin //備份預設配置
- [[email protected] ~]# vim /etc/named.conf //建立新配置
- options {
- directory "/var/named";
- };
- zone "bj.tedu.cn" { //定義子DNS的正向區域
- type master;
- file "bj.tedu.cn.zone";
- };
建立地址庫配置檔案:
- [[email protected] ~]# cd /var/named/ //進地址庫目錄
- [[email protected] named]# cp -p named.localhost tedu.cn.zone //參考範本建地址庫檔案
- [[email protected] named]# vim bj.tedu.cn.zone //修訂地址庫記錄
- $TTL 1D //檔案開頭部分可保持不改
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- @ NS pc207.bj.tedu.cn. //本區域DNS伺服器的FQDN
- pc207 A 192.168.4.207 //為NS主機提供A記錄
- www A 1.2.3.4 //新增測試記錄 www.bj.tedu.cn
2)啟動系統服務named,並設定開機自啟
- [[email protected] named]# systemctl restart named
- [[email protected] named]# systemctl enable named
- Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
3)測試 —— 向子DNS可成功查詢到子區域中的站點
- [[email protected] ~]# host www.bj.tedu.cn 192.168.4.207
- Using domain server:
- Name: 192.168.4.207
- Address: 192.168.4.207#53
- Aliases:
- www.bj.tedu.cn has address 1.2.3.4
步驟三:在父DNS上配置子域授權
1)測試 —— 未配置子域授權時,向父DNS無法正確查詢到子區域中的站點
若父DNS配置有 * 泛域名,則反饋的結果為對應的IP地址119.75.217.56,而不是子DNS中記錄的1.2.3.4:
- [[email protected] ~]# host www.bj.tedu.cn 192.168.4.7
- Using domain server:
- Name: 192.168.4.7
- Address: 192.168.4.7#53
- Aliases:
- www.bj.tedu.cn has address 119.75.217.56
若父DNS未配置有 * 泛域名,則找不到解析結果(not found):
- [[email protected] ~]# host www.bj.tedu.cn 192.168.4.7
- Using domain server:
- Name: 192.168.4.7
- Address: 192.168.4.7#53
- Aliases:
- Host www.bj.tedu.cn not found: 3(NXDOMAIN)
2)修改父DNS區域tedu.cn的地址庫,新增授權子域資訊
- [[email protected] ~]# vim /var/named/tedu.cn.zone
- .. ..
- bj.tedu.cn. NS pc207.bj.tedu.cn. //子區域及子DNS主機名
- pc207.bj.tedu.cn. A 192.168.4.207 //子DNS的IP地址
- [[email protected] named]# systemctl restart named //重啟服務
步驟四:測試子域授權查詢
測試 —— 成功配置子域授權以後,向父DNS可以正確查詢到子區域中的站點:
- [[email protected] ~]# host www.bj.tedu.cn 192.168.4.7
- Using domain server:
- Name: 192.168.4.7
- Address: 192.168.4.7#53
- Aliases:
- www.bj.tedu.cn has address 1.2.3.4
4 案例4:搭建並測試快取DNS
4.1 問題
本例要求熟悉快取DNS的工作過程,準備一臺可上網的RHEL7虛擬機器,並完成下列任務:
- 安裝 bind、bind-chroot 包
- 搭建並測試基於全域性轉發器的快取DNS
注意:若所在機房不具備訪問網際網路DNS條件,此案例改由學員自行在家完成。
4.2 方案
權威/官方DNS伺服器的特點:
- 至少管理一個DNS區域,,需要IANA等官方機構授權
- 典型應用:根域DNS、一級域DNS、二級域DNS、三級域DNS、.. ..
快取DNS伺服器的特點:
- 不需要管理任何DNS區域,但是能夠替客戶機查詢,而且通過快取、複用查詢結果來加快響應速度
- 典型應用:ISP服務商、企業區域網
快取DNS伺服器的解析記錄來源:
- 方式1:全域性轉發:將請求轉發給指定的公共DNS(其他快取DNS),請求遞迴服務
- 方式2:根域迭代:依次向根、一級、二級……域的DNS伺服器迭代
4.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:為虛擬機器pc207提供上網條件
1)為虛擬機器新增一塊新的網絡卡,選擇NAT或Bridge模式
若選擇NAT模式(地址轉換),則新加網絡卡的上網引數由虛擬化平臺自動設定。
若選擇Bridge模式(橋接),則新加網絡卡的上網引數需要參考真實網路的主機,必要時請網路管理員提供支援。
此處所列地址資訊可幫助大家理解上網條件,但不作為練習的配置依據:
- [[email protected] ~]# ifconfig eth1 //檢查新增網絡卡的IP地址
- eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.70.129 netmask 255.255.255.0 broadcast 192.168.70.255
- .. ..
- [[email protected] ~]# route -n //確認已配好預設閘道器
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 0.0.0.0 192.168.70.2 0.0.0.0 UG 100 0 0 eth1
- 192.168.70.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1
- .. ..
- [[email protected] ~]# cat /etc/resolv.conf //確認第一DNS為外部可用DNS地址
- nameserver 192.168.70.2
- .. ..
2)確保從主機pc207可訪問到外部DNS
訪問預設DNS可用(本機正常連網需要):
- [[email protected] ~]# host www.qq.com
- www.qq.com has address 111.30.132.101
- www.qq.com has IPv6 address 240e:e1:8100:28::2:16
訪問指定DNS可用(全域性轉發的前提條件):
- [[email protected] ~]# host www.qq.com 202.106.0.20 //國內公共DNS伺服器之一
- Using domain server:
- Name: 202.106.0.20
- Address: 202.106.0.20#53
- Aliases:
- www.qq.com has address 111.30.132.101
- www.qq.com is an alias for qq.com.edgesuite.net.
- qq.com.edgesuite.net is an alias for a1574.b.akamai.net.
- www.qq.com is an alias for qq.com.edgesuite.net.
- qq.com.edgesuite.net is an alias for a1574.b.akamai.net.
步驟二:將pc207配置為快取DNS(全域性轉發式)
1)安裝bind、bind-chroot軟體包
- [[email protected] ~]# yum -y install bind bind-chroot
- .. ..
2)建立主配置檔案/etc/named.conf
當收到來自客戶機的DNS查詢請求時,轉發到外網的其他DNS伺服器
- [[email protected] ~]# vim /etc/named.conf
- options {
- forwarders { 202.106.0.20; };
- };
3)啟動系統服務named,並設定開機自啟
- [[email protected] ~]# systemctl restart named
- [[email protected] ~]# systemctl enable named
4)可向快取DNS伺服器pc207查詢到公共域名(百度、網易等站點)
- [[email protected] ~]# host www.baidu.com 192.168.4.207 //查百度的站點IP
- Using domain server:
- Name: 192.168.4.207
- Address: 192.168.4.207#53
- Aliases:
- www.baidu.com is an alias for www.a.shifen.com.
- www.a.shifen.com has address 111.13.100.92
- www.a.shifen.com has address 111.13.100.91
- [[email protected] ~]# host www.163.com 192.168.4.207 //查網易的站點IP
- Using domain server:
- Name: 192.168.4.207
- Address: 192.168.4.207#53
- Aliases:
- www.163.com is an alias for www.163.com.lxdns.com.
- www.163.com.lxdns.com is an alias for 163.xdwscache.ourglb0.com.
- 163.xdwscache.ourglb0.com has address 111.11.31.104
- 163.xdwscache.ourglb0.com has address 111.11.31.114