DNS域名服務

DNS域名服務

DNS服務器分類:

緩存域名服務器

也稱爲高速緩存服務器
通過向其他域名服務器查詢獲得域名 -> IP 地址記錄
將域名查詢結果緩存到本地,提高重複查詢時的速度

主域名服務器

特定 DNS 區域的官方服務器,具有唯一性
負責維護該區域內所有域名 -> IP 地址的映射記錄

從域名服務器

也稱爲輔助域名服務器
其維護的域名 -> IP 地址記錄來源於主域名服務器

搭建DNS服務器

安裝軟件

[root@wpt ~]# yum install bind bind-chroot bind-utils -y

配置文件介紹

使用BIND軟件構建域名服務是,主要涉及兩種類型的配置文件:主配置文件和區域數據文件。其中,主配置文件用於設置named服務的全局選項、註冊區域及訪問控制等各種運行參數;區域數據文件用於保存 DNS 解析記錄的數據文件(正向或反向記錄)。
BIND配置文件保存在兩個位置:
/etc/named.conf BIND服務主配置文件
/var/named/ zone文件(域的dns信息)
如果安裝了bind-chroot,BIND會被封裝到一個僞根目錄內,原先的文件配置文件的路徑位置變爲:
/var/named/chroot/etc/named.conf ----BIND服務主配置文件
/var/named/chroot/var/named/ ---------zone文件

複製配置相關文件


[root@wpt ~]# cp -rv /usr/share/doc/bind-9.11.4/sample/etc/* /var/named/chroot/etc/
[root@wpt ~]#  cp -rv /usr/share/doc/bind-9.11.4/sample/var/* /var/named/chroot/var/




bind-chroot安裝好之後不會有預製的配置文件,但是在BIND的文檔文件夾內(/usr/share/doc/bind-9.11.4),BIND爲我們提供了配置文件模板,我們可以直接拷貝過來:
# 拷貝bind相關文件,準備 bind chroot 環境
cp -R /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/

# 將 /etc/named.conf 拷貝到 bind chroot目錄
# -p 複製後目標文件保留源文件的屬性 (包括所有者、所屬組、權限和時間)
cp -p /etc/named.conf /var/named/chroot/etc/named.conf



# 在 bind chroot 的目錄中創建相關文件
touch /var/named/chroot/var/named/data/cache_dump.db
touch /var/named/chroot/var/named/data/named_stats.txt
touch /var/named/chroot/var/named/data/named_mem_stats.txt
touch /var/named/chroot/var/named/data/named.run
mkdir /var/named/chroot/var/named/dynamic

# 修改文件屬主和屬組
chown -R named:named /var/named/chroot/var/named

# 啓動服務
systemctl start named-chroot

構建緩存域名服務器

案例介紹

​ 緩存域名服務器的IP地址爲192.168.142.128。

​ 局域網內的PC機將首選DNS服務器設爲192.168.142.128。

​ 緩存域名服務器能夠訪問Internet中的其他DNS服務器。

​ 負責處理局域網PC機的DNS解析請求,並緩存查詢結果。

基本步驟:

​ 1.建立named.conf主配置文件,通過根域或者轉發器機制指定解析源;

​ 2.確認建立named.ca根區域數據文件,若使用轉發器機制則無需此步驟;

​ 3.啓動named服務;

​ 4.驗證緩存域名服務器;

實現方案

### 1.修改主配置文件
[root@wpt ~]# vim /var/named/chroot/etc/named.conf

# 指定數據文件的存放目錄 默認無需修改
directory 	"/var/named";

# 指定服務器監聽的地址和端口
listen-on port 53       {
   
    127.0.0.1; 192.168.142.128; };

# 指定允許內網網段地址主機可以查詢授權區域數據
allow-query					{
   
    192.168.142.0/24; };

# 哪些主機查詢非授權區域記錄時,爲其做遞歸
allow-query-cache       {
   
    192.168.142.0/24; };

# 開啓遞歸 默認爲開啓
# 如果你要建立一個 授權域名服務器 服務器, 那麼不要開啓 recursion(遞歸) 功能。
# 如果你要建立一個 遞歸 DNS 服務器, 那麼需要開啓recursion 功能。
# 如果你的遞歸DNS服務器有公網IP地址, 你必須開啓訪問控制功能,
# 只有那些合法用戶纔可以發詢問. 如果不這麼做的話,那麼你的服
# 服務就會受到DNS 放大攻擊。實現BCP38將有效抵禦這類攻擊。
recursion yes;

########################使用轉發器#################################
# 如果不使用根區域,也可以選擇設置轉發器,即可以指向另外一個DNS服務器。
# forward 可以是first,也可以是only
# forward first設置優先使用forwarders DNS服務器做域名解析,如果查詢不到再使用本地DNS服務器做域名解析。
# forward only設置只使用forwarders DNS服務器做域名解析,如果查詢不到則返回DNS客戶端查詢失敗。

# 在 options{}; 中加入以下內容
# forward only;
# forwarders {8.8.8.8};
##################################################################

### 2. 配置根區域 這樣服務器不知道域名記錄時,就去找根DNS服務器 在區域文件目錄中必須存在"/var/named/named.ca"這個文件,裏面記錄了根DNS服務器的地址(共13個)
cat /var/named/chroot/var/named/named.ca | grep -v '^;'|grep -v '^$'

### 3.檢查配置文件語法
named-checkconf /var/named/chroot/etc/named.conf

### 180錯誤解決
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST "test_key"
[root@localhost ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST "test_key"
Ktest_key.+157+09104
[root@localhost ~]# cat Ktest_key.+157+09104.key
test_key. IN KEY 512 3 157 XkByzMnhtuSq4IItAzKb3w==
## 複製XkByzMnhtuSq4IItAzKb3w== 然後修改文件key 大概在180行左右

# 4 重啓服務
systemctl restart named-chroot

##	測試前把雙方的防火牆都關掉,或者在服務器端配置dns服務
[root@wpt ~]# firewall-cmd --add-service=dns
##	測試時把客戶端的dns地址解析改爲服務端的,文件在/etc/resolv.conf下 


###############################################################
##################客戶端驗證是否可以解析#########################
###############################################################
# 5 安裝客戶端命令行工具
yum install bind-utils

# 6 配置首選DNS爲192.168.215.3
cp /etc/resolv.conf /etc/resolv.conf.bak
vim /etc/resolv.conf
# 修改以下內容
nameserver 192.168.215.3

# 7 解析域名
# 第一臺客戶端解析會慢一些,第二臺客戶端解析相同域名會很快,因爲有了緩存。
nslookup www.baidu.com

#eg:
root@experiment2 ~# nslookup www.baidu.com
Server:		192.168.142.128
Address:	192.168.142.128#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 39.156.66.18
Name:	www.a.shifen.com
Address: 39.156.66.14

構建主域名服務器

案例介紹

  • 負責abc.com域的解析
  • 網站服務器 www.abc.com,IP地址爲192.168.142.10
  • 郵件服務器 mail.abc.com,IP地址爲192.168.142.20
  • 在線視頻服務器 video.abc.com,IP地址爲192.168.142.30
  • 主域名服務器 ns1.abc.com ,IP地址爲192.168.142.3
  • 從域名服務器 ns2.abc.com,IP地址爲192.168.142.5

基本步驟

  1. 確認本機網絡地址、主機映射、默認DNS服務器地址。
  2. 建立主配置文件named.conf。
  3. 建立正、反向區域數據文件。
  4. 啓動named服務或重載配置。
  5. 驗證主域名服務器。

實現方案

### 1 確認本機網絡地址、主機映射、DNS服務器地址
# 爲了提高域名解析效率,將兩個DNS服務器的地址映射直接寫入到/etc/hosts文件中
vim /etc/hosts
192.168.142.128	ns1.abc.com		ns1
192.168.142.6	ns2.abc.com		ns2

# 指定兩個DNS服務器的地址爲首選和備份DNS
vim /etc/resolv.conf

# 寫入以下內容
# search 定義域名的搜索列表
nameserver 192.168.142.128
nameserver 192.168.142.6

### 2 修改主配置文件
vim /var/named/chroot/etc/named.conf
# 在 zone "." IN 前面加入以下內容

# 一個zone關鍵字定義一個域區

# type類型有三種,它們分別是master,slave和hint它們的含義分別是:
# master:表示定義的是主域名服務器
# slave [sleɪv]:表示定義的是輔助域名服務器
# hint [hɪnt]暗示:表示是互聯網中根域名服務器

# file 指定具體存放DNS記錄的文件

# allow-transfer [trænsˈfɜːr , ˈtrænsfɜːr]指定哪些主機可以從服務器上接收區域傳輸,未指定將允許傳說到所有的主機
zone "abc.com" IN {
   
   
        type master;
        file "abc.com.zone";
        allow-transfer {
   
   192.168.142.6;};
};
# 定義一個IP爲192.168.215.*的反向域區 
zone "142.168.192.in-addr.arpa" {
   
   
        type master;
        file "192.168.142.arpa.zone";
        allow-transfer {
   
   192.168.142.6;};
};

### 3 建立正向區域數據文件
cp -p /var/named/named.localhost /var/named/chroot/var/named/abc.com.zone
vim /var/named/chroot/var/named/abc.com.zone
# 修改以下內容
# “@”表示當前的DNS區域名,相當於“abc.com.”	
# $TTL(Time To Live,生存時間)記錄
# SOA(Start Of Authority[əˈθɔːrəti],授權信息開始)記錄
# 分號“;” 開始的部分表示註釋信息
# NS 域名服務器(Name Server):記錄當前區域的DNS服務器的主機地址
# MX 郵件交換(Mail  Exchange[ɪksˈtʃeɪndʒ]):記錄當前區域的郵件服務器的主機地址,數字10表示優先級。
# A 地址(Address):記錄正向解析條目,只用在正向解析區域中
# CNAME 別名(Canonical[kəˈnɑːnɪkl] Name):記錄某一個正向解析條目的其他名稱
# PTR   指針(Point)記錄,只用在反向解析區域中
$TTL 1D
@       IN SOA  abc.com. admin.abc.com. (
                                2020112901      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      ns1.abc.com.
        IN      NS      ns2.abc.com.
                MX      10      mail.abc.com.
www     IN      A       192.168.142.10
mail    IN      A       192.168.142.20
video   IN      A       192.168.142.30
ns1     IN      A       192.168.142.128
ns2     IN      A       192.168.142.6
# 驗證區域數據文件
# named-checkzone zonename filename
named-checkzone abc.com /var/named/chroot/var/named/abc.com.zone

### 4 建立反向區域數據文件
cd /var/named/chroot/var/named/
cp -p abc.com.zone 192.168.142.arpa.zone
vim 192.168.142.arpa.zone
$TTL 1D
@       IN SOA  abc.com. admin.abc.com. (
                                2020112901      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      ns1.abc.com.
        IN      NS      ns2.abc.com.
10      IN      PTR www.abc.com.
20      IN      PTR mail.abc.com.
30      IN      PTR study.abc.com.
128     IN      PTR ns1.abc.com.
6       IN      PTR ns2.abc.com.
# 驗證區域數據文件
named-checkzone 215.168.192.in-addr.arpa 192.168.142.arpa.zone
# 5 重啓服務
systemctl restart named-chroot


###############################################################
##################客戶端驗證是否可以解析#########################
###############################################################
[root@wpt named]# nslookup
> www.abc.com
Server:		192.168.142.128
Address:	192.168.142.128#53

Name:	www.abc.com
Address: 192.168.142.10
> mail.abc.com
Server:		192.168.142.128
Address:	192.168.142.128#53

Name:	mail.abc.com
Address: 192.168.142.20
> 192.168.142.30
30.142.168.192.in-addr.arpa	name = study.abc.com.

構建從域名服務器

爲了降低主域名服務器的壓力,可以構建從域名服務器,不僅可以負載分擔,還可以起到備份作用。

基本步驟

  1. 確認本機網絡地址、主機映射、默認DNS服務器地址。

  2. 建立主配置文件named.conf。

  3. 啓動named服務,查看區域數據文件是否下載成功。

  4. 驗證從域名服務器。

實現方案

# 1 安裝
yum install bind bind-chroot bind-utils

# 2 啓動服務
systemctl start named-chroot.service

# 3 確認本機網絡地址、主機映射、DNS服務器地址
# 爲了提高域名解析效率,將兩個DNS服務器的地址映射直接寫入到/etc/hosts文件中
vim /etc/hosts
192.168.142.128	ns1.abc.com		ns1
192.168.142.6	ns2.abc.com		ns2

# 指定兩個DNS服務器的地址爲首選和備份DNS
vim /etc/resolv.conf

# 寫入以下內容
# search 定義域名的搜索列表
nameserver 192.168.142.128
nameserver 192.168.142.6

# 4 建立主配置文件
cd /var/named/chroot/
vim /etc/named.conf
# 修改如下配置
listen-on port 53	{
   
    127.0.0.1; 192.168.142.6; };
zone "abc.com" IN {
   
   
        type slave;
        file "slaves/abc.com.zone";
        masters {
   
   192.168.142.128;};
};
zone "142.168.192.in-addr.arpa" IN {
   
   
        type slave;
        file "slaves/192.168.142.arpa.zone";
        masters {
   
   192.168.142.128;};
};

# 5 關閉兩個機器的防火牆
systemctl stop firewalld

# 6 重啓服務
systemctl restart named-chroot

# 7 查看是否同步成功
ll /var/named/chroot/var/named/slaves/

-rw-r--r--. 1 named named 362 Nov 23 22:35 abc.com.zone
# 8 使用從域名服務器進行驗證
root@experiment2 /v/n/chroot# nslookup
> www.abc.com
Server:		192.168.142.6
Address:	192.168.142.6#53

Name:	www.abc.com
Address: 192.168.142.20

nslookup命令詳解

###   nslookup命令詳解
nslookup -qt=type domain [dns-server]

其中,type可以是以下這些類型:

A 地址記錄
AAAA 地址記錄
AFSDB Andrew文件系統數據庫服務器記錄
ATMA ATM地址記錄
CNAME 別名記錄
HINFO 硬件配置記錄,包括CPU、操作系統信息
ISDN 域名對應的ISDN號碼
MB 存放指定郵箱的服務器
MG 郵件組記錄
MINFO 郵件組和郵箱的信息記錄
MR 改名的郵箱記錄
MX 郵件服務器記錄
NS 名字服務器記錄
PTR 反向記錄
RP 負責人記錄
RT 路由穿透記錄
SRV TCP服務器信息記錄
TXT 域名對應的文本信息
X25 域名對應的X.25地址記錄
###例如
[root@localhost ~]# nslookup -qt=mx baidu.com 8.8.8.8
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章