Linux——DNS域名解析服務

l文峰發表於2020-11-05

DNS(域名解析服務)

DNS服務概述

作用:將域名解析成IP地址
原因:我們對數字敏感,記不住這個IP地址,所以才有域名解析服務。
解析方式:
正向解析:域名解析出IP
反向解析:IP解析出域名

1、DNS伺服器中儲存著大量的ip地址和域名對映記錄,它的記錄檔案也分為正向解析檔案和反向解析檔案。
2、正向解析檔案中儲存的記錄稱為A記錄,A記錄記錄著域名和IP的對映關係。
3、反向解析檔案中儲存的記錄稱為PTR指標,PTR記錄著IP和域名的對映關係。
4、DNS服務既屬於TCP協議也屬於UDP 協議,埠號為53號。

域名解析

. 根域
國家域:cn 中國,hk 香港, uk 英國, au 澳大利亞
頂級域(領域):com 商業用途 net 網路組織 edu 教育
二級域:個性化的名稱,每個域的二級域都不一樣
主機名(用途):www(網頁),mail(郵件)

解析過程

DNS的解析過程是分層解析的,一般客戶機將解析的請求傳送給它的DNS伺服器,DNS伺服器首先是從根DNS伺服器(.)開始傳送域名解析請求,根將COM域的IP反饋給客戶機的本地DNS伺服器,本地DNS伺服器訪問COM域伺服器,COM域伺服器反饋baidu域的ip給本地DNS伺服器,本地DNS伺服器訪問baidu域伺服器詢問www域伺服器的ip,baidu域伺服器給dns伺服器反饋www域的ip,這時本地DNS伺服器得到www.baidu.com的精確ip後,直接將這個對映記錄反饋給客戶機,客戶機直接訪問www.baidu.com伺服器,伺服器反饋相應的資料。
DNS快取:
其中一臺DNS伺服器可以上網區獲取DNS對映記錄,客戶機將DNS伺服器地址指向這臺可以上網的DNS伺服器,從而獲取到相應的對映記錄。
備註:開啟路由功能的這臺伺服器需要預裝DNS服務。

##DNS小實驗

--------DNS1---------
環境準備:關閉防火牆、關閉核心防護、設定DNS地址
systemctl stop firewalld
setenforce 0
vi /etc/resolv.conf
nameserver 192.168.1.100
nameserver 192.168.1.101
安裝DNS服務
rpm -ivh /mnt/Packages/bind-TAB補全)
修改主配置檔案
vi /etc/named.conf
options {
        listen-on port 53 { 192.168.1.100; };      #改成伺服器地址
        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";
        allow-query     { any ; };                 #這邊改成任何人都能訪問,你還可以寫IP地址網段
        recursion yes;
};
vi /etc/named.rfc1912.zones
zone "aa.com" IN {
        type master;
        file "aa.com.zone";
        allow-transfer { 192.168.1.101; };
        also-notify { 192.168.1.101; };
};
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "aa.com.local";
        allow-transfer { 192.168.1.101; };
};
新增區域檔案
cd  /var/named
cp -p named.localhost aa.com.local
 cp -p named.loopback aa.com.zone
chown root:named aa.com.zone
chown root:named aa.com.local
vi aa.com.local    反向區域檔案
$TTL 1D
@       IN SOA  aa.com.  rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      aa.com.
        A       192.168.1.100
119 IN PTR      www.aa.com.
120 IN PTR      ftp.aa.com.


vi aa.com.zone    ---正向區域檔案
$TTL 1D
@       IN SOA  @ rname.invalid.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.1.100
www  IN A       192.168.1.100
ftp  IN A       192.168.1.101
mail IN CNAME   www
啟動DNS服務
systemctl start named.service 
自己檢測下本地服務有沒有問題
nslookup www.aa.com    
                  
--------DNS2----------
環境準備:關閉防火牆、關閉核心防護、設定DNS地址
systemctl stop firewalld
setenforce 0
vi /etc/resolv.conf
nameserver 192.168.1.100
nameserver 192.168.1.101
安裝DNS服務
rpm -ivh /mnt/Packages/bind-TAB補全)
修改主配置檔案
vi /etc/named.conf
options {
        listen-on port 53 { 192.168.1.101; };      #改成輔伺服器地址
        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";
        allow-query     { any ; };                 #這邊改成任何人都能訪問,你還可以寫IP地址網段
        recursion yes;

vi /etc/named.rfc1912.zones
zone "aa.com" IN {
        type slave;
        masters { 192.168.1.100; };
        allow-notify { 192.168.1.100; };
        file "slaves/aa.com.zone";
};

zone "1.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.1.100; };
        allow-notify { 192.168.1.100; };
        file "slaves/aa.com.local";
};

systemctl start named

自己檢測下本地服務有沒有問題 
nslookup www.aa.com  

--------CLIENT--------
環境準備:關閉防火牆、關閉核心防護、設定DNS地址
systemctl stop firewalld
setenforce 0
vi /etc/resolv.conf
nameserver 192.168.1.100
nameserver 192.168.1.101
測試DNS能否正常工作
nslookup www.aa.com
正常情況下能看到主DNS伺服器資訊
當主DNS伺服器停止服務時,再次測試
nslookup www.aa.com

相關文章