DNS服務相關知識
DNS服務概述
DNS是一個分布式名稱管理與映射系統,它的主要工作就是IP地址與域名之間的相互翻譯及其對域名地址映射數據庫的管理。DNS采用樹狀結構對域名進行管理。域名的形成往往如下所示:
www.baidu.com |
DNS服務器分類
DNS服務器主要分成一下幾類:
1、主DNS服務器
主DNS服務器為其所負責的區域提供DNS服務。
2、輔助DNS服務器
輔助DNS服務器分擔主DNS服務器查詢工作。
3、高速緩存DNS服務器
這種高速緩存DNS服務器使用緩存的DNS信息進行域名轉換,因而速度比較快。
輔助DNS服務器和高速緩存DNS服務器可以在一定程度上減輕主DNS服務器的負荷,並且在主DNS服務器出現故障時,可以接替主服務器的工作。
DNS查詢模式與域名解析
DNS查詢模式主要分成遞歸查詢和迭代查詢兩種。
1、遞歸查詢
當DNS客戶機向服務器發出DNS解析請求時,假設該DNS服務器在緩存或者區域數據庫文件中無法解析該請求,那么如果由它向另一個DNS服務器發送該請求,則這種插敘模式被稱為遞歸查詢。
2、迭代查詢
當DNS客戶機向服務器發出DNS解析請求時,假設該DNS服務器在緩存或者區域數據庫文件中無法解析該請求,那么如果由客戶機向另一個DNS服務器發送該請求,則這種查詢模式被稱為迭代查詢。
兩種查詢模式的區別主要在於當前DNS服務器無法解析域名時,又睡向另一台服務器發起新的解析請求。如果由當前服務器向另一台服務器發起新的解析請求,那么該查詢請求稱為遞歸查詢。反之,如果由客戶機向領一台服務器發起新的請求,則稱為迭代查詢。
另外,域名解析過程又分為正向解析過程和反向解析過程。正向解析過程指的是由域名向IP地址的解析過程。反向解析過程指的是由IP地址向域名解析的過程
資源記錄
在DNS服務器的域名數據庫文件中包含着許多的DNS域資源信息的記錄被稱為資源記錄。資源記錄主要包含以下幾種類型:
1、SOA資源記錄
SOA(Start of AUthority,起始授權)資源記錄用於定義整個區域的全局設置,一個區域文件只允許存在一個SOA記錄。
2、NS資源記錄
NS(Name Server,名稱服務器)資源記錄用來指定某一個區域的權威DNS服務器,每個區域至少有一個NS記錄。
3、A資源記錄
A(Address,地址)資源記錄用於FQDN(Fully Qualified Domain Name,全稱域名)映射為IP地址。
4、PIR資源記錄
PTR(Pointer,指針)資源記錄用於將IP地址映射為FQDN。
5、CNAME資源記錄
CNAME(Canonical Name,別名)資源記錄用於為FQDN起別名。
6、MX資源記錄
MX(Mail Exchange,郵件交換)資源記錄用於為郵件服務器提供DNS解析。
hosts文件
當沒有DNS服務器時,hosts文件可以用來處理當前主機的域名解析請求。hosts文件由一系列的域名-IP地址對組成。將常用的域名-IP地址對加入hosts 文件可以加快域名解析的速度。linux系統中,hosts文件位於/etc/ 目錄下 ;windows系統中,hosts文件位於 C:\Windows\system32/drivers\etc 目錄下。
實驗環境:
物理機操作系統:windows 10
VMware版本:VMware Workstation16
鏡像版本:CentOS-7-x86_64-DVD-1611
實驗目的:
1、了解DNS服務相關知識
2、掌握DNS服務的安裝
3、掌握DNS服務的配置
4、了解DNS服務常見故障排除方法
實驗基本配置命令: 啟動、停止、重啟及自啟DNS服務
1、查詢DNS服務狀態
查詢DNS服務狀態,可以使用以下命令:
[root@Dai ~]# systemctl status named |
Active: inactive (dead) //未運行
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: inactive (dead) #未運行
Active: active (running) //運行中
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2021-05-11 07:25:10 CST; 5s ago #運行中
2、啟動DNS服務
安裝完畢后,可以通過以下命令啟動DNS服務:
[root@Dai ~]# systemctl start named //啟動named守護服務 |
3、停止DNS服務
啟動后,可以通過以下命令停止DNS服務:
[root@Dai ~]# systemctl stop named //停止named守護進程 |
4、重啟DNS服務
如果需要重啟DNS服務,可以使用如下命令:
[root@Dai ~]# systemctl restart named //重啟named守護進程 |
5、重新加載DNS服務配置
如果需要重新加載DNS服務配置,可以使用如下命令:
[root@Dai ~]# systemctl reload named |
6、查詢DNS版本
如果要查詢DHCP是否安裝,那么可以用如下命令:
[root@localhost~]#rpm -qa|grep bind rpm 軟件包的管理工具 -q 查看 -qa查看所有 |查看類似結果 grep :正則表達式匹配 |
[root@Dai ~]# rpm -qa|grep bind
bind-license-9.11.4-26.P2.el7_9.5.noarch
rpcbind-0.2.0-38.el7.x86_64
bind-libs-9.11.4-26.P2.el7_9.5.x86_64
bind-utils-9.11.4-26.P2.el7_9.5.x86_64
keybinder3-0.3.0-1.el7.x86_64
bind-9.11.4-26.P2.el7_9.5.x86_64
bind-export-libs-9.11.4-26.P2.el7_9.5.x86_64
bind-libs-lite-9.11.4-26.P2.el7_9.5.x86_64
0x00:實驗開始
拍攝快照
開始之前建議拍攝快照,這樣即使虛擬機被玩壞了或者出現無法逆轉的操作,可以還原到原始狀態。
1、虛擬機→快照→拍攝快照 2、管理快照 "CTRL+M" 3、點擊“拍攝快照"后,建議不要做任何操作,等待虛擬機左下角 “正在保存”完成后,即可 |
0x01 CentOS7 連接網絡
1、先通過虛擬機的NAT模式或者橋接模式 ,連接網絡安裝DHCP服務
虛擬機→設置→網絡適配器→NAT模式 |
2、正常來說現在應該可以ping通 外網了。
3、當然,也有很多不正常的情況,出現ping不同的情況。這個時候還原 “虛擬網絡編輯器”,也許就O了。
編輯→設置→虛擬網絡編輯器→還原默認設置 注:目前了解到windows 10,進入“虛擬網絡編輯器”后,需要點擊右下角“更改設置”,才能修改網絡配置 |
0x02 安裝DNS服務
1、yum方法
使用yum安裝DNS服務可以使用命令:
[root@locahost~]#yum install bind -y //安裝DHCP服務 |
如果成功安裝,會有如下提示:
已安裝:
bind.x86_64 32:9.11.4-26.P2.el7_9.5
完畢!
2、圖形化方法
1、應用程序→ 系統工具→軟件 2、在搜索框中 搜索“bind” 3、勾選“The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server”→應用更改 |
0x03 搭建DNS服務器
案例描述
授權DNS服務器管理JQE.com區域,並把該區域的文件命名為JQE.com.zone。DNS服務器是192.168.3.5,Mail服務器是 192.168.3.6,www 服務器是 192.168.3.7.
本例需要2台CentOS7 虛擬機,一台作為服務器,一台作為客戶機
實訓開始:
1、修改“虛擬網絡編輯器中”
將Vmnet1 類型 修改為 自定義模式
編輯→虛擬網絡編輯器→“VMnet2”→ □ 將主機虛擬適配器連接到此網絡 □使用本地DHCP服務將IP地址分配給虛擬器→ 應用 |
如圖所示:
2、修改網絡連接
將 網絡適配器 自定義 VMnet1
虛擬機→設置→網絡適配器→自定義→Vmnet1→確定 |
3、配置DNS服務器網卡
地址(A) 地址:192.168.3.5 網絡掩碼:255.255.255.0 網關:192.168.3.5 DNS 服務器:192.168.3.5 |
4、修改DNS主配置文件,增加正向解析區域和反向解析區域
[root@Dai ~]# vim /etc/named.conf
listen-on port 53 { any; }; //“127.0.0.1” 改成 “any” allow-query { any; }; //“localhost” 改為 “any” dnssec-enable no; //“yes” 改為 “no” dnssec-validation no; //“yes” 改為 “no” |
尾部添加一下內容 zone "JQE.com" { type master; file "JQE.com.zone"; }; zone "3.168.192.in-addr.arpa" { type master; file "3.168.192.in-addr.arpa.zone"; }; |
options {
listen-on port 53 { any; }; //“127.0.0.1” 改成 “any”
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; //“localhost” 改為 “any”
recursion yes;
dnssec-enable no; //“yes” 改為 “no”
dnssec-validation no; //“yes” 改為 “no”
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "JQE.com" { //增加正向解析區域“JQE.com”
type master; //類型為 “master”
file "JQE.com.zone"; //區域解析文件為 “/var/named/JQE.com.zone”
};
zone "3.168.192.in-addr.arpa" { //增加反向解析區域 “3.168.192.in-addr.arpa”
type master; //類型為“master”
file "3.168.192.in-addr.arpa.zone"; //區域解析文件為 “/var/named/3.168.192.in-addr.arpa.zone”
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
5、添加正向區域
復制樣例文件 並修改 文件名為 “JQE.com.zone”
[root@Dai ~]# cp -p /var/named/named.loopback /var/named/JQE.com.zone |
編寫 文件
[root@Dai ~]# vim /var/named/JQE.com.zone |
修改內容如下:
$TTL 1D
@ IN SOA JQE.com.root.JQE.com (
20210511
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.JQE.com.
dns IN A 192.168.3.5
mail IN A 192.168.3.6
www IN A 192.168.3.7
@ IN MX 5 mail.JQE.com.
MX優先級數字越小,優先級越高。同一域名兩個MX服務器,低優先級的作為高優先級的備份
6、添加反向區域
復制樣例文件 並修改 文件名為 “JQE.com.zone”
[root@Dai ~]# cp -p /var/named/named.empty /var/named/3.168.192.in-addr.arpa.zone |
編寫 文件
[root@Dai ~]# vim /var/named/3.168.192.in-addr.arpa.zone |
$TTL 3H
@ IN SOA 3.168.192.in-addr.arpa. root.JQE.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.JQE.com.
@ IN MX 5 mail.JQE.com.
5 IN PTR dns.JQE.com.
6 IN PTR mail.JQE.com.
7 IN PTR www.JQE.com.
在區域文件中,@代表區域。因此,郵件地址root.JQE.com不能寫成 root@JQE.com。
7、修改相應文件所屬組為 named
[root@Dai ~]# chgrp named /etc/named.conf [root@Dai ~]# chgrp named /var/named/JQE.com.zone [root@Dai ~]# chgrp named /var/named/3.168.192.in-addr.arpa.zone |
named 守護進程的默認屬組是named,為了讓進程能正常讀取文件,因此需要修改文件的屬組
8、開啟DNS服務
[root@Dai ~]# systemctl start named |
9、關閉防火牆
[root@Dai ~]# systemctl stop firewalld.service |
檢驗配置結果:
步驟一:准備另一台 linux 虛擬機,將網絡連接 修改為 “VMnet1”
步驟二:修改IP地址 ,一定要有 DNS服務器在同一個網段
步驟三:測試客戶機是否與 DNS服務器 相通
步驟四:測試DNS服務器是否正常工作
nslookup 是一個程序的名字
是查詢一台機器的IP地址和其對應的域名。它通常需要一台域名服務器來提供域名服務。如果用戶已經設置好域名服務器,就可以用這個命令查看不同主機的IP地址對應的域名。
[dai@localhost ~]$ nslookup //域名查詢
> server
Default server: 192.168.3.5
Address: 192.168.3.5#53
> 192.168.3.5
Server: 192.168.3.5
Address: 192.168.3.5#53
5.3.168.192.in-addr.arpa name = dns.JQE.com.
> mail.JQE.com
Server: 192.168.3.5
Address: 192.168.3.5#53
Name: mail.JQE.com
Address: 192.168.3.6
以上