Linux DNS服務簡介


一.DNS簡介

在互聯網這個大環境中,我們平時上網使用的都是類似於www.baidu.com的域名,這是我們人類易讀的互聯網,但是在實際的數據傳輸中,我們用到的都是ip地址,計算機無法直接識別我們常用的域名,因此我們就需要一個在我們和計算機之間做翻譯的服務,而這個服務就是DNS。DNS是基於tcp和udp協議的服務,用於我們日常的域名解析,幫助我們在域名和ip地址中相互轉換,DNS所用端口為53號端口,在linux中dns服務的服務名為named,安裝包為bind,一般情況下我們可以在linux系統中直接通過“yum -y install bind”即可安裝我們需要的DNS服務。

二.DNS服務原理

要了解DNS服務我們首先要知道什么是域名

域名就是一串由點分隔的字符串,用來表示網絡上某一台或一組計算機的名稱,如果說ip為計算機的身份證,那么域名就是計算機的名字就像www.baidu.com就是百度的網絡名字,域名的存在是為了方便人們記憶,和管理網絡。因此域名也分為根域名,頂級域名,二級域名,三級域名等根域名為“.”,其實在我們所有的網絡域名后面都是有一個隱藏的點的就像百度的完整域名為“www.baidu.com.”,頂級域名就是com,cn,gov之類的在整串域名除“.”之外的最后的位置,二級域名就是指頂級域名之下的域名例如我們的baidu,taobao等,在二級域名前的就是三級域名,以此類推。

而我們的域名作為數據存儲在世界上13台根DNS服務器上,當我們需要查找域名時就會去這13台服務器去訪問然后就會告訴你你詢問的域名所對應的ip

DNS解析過程:

客戶端先查看瀏覽器緩存和本地host文件,本地DNS解析緩存,沒有的話就交給本地域名解析服務器(由運營商提供),本地域名緩存解析服務器收到解析請求后,先看本地緩存有沒有,如果沒有直接找域名根服務器,根收到www.google.com這個請求時,會說不明白在哪里,但是根節點服務器會返回.com給本地域名解析服務器,然后本地域名解析服務器再找.com,找到后,再找google.com,最終找到www.google.com這個主機

 

三.linux中DNS服務的配置文件

在我們安裝過DNS服務后我們就可以通過配置文件去配置我們的DNS服務了,以下是我們配置DNS服務的常用配置文件及其相關配置(由於文件較大,在此只列出我們常用的配置)

1./ect/named.conf 全局配置文件

這個文件是DNS服務的全局配置文件,包括了zone文件的配置,DNS服務的基礎配置,秘鑰配置等

options {

        listen-on port 53 { any; }; //監聽的端口和監聽的ip,在此用any代表固定ip表示所有ip

        directory       "/var/named"; //所在zone文件路徑(所在目錄)

        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,any代表所有ip

...

        recursion yes; //是否迭代查詢,一般只有緩存DNS服務器開啟

 

        dnssec-enable no; //是否使用秘鑰

        dnssec-validation no; //是否確認秘鑰

 

//緩存文件的配置
      logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

//根zone文件的配置
zone "." IN { //zone表示這是個zone配置,引號中間為配置的zone,IN為固定格式

        type hint; //type有很多種,我們常用的有hint表示根,master表示主DNS服務器,slave表示從DNS服務器,在一般情況下我們的type為master

        file "named.ca"; //指定對應的zone文件的位置

};

//這是我們主要配置的區域,用來配置DNS服務中最重要的zone(在baidu中設置一個DNS服務器,這個DNS服務器將完成域名空間"baidu.com"下的域名解析工作,我們稱之為一個區域ZONE)再添加新的zone時我們可以仿照根zone文件,
除了上面根zone的配置我們在指定主從服務器時還要指定從服務器對應的主服務器ip“master {ip;};”
//讀取以下文件 include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

 

 

2./var/named/*  所有zone文件的配置

在這個目錄下named.ca文件定義了根zone的配置,里面包含了13台根DNS服務器的ip,named.localhost定義了本機的zone配置slaves/目錄下是我們的從DNS服務器的zone目錄,當我們在/ect/named.conf配置了新的zone后需要在這個目錄下創建對應的zone配置文件在創建zone文件時可參照named.localhost文件

下面是我自己定義的一個com.zone文件,也就是com的zone配置文件

$TTL 1D //表示下面的時間都是一天

/*下面是 SOA記錄

SOA的作用是說明一個區域(zone)解析文件的生效區域,由誰負責,以及主從同步時的參數設定

區域數據文件有版本號(序列號): serial,長度不能大於10位

刷新時間(檢查周期):refresh

重試時間(重試周期): retry

過期時間(失效時長): expire

否定應答的TTL值;
*/
 

@       IN SOA  ns.com. rname.invalid. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

/*下面是NS記錄和A記錄,當也有其他的記錄,不過在此我們不做配置

NS: 一個區域數據文件可以有多個NS記錄;

name: NS前的區域,區域名稱,可使用@替換也可用空格代替,同@表示當前zone;

value:dns服務的FQDN;

注意:

1.相鄰的資源記錄name相同時,后面的可省略;

2.任何一個value中指定的FQDN,在其域的正向解析文件中應該有A記錄;

3.同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務器會以輪詢方式響應;

A記錄用來表示目標域所對應的ip

 */

               NS      ns.com. //在此空格代表當前zone也就是com.此條表示解析com去詢問ns.com(可以自己定義名字,在后面引用時對應即可)

ns.com.        A       192.168.230.3 //ns.com(上一條定義的)對應的ip為192.168.230.3

magedu.com.    NS      ns.magedu.com.

alibaba.com.   NS      ns.alibaba.com.

ns.magedu.com. A       192.168.230.4

ns.alibaba.com.A       192.168.230.6

 

 

zone文件中可以簡單的理解NS記錄和A記錄作為一組時是用來告訴前來詢問的DNS服務器你所詢問的域名我不知道對應的ip,但是我知道誰知道並告訴對方下一級別要訪問的DNS服務器,當A記錄單獨出現時就是一個完整域名的ip,可以直接返回給緩存DNS服務器,然后它再返回給客戶端

 

3./etc/resolv.conf 客戶端的指向配置文件

這個文件用來告訴客戶端你需要域名解析時要訪問的DNS服務器,一般指向緩存DNS服務器

當我們想修改或添加指向的DNS服務器時直接修改或者添加“namesrver 對應DNS服務器ip”即可

# Generated by NetworkManager

search magedu.com //定義域名的搜索列表

nameserver 192.168.43.1 //定義DNS服務器的搜索列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM