一、DNS介紹
1.1DNS概述
DNS:域名系統,應用層協議,是互聯網的一項服務,它作為將域名和IP地址相互映射的一個分布式資料庫,能夠使人更方便地訪問互聯網,基于C/S架構,服務器端:53/udp, 53/tcp實際上,每一臺 DNS 服務器都只負責管理一個有限范圍(一個或幾個域)內的主機域 名和 IP 地址的對應關系,這些特定的 DNS 域或 IP 地址段稱為 zone(區域),根據地址決議的方向不同,DNS 區域相應地分為正向區域(包含域名到 IP 地址的決議記錄)和反向區域(包含 IP 地址到域名的決議記錄)
1.2DNS的層次結構
ICANN:互聯網名稱與數字地址分配機構,負責在全球范圍內對互聯網通用頂級域名(gTLD)以及國家和地區頂級域名(ccTLD)系統的管理、以及根服務器系統的管理,

1.3實作域名決議的方法
方法一:本地host檔案


方法二:安裝軟體服務(見本章標題四)
二、DNS服務器型別
(1)快取域名服務器:只提供域名決議結果的快取功能,目的在于提高查詢速度和效率,但是沒有自己控制的區域地址資料,構建快取域名服務器時,必須設定根域或指定其他 DNS 服務器作為決議來源,
(2)主域名服務器:管理和維護所負責決議的域內決議庫的服務器
(3)從域名服務器:從主服務器或從服務器"復制"(區域傳輸)決議庫副本
- 序列號:決議庫版本號,主服務器決議庫變化時,其序列遞增
- 重繪時間間隔:從服務器從主服務器請求同步決議的時間間隔
- 重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔
- 過期時長:從服務器聯系不到主服務器時,多久后停止服務
- 通知機制:主服務器決議庫發生變化時,會主動通知從服務器
IPv4的根名稱服務器:全球共13個負責決議根域的DNS服務器,美國10個,英國1,瑞典1,日本1
IPv6的根名稱服務器:全球共25個,中國1主3從,美國1主2從
三、DNS查詢型別及原理
3.1查詢方式
- 遞回查詢:一般客戶機和本地DNS服務器之間屬于遞回查詢,即當客戶機向DNS服務器發出請求后, 若DNS服務器本身不能決議,則會向另外的DNS服務器發出查詢請求,得到最終的肯定或否定的結果后轉交給客戶機,此查詢的源和目標保持不變,為了查詢結果只需要發起一次查詢,(不需要自己動手)
- 迭代查詢:一般情況下(有例外)本地的DNS服務器向其它DNS服務器的查詢屬于迭代查詢,如:若對方不能回傳權威的結果,則它會向下一個DNS服務器(參考前一個DNS服務器回傳的結果)再次發起進行查詢,直到回傳查詢的結果為止,此查詢的源不變,但查詢的目標不斷變化,為查詢結果一般需要發起多次查詢,(需要自己動手)
3.2查詢原理程序
(1)正向決議查詢程序:
- 先查本機的快取記錄
- 查詢hosts檔案
- 查詢dns域名服務器,交給dns域名服務器處理
- 這個dns服務器可能是本地域名服務器,也有個快取,如果有直接回傳結果,如果沒有則進行下一步
- 求助根域服務器,根域服務器回傳可能會知道結果的頂級域服務器讓他去找頂級域服務器
- 求助頂級域服務器,頂級域服務器回傳可能會知道結果的二級域服務器然他去找二級域服務器
- 求助二級域服務器,二級域服務器查詢發現是我的主機,把查詢到的ip地址回傳給本地域名服務器
- 本地域名服務器將結果記錄到快取,然后把域名和ip的對應關系回傳給客戶端
(2)查詢,清理DNS快取命令
windows系統:
- 查詢dns快取命令:ipconfig /displaydns
- 清理dns快取命令:ipconfig /flushdns
linux系統:清理dns快取需要安裝nscd軟體,啟動、執行nscd -i hosts
(3)DNS層次介紹
- 根域名DNS服務器:專門負責根域名
- 一級DNS服務器:專門負責一級域名的決議(一般代表一種型別的組織機構或國家地區)
- 二級DNS服務器:專門負責二級域名的決議
- 三級DNS服務器:專門負責子域名的決議也稱為三級域名
四、正向決議
實驗環境:CentOS7 實驗目標:正向決議 第一步:安裝bind [root@server ~]#yum -y install bind bind-utils #主軟體 和 配置包管理軟體 [root@server ~]#systemctl start named #開啟服務 [root@server ~]#systemctl status named #查看服務狀態 [root@server ~]#netstat -ntap |grep named [root@server ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=192.168.10.10 #將自己作為DNS服務器 [root@server ~]#systemctl restart network [root@server ~]#cat /etc/resolv.conf #查看DNS有沒有生效 [root@server ~]#ping www.baidu.com 第二步:修改主組態檔1 [root@server ~]#vim /etc/named.conf #可以修改配置,注釋,或者洗掉這兩行 13行:listen-on port 53 { any; }; 21行:allow-query { any; }; #權限 [root@server ~]#rndc reload #重新加載DNS服務 第三步:修改域名區域組態檔2 [root@server ~]#vim /etc/named.rfc1912.zones #撰寫域名 zone "FZR.com" IN { type master; #權威服務器 file "FZR.com.zone"; }; [root@server named]#cd /var/named/ #切換目錄 [root@server named]#ls [root@server named]#cp -p named.localhost ./FZR.com.zone #-p保留權限復制 [root@server named]#vim FZR.com.zone #編輯資料庫檔案,決議記錄對應關系 $TTL 1D @ IN SOA master.FZR.com. admin.FZR.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS master.FZR.com. master IN A 192.168.10.10 www IN A 192.168.10.20 ftp IN A 192.168.10.30 @ IN A 192.168.10.30 * IN A 192.168.10.20 [root@server named]#named-checkconf #檢查啟動檔案格式 [root@server named]#named-checkzone FZR.com.zone /var/named/FZR.com.zone
第四步:測驗實驗結果 [root@server named]#rndc reload #重啟服務 [root@server named]#host www.FZR.com #測驗 [root@server named]#cat FZR.com.zeno [root@server named]#host ftp.FZR.com
操作:









![]()

五、反向決議
實驗環境:CentOS7 實驗目標:反向決議 第一步:修改組態檔1 [root@server ~]#vim /etc/named.rfc1912.zones #修改35-39行 zone "10.168.192.in-addr.arpa" IN { type master; file "ZZJ.com.zone"; allow-update { none; }; }; 第二步:復制反向決議模板 [root@server ~]#cd /var/named/ [root@server /var/named]#cp -p named.loopback ZZJ.com.zone 第三步:修改組態檔2 [root@server /var/named]#vim ZZJ.com.zone $TTL 1D @ IN SOA master.ZZJ.com. admin.ZZJ.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master master IN A 192.168.10.10 100 IN PTR www.ZZJ.com. 200 IN PTR ftp.ZZJ.com. [root@server /var/named]#rndc reload #重新加載服務 第四步:測驗 [root@server /var/named]#host 192.168.10.100 [root@server /var/named]#host 192.168.10.200
操作:





六、主從復制
實驗環境: 主服務器地址:192.168.10.10(CentOS7-1) 從服務器地址:192.168.10.20(CentOS7-2) 實驗目的:主從復制 第一步:從服務器配置 [root@client ~]#yum install bind bind-utils.x86_64 -y [root@client ~]#vim /etc/named.conf #13和21行改成any listen-on port 53 { any; }; allow-query { any; }; [root@client ~]#vim /etc/named.rfc1912.zones #添加下面內容 zone "ZZJ.com" IN { type slave; file "slaves/ZZJ.com.zone"; masters { 192.168.10.10; }; [root@client ~]# systemctl restart named [root@client ~]#ls /var/named/slaves 第二步:主服務器配置 [root@server ~]#vim /etc/named.rfc1912.zones #添加以下行 zone "ZZJ.com" IN { type master; file "ZZJ.com.zone"; allow-transfer { 192.168.10.20; }; }; [root@server ~]#rndc reload 第三步:修改網卡 主服務器: [root@server ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 添加以兩行: DNS1=192.168.10.10 DNS2=192.168.10.20 [root@server ~]#systemctl restart network #重啟網卡 從服務器: [root@client ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=192.168.10.10 DNS2=192.168.10.20 [root@client ~]#systemctl restart network #重啟網卡 第四步:測驗實驗結果 主服務器停止named服務: [root@server ~]#systemctl stop named.service [root@server ~]#host www.ZZJ.com [root@server ~]#host mail.ZZJ.com
從服務器操作:



![]()

![]()
主服務器操作:



![]()
測驗:

七、開啟CentOS的快取
7.1開啟快取工具
CentOS 默認沒有啟用DNS客戶端快取,安裝nscd(Name Service Cache Daemon,名稱服務快取守護行程)包可以支持DNS快取功能減少DNS服務器壓力,提高DNS查詢速度,

![]()

![]()
7.2決議工具


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/518982.html
標籤:其他
