Linux中DNS服務器的部署

1.關於dns的名詞解釋

  • dns:domain name service(域名解析服務)
  • 關於客戶端:
  • /etc/resolv.conf dns指向文件
  • host www.baidu.com 地址解析命令
  • dig www.baidu.com 地址詳細解析信息命令
  • A記錄 :ip地址叫做域名的Address記錄
  • SOA: 授權起始主機
  • dns頂級: . 13
  • 次級: .com .net .edu .org ....
  • baidu.com(次級以下)
  • 關於服務端
  • bind 安裝包
  • named 服務名稱
  • /etc/named.conf 主配置文件
  • /var/named 數據目錄
  • 端口 :53
  • 關於報錯信息:
  1. no servers could be reached 服務無法訪問(服務開啓?火牆?網絡?端口?)
  2. 服務啓動失敗 :配置文件寫錯 journalctl -xe查詢錯誤
  3. dig 查詢狀態
    在這裏插入圖片描述
NOERROR ##表示查詢成功
REFUSED ##服務拒絕訪問
SERVFAIL ##查詢記錄失敗,(dns服務器無法到達上級,拒絕緩存)
NXDOMAIN ##此域名A記錄在dns中不存在(無法查詢到此域名,此域名不存在)

2.dns服務的安裝與啓用

  • 安裝
  • dnf install bind.x86_64 -y
  • 啓用
systemctl enable --now named##開啓服務
firewall-cmd --permanent --add-service=dns ##在火牆添加dns服務
firewall-cmd --reload##重啓火牆

在這裏插入圖片描述

  • 本節實驗內容爲兩臺主機:

  • dns_node1:192.168.1.20

  • dns_node2:192.168.1.30

  • 將火牆設置好之後vim /etc/resolv.conf,如下圖所示編輯,將node2主機的dns設置爲192.168.1.20,執行dig www.baidu.com
    在這裏插入圖片描述

  • 執行結果仍爲服務不可到達(排除了網絡,火牆以及dns部署的原因)
    在這裏插入圖片描述

  • 查詢端口,發現爲node2服務的node1的dns的53端口沒有開啓
    在這裏插入圖片描述

  • 解決方法: vim /etc/named.conf

11 listen-on port 53 { any; }; ##在本地所有網絡接口上開啓53端口
19 allow-query { any; }; ##允許查詢A記錄的客戶端列表
34 dnssec-validation no; ##禁用dns檢測使dns能夠緩存外部信息到本機

在這裏插入圖片描述

  • systemctl restart named (嚴格注意每行後面都有分號,若是沒有寫分號,服務就無法啓動)
  • 如下圖所示,查詢成功,服務啓用成功了
    在這裏插入圖片描述

3.高速緩存dns

  • vim /etc/named.conf
20 forwarders { 114.114.114.114; };

在這裏插入圖片描述

4.dns的正向解析

  • vim /etc/named.conf查看目錄
    在這裏插入圖片描述
  • vim /etc/named.rfc1912.zones
zone "myr.com" IN { ##維護的域名
 type master; ##當前服務器位主dns
 file "myr.com.zone"; ##域名A記錄文件
 allow-update { none; }; ##允許更新主機列表
};

在這裏插入圖片描述

  • cd /var/named/
  • cp -p named.localhost myr.com.zone
  • vim myr.com.zone
www CNAME myr.a.myr.com. ##規範域名
myr.a A 192.168.1.111 ##正向解析記錄
myr.a A 192.168.1.112
myr.com. MX 1 192.168.1.20. ##郵件解析記錄

在這裏插入圖片描述

  • systemctl restart named
  • dig www.myr.com 查詢正向解析
  • dig -t mx myr.com 郵件解析記錄查詢(需要在node2中安裝相關服務)
  • dnf install postfix -y
  • dnf install mailx-12.5-29.el8.x86_64 -y

5.dns的反向解析

  • vim /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.ptr";
allow-update { none; };
};

在這裏插入圖片描述

  • cd /var/named/
  • cp -p named.loopback 192.168.1.ptr
  • vim 192.168.1.ptr
    在這裏插入圖片描述
  • systemctl restart named
    測試:
  • dig -x 192.168.1.13
    在這裏插入圖片描述

6.dns的雙向解析

  • 實驗環境:客戶端3臺(服務端爲node1)
  • node1中:2個ip
  • 192.168.1.10(內網)
  • 172.25.254.10(公網)
  • ifconfig ens160:0 172.25.254.10 netmask 255.255.255.0l臨時設置兩個ip
  • node2中:
  • 192.168.1.20
  • 172.25.254.20
  • ifconfig ens160:0 172.25.254.20 netmask 255.255.255.0
  • node3
  • vim /etc/resolv.conf
nameserver 192.168.1.10(內網)
  • node2中:
  • vim /etc/resolv.conf
nameserver 172.25.254.10(公網)
  • 配置方式:
  • cd /var/named/
  • cp -p myr.com.zone myr.com.inter
  • vim myr.com.inter

在這裏插入圖片描述

  • cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
  • vim /etc/named.rfc1912.inters
zone "myr.com" IN {
type master;
file "myr.com.inter";
allow-update { none; };
};

在這裏插入圖片描述

  • vim /etc/named.conf
view localnet {
 match-clients { 192.168.1.0/24; };
 zone "." IN {
 type hint;
 file "named.ca";
 };
 include "/etc/named.rfc1912.zones";
 include "/etc/named.root.key";
};
view internet {
 match-clients { any; };
 zone "." IN {
 type hint;
 file "named.ca";
 };
 include "/etc/named.rfc1912.inters";
 include "/etc/named.root.key";
};
 

在這裏插入圖片描述

  • systemctl restart named
  • 測試:分別在2個網段的主機中作同樣域名的地址解析得到的A記錄不同
    在這裏插入圖片描述

7.dns集羣

  • node1爲主dns,node2爲輔助dns
  • node1中(192.168.1.10):
  • 主dns:
  • vim /etc/named.rfc1912.zone
zone "myr.com" IN {
 type master;
 file "myr.com.zone";
 allow-update { none; };
 also-notify { 192.168.1.20; }; ##主動通知的輔助dns主機
};

在這裏插入圖片描述

  • vim /var/named/myr.com.zone

  • 改變內容
    在這裏插入圖片描述

  • node2(192.168.1.20)中

  • dnf install bind -y安裝服務

  • firewall-cmd --add-service=dns設置火牆

  • vim /etc/named.conf允許端口

listen-on port 53 { any; };
allow-query { any; };
dnssec-validation no;
  • vim /etc/named.rfc1912.zones
zone "myr.com" IN {
 type slave; ##dns狀態位輔助dns
 masters { 192.168.1.10; }; ##主dns
 file "slaves/myr.com.zone"; ##同步數據文件
};

在這裏插入圖片描述
在這裏插入圖片描述

  • systemctl restart named
  • 如果不對node1,做改變,只做node2的那步,node3仍舊可以通過node2,digwww.myr.com,但是當你在node1中改變內容時,node3不會得到更新,此時,用node2和node3dig www.myr.com的內容就會不同
    在這裏插入圖片描述
  • 測試:
  • node3中設置dns爲192.168.1.20,用node2和node3dig www.myr.com,得到的結果相同

8.dns的更新

dns基於ip地址的更新:

  • 在dns中設定:
  • vim /etc/named.rfc1912.zones
zone "myr.com" IN {
 type master;
 file "myr.com.zone";
 allow-update { 192.168.1.15; }; ##允許指定客戶端更新myr域
 also-notify { 192.168.1.20; };
};

在這裏插入圖片描述

  • 測試:
  • 在192.168.1.15:
nsupdate
> server 192.168.0.20
> update add hello.myr.com 86400 A 192.168.1.111 ##新增A記錄
> send 
> update delete hello.myr.com ##刪除A記錄
> send 
  • 然後在node2(192.168.1.20)中dig hello.myr.com,顯示正確

dns基於key的更新:

  • 通過vim /etc/rndc.key可以查看指定的加密方式
    在這裏插入圖片描述
  • dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST myr
  • -a HMAC-SHA256指定加密方式
  • -b 128代表加密長度
  • -n Host指定名稱類型
  • 這樣就建立了一個名稱爲myr的HOST類型的key文件
  • cp -p /etc/rndc.key /etc/myr.key
    在這裏插入圖片描述
  • vim /etc/myr.key
key "myr" {
algorithm hmac-sha256;
secret "FLJKQxlebCudWNThhQtaKg=="; ##通過查看文件得知,上圖中有解釋
};

在這裏插入圖片描述

  • vim /etc/named.conf
43 include "/etc/myr.key";

在這裏插入圖片描述

  • vim /etc/named.rfc1912.zones
zone "myr.com" IN {
 type master;
 file "myr.com.zone";
 allow-update { key myr; };
 also-notify { 192.168.1.20; };
};

在這裏插入圖片描述

  • systemctl restart named

  • 在node3(192.168.1.15)中:

  • 前提準備:將在node1中生成的密鑰文件複製到node3中:

  • scp /var/named/Kmyr.+163+15250.key Kmyr.+163+15250.private [email protected]:/mnt
    在這裏插入圖片描述

nsupdate -k /mnt/Kmyr.+163+15250.private ##此處的文件是上文中生成的私鑰文件
> server 192.168.1.10
> update add hello.myr.com 86400 A 192.168.1.112
> send 
> quit

在這裏插入圖片描述

  • 然後在node2(192.168.1.20)中dig hello.myr.com,顯示正確
  • 注意:需要保證兩臺主機的時間同步,否則dns更新失敗(時間握手)。

9.ddns(dhcp+dns)

  • 搭建dncp
  • dnf install dhcp-server.x86_64 -y安裝
  • cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf將內容複製過去,對文件進行重寫
  • vim /etc/dhcpd/dhcpd.conf配置文件(37行以後的全部刪掉)
    在這裏插入圖片描述
  • 在node1中:
    在這裏插入圖片描述
key myr {
 algorithm hmac-sha256;
 secret "FLJKQxlebCudWNThhQtaKg==";
 };
zone myr.com. {
primary 127.0.0.1;
key myr;
}

在這裏插入圖片描述
dns的key更新

  • 測試:
  1. 設定測試主機網絡工作方式爲dhcp
  2. 設定主機名稱test.myr.com
  3. 重啓網絡
  4. dig test.myr.com可以得到正確解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章