Linux網路中的DNS域名正向解析實操

Gengchenchen發表於2020-12-08

一、DNS系統

(一)、DNS概述

在日常生活中人們習慣使用域名訪問伺服器,但機器間互相只認IP地址,域名與IP地址之間是多對一的關係,一個Ip地址不一定只對應一個域名,且一個域名只可以對應一個Ip地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。

(二)、DNS的定義

DNS是”域名系統(Domain Name System)"的英文縮寫。它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便地訪問網際網路。DNS服務使用TCP和UDP的53埠,TCP的53埠用於連線DNS伺服器,UDP的53埠用於解析DNS
每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。

(三)、域名結構:

http://www.sina.com.cn./
http://主機名.二級域.頂級域根域/

DNS系統的分散式資料結構

在這裡插入圖片描述
樹狀結構最頂層稱為根域,用 “.” 表示,相應伺服器稱為根伺服器,整個域名空間解析權都歸根伺服器所有,但根伺服器無法承擔龐大的負載,採用“委派"機制,在根域下設定了一些頂級域,然後將不同頂級域解析權分別委派給相應的頂級域伺服器,如將com域的解析權委派給com域伺服器,以後但凡根伺服器收到以com結尾的域名解析請求,都會轉發給com域伺服器,同樣道理,為了減輕頂級域的壓力,又下設了若干二級域,二級域又下設三級域或主機等。

1、根域
位於域名空間最頂層,一般用一個 “.” 表示
2、頂級域
一般代表一種型別的組織機構或國家地區,
如:.net (網路供應商)、.com(工商企業)、.org(團體組織)、 .edu(教育機構)、.gov(政府部門)、.cn(中國國家域名)
3、二級域
用來標明頂級域內的一個特定的組織,國家頂級域下面的二級域名由國家網路部門統一管理,如 .cn 頂級域名下面設定的二級域名:.com .cn .net .cn .edu .cn
4、子域
二級域下所建立的各級域統稱為子域,各個組織或使用者可以自由申請註冊自己的域名
5、主機
主機位於域名空間最下層,就是一臺具體的計算機
如:www、mail 都是具體的計算機名字,可用www.sina.com.cn. 、mail.sina.com.cn. 來表示,這種表示方式稱為FQDN(完全合格域名),也是這臺主機在域名中的全名。

二、DNS域名解析方式:

1、正向解析:根據域名查詢對應的IP地址
2、反向解析:根據IP地址查詢對應的域名

三、DNS伺服器型別

(1)、主域名伺服器:負責維護一個區域的所有域名資訊,是特定的所有資訊的權威資訊源,資料可以修改。構建主域名伺服器時,需要自行建立所負責區域的地址資料檔案。
(2)、從域名伺服器:當主域名伺服器出現故障、關閉或負載過重時,從域名伺服器作為備份服務提供域名解析服務。從域名伺服器提供的解析結果不是由自己決定的,而是來自於主域名伺服器。構建從域名伺服器時,需要指定主域名伺服器的位置,以便伺服器能自動同步區域的地址資料庫。
(3)、快取域名伺服器:只提供域名解析結果的快取功能,目的在於提高查詢速度和效率,但沒有域名資料庫。它從某個遠端伺服器取得每次域名伺服器查詢的結果,並將它放在快取記憶體中,以後查詢相同的資訊時用它予以響應。快取域名伺服器不是權威性伺服器,因為提供的所有資訊都是間接資訊。構建快取域名伺服器時,必須設定根域或指定其他DNS伺服器作為解析來源。
(4)、轉發域名伺服器:負責所有非本地域名的本地查詢。轉發域名伺服器接到查詢請求後,在其快取中查詢,如找不到就將請求依次轉發到指定的域名伺服器,直到查詢到結果為止,否則返回無法對映的結果。

四、構建DNS域名正向解析伺服器步驟

(一)、安裝bind軟體包

 yum  install  -y  bind

(二)、配置正向解析

(1)、先檢視需要修改的配置檔案所在路徑

rpm  -qc  bind                 #查詢bind軟體配置檔案所在路徑
/etc/named.conf                #主配置檔案
/etc/named.rfc1912.zones       #區域配置檔案
/var/named/named.localhost     #區域資料配置檔案(模板檔案,不可直接在原檔案進行更改)

(2)、修改主配置檔案

vim  /etc/named.conf
options  {
    isten-on port 53 { 192.168.226.3; };    #監聽53埠, Ip地址(DNS伺服器的IP))使用提供服務的本地IP,也可用any表示所有
    listen-on-v6 port 53 {::1; };          #ipv6行如不使用可以註釋掉或者刪除
    directory  "/var/named";                #/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";  #記憶體統計檔案的位置
    allow-query { any; };    #允許使用本DNS解析服務的網段,也可用any,代表所有網段都可訪問
    .....
}  
zone "." IN {                #正向解析"."根區域
        type hint;           #型別為根區域
        file "named.ca";     #區域資料檔案為named.ca,記錄了13臺根域伺服器的域名和IP地址等資訊
};
include "/etc/named.rfc1912.zones";  #包含區域配置檔案裡的所有配置

(3)、修改區域配置檔案,新增正向區域配置

vim  /etc/named.rfc1912. zones      #在檔案裡有模版,可複製貼上後修改
zone  "gengcc.com"  IN  {           #正向解析"gengcc.com"區域
	type master;                   #型別為主區域
	file "gegncc.com.zone";        #指定區域資料檔案為gengcc.com.zone
	allow-update  { none; };
};

(4)、配置正向區域資料檔案

cd  /var/named/
cp  -p  named.localhost  gengcc.com.zone     #需要保留原始檔的許可權和屬主的屬性複製(-p)
vim /var/named/gengcc.com.zone
$TTL 1D                                     #設定快取解析結果的有效時間
@       IN  SOA   gengcc.com.   admin.gengcc.com.  (
                     0              ;  serial
                     1D             ;  refresh
                     1H             ;  retry
                     1W             ;  expire
                     3H   )         ;  minimum
      NS      gengcc.com.        #記錄當前區域的DNS伺服器的名稱(必不可少)
      А       192.168.226.3      #記錄主機IP地址(必不可少)
IN   MX   10      mail.gengcc.com.    #MX為郵件交換記錄,數字越大優先順序越低
www  IN   A       192.168.226.3      #記錄正向解析www.benet.com對應的IP
mail IN   A       192.168.226.4         #郵箱的正向解析地址
ftp  IN  CNAME    www               #CNAME使用別名, ftp是www的別名
*    IN  A        192.168.226.100     #泛域名解析, "*" 代表任意主機名
 
#"@"這裡是一個變數,當前DNS區域名
#SOA標記用於同步主從伺服器的區域資料,如更新序列號相同則不會更新
#"benet.com." 此為完全合格域名(FQDN) ,後面有個 "." 不能漏掉
#"admin.benet.com." 表示管理員郵箱,這裡的 "@" 是變數,所以用 "." 代替

(5)、啟動服務,關閉防火牆

systemctl  start  named
systemctl  stop  firewalld
setenforce  0
#如果服務啟動失敗,可以檢視日誌檔案來排查錯誤
tail   -f   /var/log/messages    
#如果服務啟動卡住,可以執行下面命令解決
rndc-confgen   -r    /dev/urandom  -a

補充:永久關閉防火牆

vim  /etc/sysconfig/selinux
......
SELINUX=disabled   (將改行=後面改成disabled)

(6)、在客戶端的域名解析配置檔案中新增DNS伺服器地址

vim   /etc/resolv.conf     #修改完後立即生效
nameserver   192.168.80.10

或

vim   /etc/sysconfig/network-scripts/ifcfg-ens33        #修改完後需要重啟網路卡
DNS1=192.168.80.10
systemctl   restart   network

(7)、測試DNS解析

host    www.benet.com
nslookup   www.benet.com    
#用來通過域名獲取IP 地址

五、實驗操作示例:

首先先關閉防火牆
v

安裝 bind 軟體包(注意如果安裝不了bind,檢視一下是不是自己的本地yum源倉庫沒有配置好)
在這裡插入圖片描述

接著修改主配置檔案 vim /etc/named.conf,更改DNS伺服器地址;註釋掉ipv6 行;設定允許所有網段可以訪問該伺服器
在這裡插入圖片描述

接著修改區域配置檔案,新增正向區域配置,zone “gengcc.com” IN 是用來正向解析"gengcc.com"區域;type master; 指型別為主區域,不用更改;file “gengcc.com. zone”; 指定區域資料檔案為gengcc.com. zone

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

接著配置正向區域資料檔案,該檔案存在/var/named 目錄下,並且注意將該檔案要進行復制後再更改,以防萬一,而且複製的時候要保留原屬組和屬組(即使用-p選項)。
在這裡插入圖片描述

IN SOA [@] gengcc.com. admin.gengcc.com. ( 此處原本是在gengcc.com.前面有個@符號的,一般設定正向解析的時候@可以不用去掉的,這裡我們將@去掉了,寫上了完全域名和管理員郵箱
NS gengcc.com. 是記錄當前區域的DNS伺服器的名稱(必不可少)
А 192.168.226.3 是記錄主機IP地址(必不可少)
www IN A 192.168.226.3 是記錄正向解析www.gengcc.com. 對應的IP

mail IN A 192.168.226.14 是郵箱的正向解析地址
ftp IN CNAME www CNAME使用別名, ftp是www的別名

* IN A 192.168.226.100 泛域名解析, “*” 代表任意主機名
在這裡插入圖片描述

啟動named 服務
在這裡插入圖片描述

在客戶端的域名解析配置檔案中新增需要解析的DNS伺服器的地址
在這裡插入圖片描述
在這裡插入圖片描述

然後就可以解析到自己需要解析的DNS伺服器的IP 地址了
在這裡插入圖片描述

同樣的我們也可以在windows 中解析伺服器的 IP

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

相關文章