Linux DNS原理簡介及配置


Linux DNS原理簡介及配置

  1. DNS簡介
  2. DNS原理
  3. 域名解析的過程
  4. 資源記錄
  5. DNS BIND安裝配置

一、簡介

一般來講域名比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入域名來訪問網絡中的資源,但是計算機主機在互聯網中只能通過IP識別對方主機,那么就需要DNS域名解析服務了。

域名:www.baidu.com(也叫做FQDN:Full Qualified Domain Name, 完全限定域名,同時帶有主機名和域名的名稱)

 

通常 Internet 主機域名的一般結構為:主機名.三級域名.二級域名.頂級域名。

TLD(top level domain)

組織域:.com, .org, .net, .cc

國家域: .cn, .tw, .hk, .iq, .ir, .jp

反向域: IP-->FQDN 將IP地址轉換成主機名,早期只能正向解析,后來引入了一個機制。指針;但是從IP轉換成FQDN是另外一套數據庫。

 

DNS服務協議采用類似目錄樹的層次結構記錄域名與IP地址的映射對應關系,形成一個分布式的數據庫系統,上級僅知道其直接下級,下級只知道根的位置。結構模型:

 

    DNS域名解析服務(Domain Name System)是用於解析域名與IP地址對應關系的服務,功能上可以實現正向解析反向解析

正向解析:根據主機名(域名)查找對應的IP地址。

反向解析:根據IP地址查找對應的主機名(域名)。

 

二、原理

Linux下nsswitch(network service switch)是一個通用框架,與各種類型存儲交互的公共實現,實現名稱解析服務。其中有庫文件,libnss_files.so庫文件就是實現查找文件時, 其應該調用的文件。其展現的就是一個配置文件,/etc/nssitch.conf,此配置文件中

這個files就是通過libnss_files來查找/etc/hosts

 

hosts可通過兩種方式來查找:     files    dns

file: /etc/hosts配置文件

dns: DNS服務器

系統中stub resolver:名稱解析器,根據配置文件來查找對應的ip地址。

 

ping www.itodo.com此過程就是先查找本地/etc/hosts文件,如果沒有再查找dns服務器。

 

hosts格式:

    IPADDR FQDN    Ailases

    192.168.100.1    www.ss.com     www

 

三、域名解析的過程

    當應用過程需要將一個主機域名映射為IP地址時,就調用域名解析函數,解析函數將待轉換的域名放在DNS請求中,以UDP報文方式發給本地域名服務器。本地的域名服務器查到域名后,將對應的IP地址放在應答報文中返回。

    

dns查詢:

    遞歸查詢:主機向本地域名服務器的查詢一般都是采用遞歸查詢,只發出一次請求。

    迭代查詢:本地域名服務器向根域名服務器的查詢的迭代查詢,發出多次請求。

 

 

以上簡單理解來說,主機1訪問主機2的域名a.zz.com,首先向本機域名服務器發起請求主機2的ip,本機沒有,向根域名服務器查詢,根返回消息說頂級域名服務器那里知道,本機又向頂級域名服務器查詢,頂級域名服務器又返回消息說二級域名服務器那里有答案,本機又向二級域名查詢,最后經過本機域名服務器的緩存之后,返回主機2的域名對應的ip地址。

 

四、資源記錄

數據庫中的每一個條目稱作一個資源記錄(Resource Record,RR)

資源記錄的格式:

 

$TTL 600;

 

NAME            [TTL]            IN            RRT            VALUE

www.ss.com                        IN            A            1.1.1.1

 

1.1.1.1                        IN            PTR            www.ss.com

資源記錄類型(RRT):

SOA(start of authority)

    ZONE_NAME    TTL        IN    SOA        FQDN        ADMINISTRATOR_MAILBOX(

                            serial number 版本號

                            refresh    刷新時間

                            retry    重試時間

                            expire    過期時間

                            na ttl )    否定答案的ttl

時間單位:M(分鍾)、H(小時)、D(天)、W(周),默認單位是秒

郵箱格式:admin@ss.com -寫為-> admin.ss.com

@:也就是ZONE_NAME

NS(Name Server): ZONE_NAME --> FQDN

    magedu.com.        600        IN        NS        ns1.magedu.com.

    ns1.magedu.com.    600        IN        A        1.1.1.2

    

MX(Mail eXchanger): ZONE_NAME --> FQDN

    ZONE NAME    TTL        IN        MX pri        VALUE

    優先級:0-99,數字越小級別越高

        magedu.com.    600        IN        MX    10    mail.magedu.com.

        mail.magedu.com.    600        IN    A    1.1.1.3

 

A(address):    FQDN-->IPv4    

AAAA:FQDN-->IPv6

PTR(pointer):IP-->FQDN

CNAME(Canonical NAME): FQDN-->FQDN

    www2.magedu.com.        IN        CNAME        www.magedu.com.

TXT:文本字符串

 

DNS區域:

正向區域文件

    magedu.com.        IN        SOA    

 

www.maged.com.   IN    A    192.168.0.1

簡寫為:

www          IN    A    192.168.0.1

 

反向區域文件

0.168.192.in-addr.arpa.       IN    SOA    

 

1.0.168.192.in-addr.arpa.      IN    PTR        www.magedu.com.

簡寫為:

1       IN       PTR       www.magedu.com.

 

區域傳送

    區域傳送的類型:

    完全區域傳送: axfr

    增量區域傳送:ixfr

    

區域類型:

    主區域:master

    從區域:slave

    提示區域:hint

    轉發區域:forward

    

五、DNS BIND安裝配置

DNS所用的最常用軟件為BIND

bind:

    

    /etc/named.conf

        BIND進程的工作屬性

        區域的定義

    /etc/rndc.key

        rndc: Remote Name Domain Controller

        密鑰文件

        配置信息:/etc/rndc.conf    

    /var/named/

        區域數據文件

 

bind-chroot:為了提高系統安全新,把系統中的一個子目錄作為bind運行時的目錄。

    默認:named

        用戶:named

        組:named        

    /var/named/chroot/

        etc/named.conf

        etc/rdnc.key

        sbin/named

        var/named/

 

安裝配置:

1.安裝bind,查看是否安裝成功

 yum -y install bind bind-utils bind-chroot

 rpm –qa | grep "^bind"

2.修改/etc/named.conf

 listen-on port 53 { any; };

3.修改/etc/named.rfc1912.zones

4.添加所需要的zone文件

 在/var/named目錄下添加正向解析文件named.yan和反向解析文件named.222

 

5.檢查語法

 named-checkconf

 named-checkzone "區域名" 區域文件路徑

 

 

6.修改/etc/resolv,並啟動服務。

systemctl start named

 

 

7.nslookup測試,或者使用dig命令。

 正向解析測試:

 反向解析測試:

 

至此簡單的配置完畢。


免責聲明!

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



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