DNS服務基礎

DNS服務:是一種工作在應用層的特定應用,也是.c/s架構模式的,DNS的是一種應用層協議,他的端口是UPD協議的53號端口,()根據應用場景不同也會用到tcp協議)這就意味著DNS是默認通過UDP協議進行通信的

我們訪問任何一個網站都是通過主機名的方式進行訪問的;例如www.baidu.com,這是個主機名.稱之為FQDN(完全限定域名)

常見的頂級域中的組織域有:.com,.net,.org,.gov,.edu,.mil

常見的頂級域中的國家域有:.iq,.tw,.jp,.cn…

DNS查詢類型:
遞歸查詢:
迭代查詢:
DNS名稱解析方式:
名稱 --> IP:正向解析
IP --> 名稱:單向解析
注意:二者的名稱空間,非為同一個空間;即非為同一顆樹,因此,也不是同一個解析庫
DNS服務器類型:
負責解析至少一個域:
    主名稱服務器
    輔助名稱服務器
不負責域解析:
    緩存名稱服務器
一次完整的查詢請求經過的流程:
client --> hosts文件 --> DNS Loscal Cache --> DNS Server(recursion,遞歸) -->
自己負責解析的域:直接查詢數據庫并返回答案;
不是自己負責域:server cache --> iteration(迭代)

解析答案:
    肯定答案:
    否定答案:不存在查詢的鍵,因此,不存在與其查詢對應的值

    權威答案:由直接負責的DNS服務器返回的答案
    非權威答案:

主-輔DNS服務器

主DSN服務器:維護所負責解析的域的數據庫的那臺服務器,讀寫操作均可進行
從DNS服務器:從主DNS服務器那里或其他的從服務器那里"復制"一份解析庫,但只能進行讀操作
    "復制"操作的實施方式
        序列號:也即是數據庫的版本號,主服務器數據庫內容發生變化時,其版本號遞增
        刷新時間間隔:從服務器每多久到主服務器檢查序列號更新狀況
        重試時間間隔:從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔
        過期時長:從服務器始終聯系不到主服務器時,多久之后放棄從主服務器同步數據,停止提供服務
        否定答案的緩存時長:

        注意:主服務器數據發送更新以后,主服務器會"通知"從服務器隨時更新數據,忽略刷新時間間隔機制進行
    同步方式:
        區域傳送:
            全量傳送:傳送整個數據庫;
            增量傳送:僅傳送變化的數據
區域和域的區別:
    以magedu.com域為例
        FQDN --> IP 
            正向解析庫:正向解析區域
        IP --> FQDN
            反向解析庫:反向解析區域
區域數據庫文件:
資源記錄:簡稱rr
    記錄有類型:A,AAA,PTR,SOA,NS,CHAME,MX
    SOA:起始授權記錄,一個區域解析庫有且只能有一個SOA記錄;而且只能放在第一條
    NS:域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主
    A:地址記錄,從FQDN解析為IPV4地址記錄
    AAAA:地址記錄,從FQDN解析為IPV6地址記錄
    CNAME:別名記錄
    PTR:把IP地址解析成FQDN,所以PTR記錄是用來反向解析的記錄
    MX:郵件交換器
        優先級:0-99,數字越小優先級越高
資源記錄的定義格式:
    語法: name    [ttl]   IN  RR_TYPE value
多種不同的資源記錄他們的名稱和值的特點要求,如下;
SOA:
    name:當前區域的名字;例如"magedu.com",或者"2.3.4.in-addr.arpa"
    value:有多部分組成
        1)當前區域的區域名稱(也可以使用主DNS服務器名稱)
        2)當前區域的管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代
        3)(朱從的服務協調屬性的定義以及否定答案的TTL)

            例如:
                magedu.com. 86400   IN  SOA magedu.com. admin.magedu.com. (
                    2017010801 ;serial
                    2H         ;refresh
                    10m        ;retry
                    1w         ;expire
                    1D         ;negative answer ttl
                )
NS:
    name:當前區域的區域名稱
    value:當前區域的某DNS服務器的名字,例如ns.magedu.com
        注意:一個區域可以用多個ns記錄
    例如:
        magedu.com. 86400   IN  NS  ns1.magedu.com.
        magedu.com. 86400   IN  NS  ns2.magedu.com.

MX:
    name:當前區域的區域名稱
    value:當前區域某郵件交換器的主機名
        注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先級
    例如:
        magedu.com. 86400   IN  MX  10  mx1.magedu.com.
        magedu.com. 86400   IN  MX  20  mx2.magedu.com.
A:
    name:某FQDN,例如www.magedu.com.
    value:某IPV4地址
    例如:
        www.magedu.com. IN  A   1.1.1.1
        www.magedu.com. IN  A   1.1.1.2
        bbs.magedu.com. IN  A   1.1.1.1
AAAA:
    name:FQDN
    value:IPV6
PTR:
    name:IP地址,有特點格式:IP反過來寫,而且加特別后綴;
    例如:1.2.3.4的記錄應該寫為4.3.2.1.in-addr.arpa.
    value:FQDN
    例如:
        4.3.2.1.in-addr.arpa.   IN  PTR www.magedu.com
CNAME:
    name:FQDN格式的別名
    value:FQDN格式的正式名字
    例如:
        web.magedu.com. IN  CNAME   www.magedu.com

注意:
    1)TTL值可以全局繼承;不用每個都定義
    2)@表示當前區域的名稱
    3)相鄰的兩條記錄其name相同時,后面的可省略
    4)對于正向區域來說,各MX,NS等 類型的記錄的value為FQDN,此FQDN應該有一個A記錄

DNS and Bind

如何安裝配置使用DNS服務

BIND:伯克利互聯網域名,BIN是DNS協議的一種實現,BIND這個程序運行起來的進程名叫named.

dns:協議
bind:dns協議的一種實現
named:bind程序的運行的進程名
BIND的安裝配置:
bind-libs:被bind和bind-utils包中的程序共同用到的庫文件
bind-utils:bind客戶端程序集,例如dig,host,nslookup等
bind:提供的dns server程序,以及幾個常用的測試程序
bind-chroot:選裝程序,讓named運行于jail(監獄)模式下

主配置文件

/etc/named.conf
或包含其他文件;
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones
    /etc/named.root.key

解析庫文件;

/var/named/目錄下;
    一般名字為:ZONE_NAME.zone
注意:1)一臺DNS服務器可同時為多個區域提供解析;
    2)必須要有根區域解析庫文件:named.ca
    3)還應該有兩個區域解析庫文件:localhost和127.0.0.1正反向解析庫
        正向:named.localhost
        反向:named.loopback

rndc:遠程名稱域控制器

rndc默認情況下工作在tcp的953端口,但默認監聽于127.0.0.1地址,因此僅允許本地使用.BIND安裝在同一主機,bind程序安裝完成之后,默認即可做緩存名稱服務器使用;如果沒有專門復雜解析的區域,直接即可啟動服務;

開啟

centos6:service named start
centos7:systemctl start named.service

主配置文件格式:

全局配置段:
    options{...}
日志配置段:
    logging{...}
區域配置段:
    zone{...}
        那些由本機負責解析的區域,或轉發的區域
    注意:每個配置語句必須以分號結尾 
緩存名稱服務器的配置:
    監聽能與外部主機通信的地址
        listen-on port 53;
        listen-on port 53{ 172.16.100.67; };

    學習時,建議關閉dnssec
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside no;
檢查配置文件的語法錯誤;
    named-checkconf [/etc/named.conf]
測試工具:dig,host,nslookp
    dig命令:
        dig [-t RR_TYPE] name [@SERVER] [query options]
            用于測試dns系統,因此其不會查詢hosts文件
            查詢選項:
                +[no]trace:跟蹤解析過程
                +[no]recures:進行遞歸解析
            注意:反向解析測試
                dig -x ip
            模擬完全區域傳送
                dig -t axfr DOMAIN [@server]

    host命令:
        host [-t RR_TYPE] name SERVER_IP

    nslookup命令
        nslookuop [-options] [name] [server]

    交互式模式:
        nslookup>
            server IP:以指定的IP為DNS服務器進行查詢
            set q=RR_TYPE:要查詢的資源記錄類型
            name:要查詢的名稱

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58133

(0)
M20-1馬星M20-1馬星
上一篇 2016-11-07 10:30
下一篇 2016-11-07 10:34

相關推薦

  • 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

    Linux干貨 2016-11-21
  • 文本處理三兄弟(grep,sed,awk)

    linux文本處理三劍客: grep:文本過濾工具 grep  egrep=grep -e  fgrep sed:流編輯器  處理多個行  awk:文本編輯工具,格式化工具 grep [OPTIONS] PATTERN [FILE…] : 文本處理搜索工具,根據用戶指定的“模式”對目標文本進行匹配檢查;打印匹…

    Linux干貨 2017-04-01
  • 如何加密/混亂C源代碼

    之前發表了《6個變態的C語言Hello World程序》[酷殼鏈接] [CSDN鏈接],主要是是像大家展示了一些C語言的變態玩法。也向大家展示了一下程序是可以寫得讓人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都覺得很好玩,是的,那本來是用來供朋友們“消遣作樂”,供娛樂娛東而已,不必太過認真。 不過,通過這種極端的寫法,大家可以看到源代碼都可以寫得那…

    Linux干貨 2016-05-08
  • CentOS安裝本地 YUM源 產生的問題和解決過程

    本人剛剛踏入Linux的神秘殿堂就被如何安裝軟件這樣的問題難倒了,經過Google大神的指點,終于找到了如何配置YUM源的方法,其中也不是一帆風順,也產生了一些小問題,這些都是基礎知識,希望能夠幫到剛剛學習Linux的朋友。     由于VMware的終端不好用,所以想換成XShell,過程中又需要配置網絡屬性,橋接到…

    Linux干貨 2016-01-05
  • DevOpsDays大會,818坐標上海,我們來啦?。。?

    DevOpsDays 818, 坐標上海, DevOpsDays上海大會, 我們來啦?。?! 我們來啦!?。?我們來啦?。?! 重要的事情說三遍。 標簽: 運維  移動開發  IT技術  DevOps  2008年的敏捷會議上,Andrew Clay Shafer 和 Patrick Debois 討論了關于“敏…

    Linux干貨 2017-08-10
  • 字符切割和用戶管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,同一個用戶登錄多次,則只顯示一次 who |cut -d’ ‘ -f1 |sort -u2、取出最后登錄到當前系統的用戶的相關信息。 last |head -1|cut -d’ ‘ -f1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 cut…

    2017-12-17
欧美性久久久久