1. 程式人生 > >Linux 基礎 之 企業級域名解析服務 (快取記憶體DNS)

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成功