簡介:DNS(域名系統),因特網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。它在UDP協議上運行,使用53端口。
UDP(用戶數據報協議),是OSI(開放式系統互聯)參考模型中一種無連接的傳輸層協議,提供面向事物的簡單不可靠信息傳送服務。
學習目標:配置高速緩存DNS,瞭解DNS的功能與用途。
DNS資源記錄:DNS採用資源記錄的形式存儲信息。每條記錄均記錄具體一個類型,表明其保留的數據類型
— A : 名稱至 IPv4 地址(正向記錄,域名到IP)
— AAAA : 名稱至 IPv6 地址
— CNAME : 名稱至 "規範名稱" (包含A/AAAA 記錄的另一個名稱)
— PTR : IPv4/IPv6地址至名稱(反向記錄,IP到域名)
— MX : 用於名稱的郵件交換器(向何處發送其電子郵件)
— NS : 域名的名稱服務器
— SOA : “授權起始”,DNS區域的信息(管理信息)
DNS排錯:通過顯示的信息來判斷和分析爲什麼DNS查找的信息失敗。
— NOERROR : 查詢成功
— NXDOMAIN : DNS 服務器提示不存在這樣的名稱
— SERVFAIL : DNS 服務器停機或 DNSSEC響應驗證失敗
— REFUSED : DNS 服務器拒絕回答(也許是出於訪問控制原因)
緩存 DNS 服務器 :
BIND 是最廣泛使用的開源名稱服務器,在 RHEL 中,通過bind軟件包提供,防火牆開啓端口53/tcp 和 53/udp ,bind 的主配置文件是 /etc/named.conf , /var/named 目錄包含名稱服務器所使用的其他數據文件。
配置DNS服務器:
安裝 bind 軟件包
yum install bind -y
編輯 /etc/named.conf 配置文件
listen-on port 53 { any; }; 控制 named 偵聽的 IPv4 地址 ##這裏是監聽任何地址的53端口(any改爲localhost,監聽本地53端口)
allow-query { any; }; 控制哪些客戶端可以向 DNS 服務器詢問信息 ##允許與任何直連的網絡使用(any改爲localhost,允許與本地直連的網絡使用)
dnssec-validation no;是否進行DNSSEC確認開關
重啓服務
systemctl restart named
/etc/named.conf 文件還有一些重要的參數,例:
listen-on-v6 port 53 控制 named 偵聽的 IPv6 地址
forwarders { IP; }; 包含 DNS 查詢將轉發至指定名稱服務器的列表。(而不是直接聯繫外部名稱服務器,在設有防火牆的情況中很有用。)
如何配置 DNS 的正向解析 :
編輯配置文件 vim /etc/named.rfc1912.zones
加入以下內容: zone "westos.com" IN { #指定要維護的域名
type master;
file "westos.com.zone"; #指定A記錄文件名
allow-update { none; };
};
編輯A記錄文件:
cd /var/named
cp -p named.localhost westos.com.zone
vim westos.com.zone
systemctl restart named #重啓服務
dig hello.westos.com #dig 查看A記錄解析情況
如何配置 DNS 的反向解析:
編輯配置文件 vim /etc/named.rfc1912.zones
加入以下內容: zone "254.25.172.in-addr.arpa" IN {
type master;
file "westos.com.ptr";
allow-update { none; };
};
cd /var/named
cp -p westos.com.zone westos.com.ptr
vim westos.com.ptr
systemctl restart named
dig -x 172.25.254.100 # dig 查看反向解析情況
配置 DNS 正向解析的類型:
cd /var/named
vim westos.com.zone
systemctl restart named
dig mx westos.com #dig 查看 MX 解析記錄
注:CNAME(別名,此記錄用於將某個別名指向到某個某個主機(A),記錄上,從而無需爲某個新名字解析的主機額外創建A記錄)。
MX(郵件交換器),此記錄列出了負責接收發到域中的電子郵件的主機,通常用於郵件的收發。
NS(名稱服務器),此記錄指定負責此DNS區域的權威服務器。
如何配置 DNS 內外網解析:
在desktop主機上添加一塊網卡,配置 IP 爲192.168.0.100
cp -p /etc/named.rfc1912.zones /etc/named.inter.zones
vim /etc/named.inter.zones
加入以下內容: zone "westos.com" IN {
type master;
file "westos.com.inter";
allow-update { none; };
};
vim /etc/named.conf
cd /var/named
cp -p westos.com.zone westos.com.inter
vim westos.com.inter
systemctl restart named
用 dig 命令查看解析情況
以下操作在客戶端 server 主機上進行
vim /etc/resolv.conf
加入以下內容: nameserver 172.25.254.100
用 dig 命令查看外網解析情況
如何配置 DNS 文件同步:
在desktop上執行以下操作:
vim /etc/named.rfc1912.zones
systemctl restart named
在server上執行以下操作:
yum install bind -y
systemctl start named
vim /etc/named.conf
vim /etc/named.rfc1912.zones
systemctl restart named
cd /var/named/slaves
ls
生成westos.com.zone文件,文件內容和desktop主機上的一樣
在desktop主機上修改westos.com.zone配置文件
systemctl restart named
dig bbs.westos.com ##dig解析出來的IP 爲修改後的IP
在servcer主機上進行解析,顯示的內容爲原來的內容,因爲在服務端上修改DNS客戶端不能進行同步,這樣的缺點就是客戶端不能實時的對服務器的信息進行同步,造成信息的不正確性。
如何解決DNS服務端和客戶端數據同步的問題:
在desktop 主機上進行如下操作:
vim /etc/named.rfc1912.zones
在配置文件中加入 also-notify { 172.25.254.200; }; 這個參數
vim /var/named/westos.com.zone
systemctl restart named
dig bbs.westos.com #dig 查看解析的IP爲172.25.254.123
在客戶端server上,
dig bbs.westos.com #dig 查看解析的IP 爲 172.25.254.123
如何配置DNS可以實現通過客戶端同步服務器的信息:
在desktop 服務器上編輯配置文件
vim /etc/named.rfc1912.zones
systemctl restart named
chmod g+w /var/named
參數allow-update { 172.25.254.200; }; #通過IP爲172.25.254.200 的客戶端可以進行文件的更新
在server客戶端上執行以下操作:
dig redhat.westos.com #查看解析情況
這樣做的安全級別不高,因爲任何客戶端都可以對服務端進行數據的更新,我們需要通過加密的方式進行更新,只有擁有密鑰的客戶端纔可以對服務器的數據進行更新,解決安全的問題。
在desktop服務器上進行如下操作:
cp /etc/rndc.key /etc/westos.key -p
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##此命令生成私鑰
vim /etc/westos.key
vim /etc/named.conf
在第43行加上 include "/etc/westos.key";
vim /etc/named.rfc1912.zones
systemctl restart named
scp Kwestos.+157+14602.* [email protected]:/mnt/ #將密鑰給IP爲200的客戶端
在server客戶端上
nsupdate -k Kwestos.+157+14602.private #進行數據更新