Linux DNS原理簡介及配置

Linux DNS原理簡介及配置 數據庫

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

1、簡介

通常來說域名比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 dom

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

 

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

 

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

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

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

 

2、原理

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

 

3、域名解析的過程

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

    

dns查詢:

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

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

 

 

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

 

4、資源記錄

數據庫中的每個條目稱做一個資源記錄(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

    

5、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命令。

 正向解析測試:

 反向解析測試:

 

至此簡單的配置完畢。

相關文章
相關標籤/搜索