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
基本步驟
- 確認本機網路地址、主機映射、默認DNS服務器地址,
- 建立主組態檔named.conf,
- 建立正、反向區域資料檔案,
- 啟動named服務或多載配置,
- 驗證主域名服務器,
實作方案
### 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.
構建從域名服務器
為了降低主域名服務器的壓力,可以構建從域名服務器,不僅可以負載分擔,還可以起到備份作用,
基本步驟
-
確認本機網路地址、主機映射、默認DNS服務器地址,
-
建立主組態檔named.conf,
-
啟動named服務,查看區域資料檔案是否下載成功,
-
驗證從域名服務器,
實作方案
# 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229347.html
標籤:其他
上一篇:Linux必備的命令
