DNS原理
- 客戶端發起請求:客戶端向本地 DNS 服務器發送域名解析請求,這是流程的起始點。
- 本地 DNS 服務器查詢根域名服務器:若本地 DNS 服務器緩存中無對應記錄,它向根域名服務器發起查詢,根域名服務器是 DNS 系統頂層,掌握頂級域名服務器信息。
- 根域名服務器響應:根域名服務器告知本地 DNS 服務器,負責該域名頂級域名服務器的地址。
- 本地 DNS 服務器查詢頂級域名服務器:本地 DNS 服務器向頂級域名服務器發送查詢請求,頂級域名服務器管理如.com、.org 等頂級域名下的域名信息。
- 頂級域名服務器響應:頂級域名服務器告知本地 DNS 服務器,負責該域名的權威域名服務器地址。
- 本地 DNS 服務器查詢權威域名服務器:本地 DNS 服務器向權威域名服務器查詢,權威域名服務器存儲具體域名的解析記錄。
- 權威域名服務器響應:權威域名服務器將域名對應的 IP 地址返回給本地 DNS 服務器。
- 本地 DNS 服務器響應客戶端:本地 DNS 服務器將獲取的 IP 地址返回給客戶端,客戶端就能通過 IP 訪問對應網絡資源。
此外,客戶端和本地 DNS 服務器間虛線關聯本地 DNS 緩存、/etc/hosts 文件 ,本地 DNS 服務器配置文件是 /etc/resolv.conf ,這些在解析中起到輔助作用。
- 主dns要完成dns解析:192.168.164.128
[root@localhost ~]# yum install bind -y
[root@localhost?~]#?systemctl??start?named
named:它是 BIND(Berkeley Internet Name Domain)域名服務器軟件的守護進程。
[root@localhost?~]#?vim?/etc/named.conf
named.conf?是 BIND(Berkeley Internet Name Domain)軟件的主配置文件,BIND 是在互聯網上廣泛使用的 DN(Domain Name System)服務器軟件,named.conf?文件用于控制?named?守護進程的行為
[root@localhost?~]#?vim?/etc/named.conf
1.?options?部分
- listen-on port 53 { any; };
- 作用:指定?named?服務監聽在 TCP 和 UDP 的 53 端口,并且監聽所有本地 IP 地址。這意味著該 DNS 服務器可以接收來自任何網絡接口的 DNS 請求。
- directory "/var/named";
- 作用:定義區域文件(記錄域名相關信息的文件)的存儲目錄。BIND?會在這個目錄下查找和存放相關的區域文件。需要確保?named?服務對該目錄有讀寫權限。
- allow-query { any; };
- 作用:允許任何客戶端發起 DNS 查詢請求。
- allow-transfer { 192.168.164.129; };
- 作用:允許指定的 IP 地址(這里是?192.168.164.129?)進行區域傳送。區域傳送是指主 DNS 服務器將區域數據復制給從 DNS 服務器的過程。如果設置不當,可能會導致 DNS 數據泄露,所以要謹慎設置,只允許可信的從 DNS 服務器 IP 進行區域傳送 。
2. 區域定義部分
- zone "zhang.com." IN {
- 作用:定義了一個名為?zhang.com.?的 DNS 區域,類型為?master(主區域) ,意味著這臺服務器是該區域的主 DNS 服務器,負責維護和管理這個區域的 DNS 記錄。
- file "named.zhang.com";:指定該區域對應的區域文件名為?named.zhang.com?,這個文件應存放在前面?options?中定義的?directory?目錄(/var/named?)下,里面應包含?zhang.com?這個區域的具體 DNS 記錄,如?A?記錄(域名到 IP 地址映射)、MX?記錄(郵件交換記錄)等 。目前缺少具體的區域文件內容,需要創建并填充相關記錄。
- zone "164.168.192.in-addr.arpa" IN {
- 作用:這是一個反向解析區域定義,in-addr.arpa?是用于 IPv4 反向地址解析的特殊域名。類型同樣為?master?。反向解析是通過 IP 地址查詢對應的域名,對于網絡管理和安全審計等有重要作用。
- file "named.192.168.164.zone";:指定該反向解析區域對應的區域文件 。
[root@localhost~]#cp?-a /var/named/named.localhost /var/named/named.zhang.com
[root@localhost~]#cp?-a /var/named/named.localhost /var/named/named.192.168.138.zone
vim??/var/named/named.zhang.com
vim??/var/named/named.192.168.164.zone
[root@localhost ~]# systemctl restart named
Job for named.service failed because the control process exited with error code.
See "systemctl status named.service" and "journalctl -xeu named.service" for details.
[root@localhost ~]# systemctl stop firewalld
從:192.168.164.129
[root@localhost ~]# ?yum ?install bind ?-y
[root@localhost ~]# systemctl ?start named
[root@localhost ~]# vim /etc/named.conf
options {
????????listen-on port 53 { any; };
????????directory ??????"/var/named";
????????allow-query ????{ any; };
}
zone?"zhang.com."?IN?{
type?slave;
masters { 192.168.164.128; };
file “slaves/named.zhang.com”;};
zone?"164.168.192.in-addr.arpa"?IN?{
?type?slave;
masters { 192.168.164.128; };
file “slaves/named.192.168.164.zone”;
};
[root@localhost ~]# systemctl ?restart named
[root@localhost ~]# systemctl stop firewalld
測試:
C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.128
C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.129
[root@localhost ~]# host xixi.zhang.com 192.168.164.128
[root@localhost ~]# host xixi.zhang.com 192.168.164.129
---------------增量
增量同步:
1、主:
tep1:往資源文件添加一行新的解析記錄,(/var/named/named.zhang.com
和/var/named/named.192.168.164.zone )
tep2:序列號+1
tep3:[root@localhost ~]# systemctl restart named
2、從
手動增量同步
[root@localhost ~]# rndc refresh zhang.com
[root@localhost ~]# rndc refresh 164.168.192.in-addr.arpa
測試:
C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.128
C:\Users\Legend>nslookup xixi.zhang.com 192.168.164.129
[root@localhost ~]# host xixi.zhang.com 192.168.164.128
[root@localhost ~]# host xixi.zhang.com 192.168.164.129