Linux 基礎 之 企業級域名解析服務 (快取記憶體DNS)
一、DNS簡介
1. 定義:
DNS(Domain Name System,域名系統),全球資訊網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議執行在UDP協議之上,使用埠號53。在RFC文件中RFC 2181對DNS有規範說明,RFC 2136對DNS的動態更新進行說明,RFC 2308對DNS查詢的反向快取進行說明。
2. DNS的功能
每個IP地址都可以有一個主機名,主機名由一個或多個字串組成,字串之間用小數點隔開。有了主機名,就不要死記硬背每臺IP裝置的IP地址,只要記住相對直觀有意義的主機名就行了。這就是DNS協議的功能。
3. DNS重要性
1、技術角度看
DNS解析是網際網路絕大多數應用的實際定址方式; 域名技術的再發展、以及基於域名技術的多種應用,豐富了網際網路應用和協議。
2、資源角度看
域名是網際網路上的身份標識,是不可重複的唯一標識資源; 網際網路的全球化使得域名成為標識一國主權的國家戰略資源。
二、快取記憶體DNS的搭建
本實驗在desktop中進行
1.首先配置真機
systemctl start firewalld 開啟火牆
systemctl status firewalld 檢視火牆狀態
firewall-cmd --add-masquerade 開啟
firewall-cmd --list-all 檢視
連上網路ping www.baidu.com 成功
編輯vim /etc/resolv.conf 將檔案中的域名解析伺服器全部遮蔽,將虛擬機器172.25.254.103作為域名伺服器新增進去
在desktop主機內
2.編輯vim /etc/sysconfig/network-scripts/ifcfg-eth0配置網路
寫入內容
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.254.103
NETMASK=255.255.255.0
GATEWAY=172.25.254.3
DNS1=114.114.114.114
systemctl restart network 重新啟動網路
route -n 檢視閘道器
虛擬機器 ping 114.114.114.114 成功
3. 配置yum源
首先新增光碟機,加入7.0映象,將映象掛載到/mnt
編輯cd /etc/yum.repos.d
vim yum.repo
寫入
[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0
4.關閉虛擬機器火牆
實驗1.:建立一個DNS伺服器,快取網際網路下解析出來的域名資訊
第一步:在虛擬機器desktop上安裝bind.x86_64軟體,開啟named服務
yum install bind.x86_64 -y
systemctl start named
編輯vim /etc/named.conf檔案
systemctl restart named 重新啟動服務
測試:
在desktop中測試 dig www.baidu.com
真機執行dig www.baidu.com
實驗2:DNS服務的正向域名解析
編輯vim /etc/named.conf檔案
編輯vim /etc/named.rfc1912.zones檔案
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
};
進入cd /var/named/目錄
cp -p named.localhost westos.com.zone
編輯vim westos.com.zone檔案
檢視cat westos.com.zone
注意:
TTL 1D 資料可以被客戶端快取一天
@ 所維護的域的域名
serial 重新整理時間
expire 過期時間
minimum 在最小資料訪問時間
systemctl restart named 重新啟動服務
測試:dig www.westos.com
實驗3 :DNS的郵件解析(正向解析)
編輯vim /etc/resolv.conf檔案
寫入
# Generated by NetworkManager
nameserver 172.25.254.103
進入cd /var/named/
編輯vim westos.com.zone檔案
重新啟動服務 systemctl restart named
cat /var/named/westos.com.zone 檢視
傳送郵件並測試:
mail [email protected]
Subject: test
hahahahaha
.
EOT
dig -t mx westos.com
DNS的反向解析
編輯vim /etc/resolv.conf檔案
寫入nameserver 172.25.254.103
編輯 vim /etc/named.rfc1912.zones檔案
在檔案最後寫入
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
進入cd /var/named/目錄
cp -p named.loopback 172.25.254.ptr
編輯vim 172.25.254.ptr檔案
cat /var/named/172.25.254.ptr 檢視
systemctl restart named 重新啟動服務
測試:
dig -x 172.25.254.111
DNS的多項解析
1.開啟兩個虛擬機器 desktop和server配置網路
配置desktop 給它新增雙ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR0=172.25.254.103
NETMASK0=255.255.255.0
IPADDR1=1.1.1.103
NETMASK1=255.255.255.0
重新啟動網路服務systemctl restart network
檢視ip執行 ip addr show eth0
配置server
編輯 vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=1.1.1.203
NETMASK=255.255.255.0
重新啟動網路服務systemctl restart network
編輯 vim /etc/resolv.conf檔案
寫入 nameserver 1.1.1.103
ping 1.1.1.103 成功
測試一下 :dig www.westos.com 解析到 172.25.254 網段
進入cd /var/named/目錄
cp -p westos.com.zone westos.com.inter
編輯vim westos.com.inter檔案
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
2.編輯vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
改 file "westos.com.inter";
allow-update { none; };
};
刪除掉之前的反向解析
3.編輯/etc/named.conf檔案,使不同的網段指向不同的/etc/named.rfc1912.zones/inter的指向
編輯vim /etc/named.conf檔案
註釋掉之前的重新寫入
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
寫入新的
view localnet {
match-clients { 1.1.1.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
};
view internet {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
include "/etc/named.root.key";
systemctl restart named 重新啟動服務
4.在真機中切換超級使用者
編輯vim /etc/resolv.conf檔案
寫入 nameserver 172.25.254.103
5.分別在真機和server上進行測試dig www.westos.com
真機測試dig www.westos.com
server 中測
DNS的叢集(輔助 DNS)
兩臺主機進行desktop為主DNS,server為輔助DNS
首先在server中
編輯vim /etc/sysconfig/network-scripts/ifcfg-eth0檔案配置網路
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.203
NETMASK=255.255.255.0
systemctl restart network重新啟動服務
mount /dev/sr0 /mnt 掛載映象
df 檢視
進入cd /etc/yum.repos.d/目錄
編輯vim yum.repo
[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0
yum install bind -y 安裝
systemctl stop firewalld 關閉火牆
systemctl start named 啟動服務
編輯vim /etc/resolv.conf檔案
寫入nameserver 172.25.254.203
編輯vim /etc/named.conf
編輯vim /etc/named.rfc1912.zones檔案
zone "westos.com" IN {
type slave;
masters { 172.25.254.103; };
file "slaves/westos.com.zone";
allow-update { none; };
};
systemctl restart named 重新啟動服務
ls -l /var/named/ 檢視
進入cd /var/named/slaves/目錄
dig www.westos.com 測試
配置desktop
編輯 vim /etc/resolv.conf檔案
寫入nameserver 172.25.254.103
編輯 vim /etc/named.conf 檔案刪除掉上次實驗寫入的,清空環境
編輯 vim /etc/named.rfc1912.zones檔案
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新啟動服務
進入cd /var/named/目錄
編輯vim westos.com.zone檔案 當改變域名解析不改變serial值時看是否會同步
systemctl restart named 重新啟動服務
在輔助DNS測試看是否同步(server)
dig www.westos.com 沒有同步
編輯vim westos.com.zone檔案 當改變域名解析改變serial值時看是否會同步
systemctl restart named 重新啟動服務
再次在輔助DNS測試看是否同步(server)
dig www.westos.com 同步成功
DNS的遠端更新
首先在主DNS中(desktop)進行配置
mkdir /westos 新建目錄
進入cd /var/named/目錄
cp -p westos.com.zone /westos/ 拷貝westos.com.zone到/westos中
第一步:設定DNS服務端,允許客戶端主機修改westos.com.zone
修改/etc/named.rfc1912.zones
編輯vim /etc/named.rfc1912.zones檔案
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 172.25.254.203; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新啟動服務
第二步,更改/var/named許可權,否則會出現serverfull的錯誤
chmod 770 /var/named/ 修改許可權
第三步,當執行getenforce命令 顯示 Disabled,不用處理。
當執行getenforce命令 顯示 Enforcing,
需要編輯 getsebool -a | grep named
編輯 setsebool - P named_write_master_zones on
第四步,在server中進行遠端更新
nsupdate
> server 172.25.254.103
> update add test.westos.com 86400 A 172.25.254.90
> send
> quit
更新成功並退出
在desktop中執行
systemctl restart named 重新啟動服務
編輯vim westos.com.zone檔案檢視是否更新
在desktop中測試(域名新增是否成功)
dig test.westos.com 遠端更新成功
DNS金鑰方式更新
首先在主DNS(desktop)中進行配置
首先實驗環境得配置好
進入cd /var/named/目錄
[[email protected] named]# rm -fr westos.com.zone westos.com.zone.jnl
[[email protected] named]# cp -p /westos/westos.com.zone .
1.生成key
[[email protected] westos]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey 生成金鑰
檢視
2.編輯加密檔案
[[email protected] westos]# cp -p /etc/rndc.key /etc/westos.key
編輯vim /etc/westos.key 檔案
key "westoskey" { 金鑰名稱
algorithm hmac-md5;
secret "金鑰";
};
3.編輯named 配置
編輯vim /etc/named.conf檔案
include "/etc/westos.key";
編輯 vim /etc/named.rfc1912.zones檔案
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westoskey; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新啟動服務
4.給客戶端分發金鑰
[[email protected] westos]# scp Kwestoskey.+157+49253.* [email protected]:/westos/
在server主機中
進入 cd /westos/目錄檢視
測試 遠端更新 成功並退出
[[email protected] westos]# nsupdate -k Kwestoskey.+157+49253.private
> server 172.25.254.103
> update delete test.westos.com
> send
> quit
進入主DNS (desktop)中
systemctl restart named 重新啟動網路
遠端更新成功,test 被刪除
動態域名解析(花生殼)dns+dhcp ==ddns
該實驗在上個實驗基礎上進行
1.首先配置客戶端(server)
設定客戶端主機名稱為game.westos.com
設定主機的網路為dhcp
2.配置dhcp服務在desktop主機配置
option domain-name "westos.com" 域名
option domain-name-server 172.25.254.103 ip
systemctl restart dhcpd 重新啟動服務
systemctl status dhcpd 檢視服務狀態
在server主機中重新啟動網路測試
systemctl restart network 重新啟動網路
3.配置dns的主配置檔案,配置dns的的key更新
配置dhcp.conf檔案
dns的更新方式設定
dns的key更新
dns的域更新
測試:在客戶端(server)dig game.westos.com成功