BIND

DNS

Domain Name System

什么是域名:

    是由一串用點(diǎn)分隔的名字組成的Internet上某一臺計(jì)算機(jī)或計(jì)算機(jī)組的名稱,作用是幫助人類記憶主機(jī)耗啦,
如果都使用ip人類是無法記憶的
FQDN:(Fully Qualified Domain Name)全限定域名:同時(shí)帶有主機(jī)名和域名的名稱

由來

    計(jì)算機(jī)之間的網(wǎng)絡(luò)通信是使用ip來標(biāo)記主機(jī)的
    當(dāng)只有幾臺主機(jī)一起聯(lián)網(wǎng)時(shí),可以使用ip地址來進(jìn)行訪問
    當(dāng)主機(jī)數(shù)量到達(dá)幾十上百時(shí),人們無法記憶眾多的ip,于是出現(xiàn)了hosts文件
        windows     X:\Windows\System32\drivers\etc\hosts
        linux       /etc/hosts
        格式:
        127.0.0.1       localhost
        ::1             localhost
    hosts文件是在一個(gè)文件中記錄主機(jī)域名和對應(yīng)ip條目來實(shí)現(xiàn)域名到ip的轉(zhuǎn)換
    但hosts文件是每個(gè)主機(jī)各自的維護(hù)的柴信,無法做到實(shí)時(shí)更新茉唉、更改黄锤,當(dāng)網(wǎng)絡(luò)大爆發(fā)時(shí)较雕,
    一天接入幾百臺上千臺主機(jī)時(shí)碉哑,根本無法這項(xiàng)工作
    當(dāng)網(wǎng)絡(luò)大爆發(fā)時(shí),hosts已經(jīng)無法進(jìn)行維護(hù)郎笆,IANA就在互聯(lián)網(wǎng)上提供了服務(wù)器來專門解決域名到ip映射谭梗,
    這就是DNS服務(wù)器
    當(dāng)前互聯(lián)網(wǎng)DNS系統(tǒng):
        互聯(lián)網(wǎng)上的主機(jī)不計(jì)其數(shù)忘晤,如果只靠IANA來完成域名解析的話宛蚓,維護(hù)的工作太大,而且延時(shí)問題设塔,等等
        最后他們設(shè)計(jì)一個(gè)套巧妙的解決方案: 這就是一種 倒樹狀結(jié)構(gòu) 方式來實(shí)際域名解析
        根                               .
        頂級域名(TLD)       .com.     .net.   .org.  [...]
        注冊的域名       taobao.com.      baidu.com.     apache.org [...]
    根:
        全球有 13臺IPv4根 + 25臺IPv6根 這是寫死的
            a.root-servers.net. 518400  IN  A   198.41.0.4
        這些根服務(wù)器并不負(fù)責(zé)具體域名的解析凄吏,只是記錄了tld頂級域名服務(wù)器的IP地址,
        tld服務(wù)器中記錄了例如 taobao.com.這個(gè)域 的對應(yīng)dns服務(wù)器IP地址闰蛔,如此一級
        一級傳遞直到找到目標(biāo)的解析結(jié)果

        要注冊域名需在IANA的外派機(jī)構(gòu)或代理商處申請痕钢,付費(fèi),他會在.com等頂級域名dns服務(wù)器中添加相應(yīng)的解析條目序六。

DNS服務(wù)器的分類:

(1) 主DNS服務(wù)器
    負(fù)責(zé)一個(gè)或者多個(gè)域的直接解析的dns服務(wù)器任连,可配置更改
(2) 從DNS服務(wù)器
    和主一樣,負(fù)責(zé)一個(gè)或者多個(gè)域的直接解析的dns服務(wù)器例诀,
    但不可直接配置更改随抠,resource recode(資源條目)都是從主DNS服務(wù)同步而來
(3) 緩存DNS服務(wù)器
    不直接負(fù)責(zé)域的解析,而是接收到客戶端請求后繁涂,負(fù)責(zé)幫客戶端去遞歸回請求結(jié)果
    例如: 電信的61.139.2.69
(4) 轉(zhuǎn)發(fā)DNS服務(wù)器
    a) 無條件轉(zhuǎn)發(fā):轉(zhuǎn)發(fā)所有針對非本機(jī)負(fù)責(zé)解析的區(qū)域的請求拱她;
    b) 條件轉(zhuǎn)發(fā):僅轉(zhuǎn)發(fā)對特定區(qū)域的請求(即轉(zhuǎn)發(fā)域);

DNS查詢的類型:

(1)遞歸查詢
    一次請求扔罪,取到請求結(jié)果
(2)迭代查詢
    重復(fù)請求秉沼,最后得到結(jié)果
如我們將一個(gè)www.abc.com的dns請求發(fā)給--->營運(yùn)商提供的dns服務(wù)器A,
        {
            營運(yùn)商的dns服務(wù)器上如果沒有緩存結(jié)果矿酵,
            A--->根,根返回一個(gè)tld服務(wù)器的地址唬复,
            A--->tld服務(wù)器,tld服務(wù)器返回一個(gè)abc.com.的dns服務(wù)器地址
            A--->abc.com.的dns服務(wù)器全肮,abc.com.的dns服務(wù)器返回www.abc.com的地址
        }
營運(yùn)商的dns服務(wù)器A將結(jié)果返回給---->我們
在這一次查詢中盅抚,
我們是遞歸(發(fā)一個(gè)請求,就返回了結(jié)果)
而營運(yùn)商的dns服務(wù)器則是迭代(多次請求倔矾,最后取得結(jié)果)

DNS的解析分類:

正向解析:
    域名--->IP
反向解析:
    IP---->域名

DNS的資源記錄:

name    [TTL]   IN      TYPE    record-specific-data
@: 表示當(dāng)前域
SOA: (Start of Authority)叫做起始授權(quán)機(jī)構(gòu)記錄妄均,NS用于標(biāo)識多臺域名解析服務(wù)器柱锹,SOA記錄用于在眾多NS記錄中那一臺是主服務(wù)器
    @   IN  SOA     ns.abc.com.  admin.abc.dom. ( ;DNS記錄文件所在的主機(jī)位置,管理員聯(lián)系郵箱
        1            ; serial number 
        3600         ; refresh   [1h] 
        600          ; retry     [10m] 
        86400        ; expire    [1d] 
        3600 )       ; min TTL   [1h]
NS: 域名解析服務(wù)器記錄,如果要將子域名指定某個(gè)域名服務(wù)器來解析丰包,需要設(shè)置NS記錄
    @   IN  NS      ns.abc.com.
MX: 建立電子郵箱服務(wù)禁熏,將指向郵件服務(wù)器地址,需要設(shè)置MX記錄邑彪。建立郵箱時(shí)瞧毙,一般會根據(jù)郵箱服務(wù)商提供的MX記錄填寫此記錄
    @   IN  MX      mail.abc.com.
A: 將域名指向一個(gè)IPv4地址(例如:100.100.100.100),需要增加A記錄
    ns      IN      A       192.168.1.253
    mail    IN      A       192.168.1.252
    www     IN      A       192.168.1.254
CNAME: 如果將域名指向一個(gè)域名寄症,實(shí)現(xiàn)與被指向域名相同的訪問效果宙彪,需要增加CNAME記錄。這個(gè)域名一般是主機(jī)服務(wù)商提供的一個(gè)域名
    ftp     IN  CNAME   www
AAAA: 將主機(jī)名(或域名)指向一個(gè)IPv6地址(例如:ff03:0:0:0:0:0:0:c1)有巧,需要添加AAAA記錄

DNS的實(shí)現(xiàn):

bind: Berkeley Internet Name Domain
由 isc (Internet Systems Consortium) https://www.isc.org/ 維護(hù)的開源軟件

bind的二進(jìn)制文件
    named - Internet domain name server
    named-checkconf - named configuration file syntax checking tool
    named-checkzone - checks the syntax and integrity of a zone file.
        usage: named-checkzone zonename resourcefilename
    rndc - name server control utility
        是一個(gè)bind的遠(yuǎn)程管理工具释漆,但一般都只是本地運(yùn)行
    rndc-confgen
        rndc管理工具的key生成工具
主配置文件:
    /etc/named.conf
        named.conf - configuration file for named
    /etc/named.rfc1912.zones
        所有管理域的定義文件,是named.conf的補(bǔ)充
    /etc/rndc.conf
============================================================================================
        named.conf說明:
            acl caiwu {
                192.168.1.1;
                192.168.2.0/24;
            };
            options{
                    listen-on port 53 { 127.0.0.1; };服務(wù)綁定的ip和端口
                    directory       "/var/named";工作目錄
                    allow-query     { localhost; };為誰提供查詢
                    recursion yes;是否為客戶端迭歸
                    allow-transfer { address_match_element; ... };誰可以作為從服務(wù)器傳送域配置
                    dnssec-enable no;       關(guān)于dns的安全篮迎,關(guān)閉
                    dnssec-validation no;   關(guān)于dns的安全男图,關(guān)閉
            }

        named.rfc1912.zone中的域定義:
            zone "localhost" IN {
                    type master;
                    file "named.localhost";
                    allow-update { none; };
            };
        /var/named/named.localhost,資源記錄文件定義:
            $TTL 1D                                         ; 統(tǒng)一定義緩存時(shí)長      
            @       IN SOA  @ rname.invalid. (
                                                    0       ; serial    版本號
                                                    1D      ; refresh   從服務(wù)器刷新時(shí)長
                                                    1H      ; retry     從服務(wù)器重試時(shí)長
                                                    1W      ; expire    從服務(wù)器失效時(shí)長
                                                    3H )    ; minimum   否定答案緩存時(shí)長
                    NS      @
                    A       127.0.0.1
                    AAAA    ::1

        serial  標(biāo)記當(dāng)前資源記錄的修改甜橱,每次修改手動(dòng)加1
        refresh 從服務(wù)器間隔多長時(shí)間到主服務(wù)器同步
        retry   從服務(wù)器如果同步失敗逊笆,多長時(shí)間重試
        expire  從服務(wù)器一直聯(lián)系不到主服務(wù)器,多長時(shí)間關(guān)閉自己的dns服務(wù)
        minimum 如果一個(gè)查詢岂傲,沒有記錄难裆,給出否定答案,對方緩存否定答案的時(shí)間(也就是說镊掖,對方這個(gè)時(shí)間內(nèi)不會再進(jìn)行這個(gè)查詢)

安裝

yum install bind -y

配置 (注意 防火墻)

a) /etc/named.conf
    1. 監(jiān)聽端口乃戈、ip
        listen-on port 53 { ip; }; 如果監(jiān)聽所有ip就注釋這一行
    2. 工作路徑
        directory   "/var/named"; 資源記錄等文件的存放位置
    3. 允許誰在本服務(wù)器查詢
        allow-query { ; }; localhost,any,acl...
    4. 如果不是本服務(wù)器負(fù)責(zé)的域,是否到根上去遞歸 
        recursion yes;
b) /etc/named.rfc1912.zones
    1. 添加一個(gè)域
    例:
        zone "abc.com"  IN {
            type master;
            file "abc.com.zone";
            allow-update { none; };
            allow-transfer { 從服務(wù)器ip; }; 如果有從服務(wù)器堰乔,這時(shí)要允許其傳送主服務(wù)器的資源記錄
            ;如果是從服務(wù)器
            type slave;
            masters [port] { ip [port]; }; 配置主服務(wù)器的ip
            masterfile-format text; 說明類型為txet偏化,否則從服務(wù)器收到的文件為data,不是txt文件
            notify yes; 版本更新后發(fā)通知
            also-notify { 10.36.17.101;}; 從服務(wù)器ip
            file "slaves/abc.com.zone.slave"; 配置從服務(wù)器的配置文件路徑镐侯,需指定到slave目錄下
                                            ; named才有寫權(quán)限侦讨,注:不用提供資源記錄文件
        };
    注解:
        type ( master | slave | hint | forward );
            master: 主服務(wù)器
            slave:  從服務(wù)器
            hint:   根
            forward:轉(zhuǎn)發(fā)服務(wù)器
        file "filename;"
            定義當(dāng)前域的資源記錄文件,相對路徑(相對于配置文件中的directory)
        allow-update { none; }; 允許誰動(dòng)態(tài)更新資源記錄文件苟翻,none:只能手動(dòng)更新
c) /var/named目錄下創(chuàng)建資源記錄文件
        如果是rpm安裝
            cp named.localhost abc.com.zone ;修改之
        ===========================================
        $TTL 1D
        @       IN  SOA     ns.abc.com admin.abc.com. (
                                                        1   ;serial
                                                        1D  ;refresh
                                                        1H  ;retry
                                                        1W  ;expire
                                                        3H );minimum
                NS  ns.abc.com
                NS  ns1.abc.com; slave
        ns      A   10.36.17.100
        ns1     A   10.36.17.101; slave
        www     A   10.36.19.102
d) 修改abc.com.zone 的屬組為named; named是named用戶運(yùn)行的,沒有權(quán)限讀取這個(gè)文件
        chown :named abc.com.zone 
e) 重載配置文件
    rndc reload
    測試
    dig -t A www.abc.com @ 10.36.17.100
        ;; ANSWER SECTION:
        www.abc.com.        86400   IN  A   10.36.19.102

反向解析:

和正向一樣韵卤,可參考 
/etc/named.rfc1912.zone
zone "36.10.in-addr.arpa" IN {
    type master;
    file "10.36.in-addr.zone";
    allow-update { none; };
}; 
/etc/named/10.36.in-addr.zone
$TTL 1D
@       IN SOA  ns.abc.com. admin.abc.com.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.abc.com.
        A       10.36.17.100
100.17  PTR     ns.abc.com.                                                                                                                               
101.17  PTR     ns1.abc.com.
102.19  PTR     www.abc.com.

注意:
    格式:如解析10.36.0.0 這個(gè)區(qū)域,zone定義中要寫作:
        36.10.in-addr.arpa; 反向?qū)?

DNS 工具

rndc:

    是bind的遠(yuǎn)程管理工具,named服務(wù)開啟后,會開啟一個(gè)tcp/953端口胰坟,默認(rèn)只接受本地管理凤粗,也應(yīng)該本地管理
    rndc [-b address] [-s server] [-p port] [-V] command
    常用命令(command)
    reload:             重載配置文件
    status:             查看named狀態(tài)
    flush:              清空所有的服務(wù)器緩存  
    retransfer zone:    傳送某一區(qū)域,并不檢查版本號
    notify zone:        重新對某一區(qū)域傳送發(fā)通知

host:

    host hostname [server]
    eg.
        host www.abc.com 10.36.17.101

nslookup:

    交互式的工具
    常用
    >server 10.36.17.101 ;設(shè)置dns服務(wù)器
    >set type=ns         ;設(shè)置查詢類型
    >www.baidu.com       ;要查詢的主機(jī)

dig:

    dig [q-type] host [@server] [d-opt]
        q-type: is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a] (Use ixfr=version for type ixfr)
        d-opt:  
            +noall +answer      不顯示多余的信息夺艰,只顯示answer結(jié)果
            +[no]trace          跟蹤從根開始的查詢過程
        -x addr 逆向查詢(將地址映射到名稱)
            dig -x 10.36.19.102 @10.36.17.100
        dig ns baidu.com @10.36.17.101 +noall +answer

編譯安裝:

準(zhǔn)備用戶

/usr/sbin/groupadd -g 25 -r named 
/usr/sbin/useradd  -u 25 -r -N -M -g named -s /bin/false -d /var/named -c Named named 

安裝依賴包,下載紧索,安裝

yum install openssl-devel libcap-devel
wget https://downloads.isc.org/isc/bind9/9.14.2/bind-9.14.2.tar.gz
tar -xf bind-9.14.2.tar.gz
./configure --prefix=PREFIX --sysconfdir=DIR --localstatedir=DIR
./configure --prefix=/usr/local/bind-9.14.2 --sysconfdir=/etc/named --localstatedir=/var
make && make install

配置

cd /usr/local/
ln -s bind-9.14.2/ ./named
vim /etc/profile.d/named.sh
    export PATH=/usr/local/named/sbin:/usr/local/named/bin:$PATH
. /etc/profile.d/named.sh

cd /etc/named/
rndc-confgen > rndc.conf
vim named.conf
    :r! cat rndc.conf
    刪除rndc部分咖气,去除named部分的注釋
    再添加
    options{
            listen-on port 53 { 10.36.17.101; };
            directory "/var/named";
            allow-query { any; };
            recursion yes;
    };


    zone "." IN {
            type hint;
            file "named.ca";
    };
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };

    zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };

/var/named/named.localhost
    $TTL 1D                                                                                                                                                   
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
            A       127.0.0.1
            AAAA    ::1

dig +bufsize=1200 +norec @a.root-servers.net > /var/named/named.ca

設(shè)置權(quán)限

自建的文件都改
    屬組named
    權(quán)限640
    *.key要為644
    managed-keys.*文件要使用 named:named 
chmod 640 /etc/named/* /var/named/*
chmod 644 /etc/named/*.key /var/named/*.key
chown :named /etc/named/* /var/named/*

啟動(dòng)服務(wù)(注意防火墻)

    named -4u named
          -4: 只使用ipv4
          -u: 使用的用戶
     啟動(dòng)后月而,就可使用rndc來控制named

相關(guān):
Administrator Reference Manual
ftp://ftp.isc.org/isc/bind9/9.14.2/ ;版本相關(guān)下載
ftp://ftp.isc.org/isc/bind9/9.14.2/doc/arm/ ;管理員參考手冊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汗洒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子父款,更是在濱河造成了極大的恐慌溢谤,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憨攒,死亡現(xiàn)場離奇詭異世杀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)肝集,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門瞻坝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人包晰,你說我怎么就攤上這事湿镀】晃” “怎么了伐憾?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赫模。 經(jīng)常有香客問我树肃,道長,這世上最難降的妖魔是什么瀑罗? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任胸嘴,我火速辦了婚禮,結(jié)果婚禮上斩祭,老公的妹妹穿的比我還像新娘劣像。我一直安慰自己,他們只是感情好摧玫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布耳奕。 她就那樣靜靜地躺著,像睡著了一般诬像。 火紅的嫁衣襯著肌膚如雪屋群。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天坏挠,我揣著相機(jī)與錄音芍躏,去河邊找鬼。 笑死降狠,一個(gè)胖子當(dāng)著我的面吹牛对竣,可吹牛的內(nèi)容都是我干的庇楞。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼否纬,長吁一口氣:“原來是場噩夢啊……” “哼姐刁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起烦味,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤聂使,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谬俄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柏靶,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年溃论,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屎蜓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钥勋,死狀恐怖炬转,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情算灸,我是刑警寧澤扼劈,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站菲驴,受9級特大地震影響荐吵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赊瞬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一先煎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巧涧,春花似錦薯蝎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闷供,卻和暖如春烟央,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歪脏。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工疑俭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婿失。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓钞艇,卻偏偏與公主長得像啄寡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子哩照,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350