配置DNS服務器


DNS原理相關
DNS 爲Domain Name System(域名系統)的縮寫,它是一種將ip地址轉換成對應的主機名或將主機名轉換成與之相對應ip地址的一種服務機制。 
其中經過域名解析出ip地址的叫作正向解析,經過ip地址解析出域名的叫作反向解析。 DNS使用TCP和UDP, 端口號都是53, 但它主要使用UDP,服務器之間備份使用TCP。 
全世界只有13臺「根」服務器,1個主根服務器放在美國,其餘12臺爲輔根服務器,DNS服務器根據角色能夠分爲:主DNS, 從DNS, 緩存DNS服務器,DNS轉發服務器v 。

數據庫



域名:vim

     www.magedu.com 這是個主機名(主機名FQDNFull Qualified Domain Name,徹底限定域名)緩存

      # .com是個域名,magedu.com下的一個域安全

      # .magedu.com也是個域名,只不過有的主機叫作www有的叫作ftpmail服務器

 

     域名由大到小進行組合,就像外國人寫地址,如www.magedu.com.dom

      # www:範圍最小,主機名ide

      # .magedu工具

      # .com:頂級域測試

      # .:全局,表示根域spa

 

     根域-->頂級域(TLD:Top Level Domain)-->二級域

        頂級域分爲:

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

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

            反向域:將IP-->FQDN專用的

                反向:IP-->FQDN在一個數據庫

                正向:FQDN-->IP在另外一個數據庫

 

     主機名稱是自底向上的如:www.magedu.com,而受權是自頂向下的

DNS服務器的做用:

    1、接受本地客戶查詢請求,查詢方式爲遞歸:

        好比st1請求ns服務器,ns服務器給st1進行遞歸,本身迭代查詢

    2、外部客戶端請求:請求權威答案

        若是請求的主機存在,則發送確定答案和緩存時間(TTL)

        若是請求的主機不存在,則發送否認答案和緩存時間(TTL)

    3、外部客戶端請求非權威答案,好比:

        st1想要查詢www,可是它沒有給ns.ibm.com發送請求反而去請求ns.kernel.org

用本身的話來講就是建立一個DNS服務器,用來給買到的域名解析到本身的ip上去。

DNS的主從結構和類型:

     DNS服務器若是掛了,經過ip地址能夠訪問,沒法經過域名來訪問。爲了安全,須要不止一臺DNS服務器

 

二. 使用bind搭建DNS服務器

1. 安裝bind
yum install -y bind
cp /etc/named.conf /etc/named.conf.bak  
>/etc/named.conf
vim /etc/named.conf 
加入以下配置:

options {

    directory "/var/named";

};

 

zone "." IN  {

    type hint;

    file "named.ca";

};

 

zone "localhost" IN {

    type master;

    file "localhost.zone";

};

 

zone "0.0.127.in-addr.arpa" IN {

    type master;

    file "named.local";

};

保存退出

 

named-checkconf  #檢查配置文件有無錯誤

chown named /etc/named.conf
cd /var/named/
dig -t NS . > named.ca//Dig是一個在類Unix命令行模式下查詢DNS包括NS記錄,A記錄,MX記錄等相關信息的工具。
vim localhost.zone //加入

 

@                   IN      SOA     localhost.  admin.localhost.     (

                                                                        2013081601

                                                                        1H

                                                                        10M

                                                                        7D

                                                                        1D

                                                                           )

@                   IN          NS          localhost.

localhost.          IN          A           127.0.0.1

vim named.local //加入

 

$TTL 86400

@                    IN      SOA     localhost.  admin.localhost.      (

                                                                        2013081601

                                                                        1H

                                                                        10M

                                                                        7D

                                                                        1D

                                                                        )

@                    IN          NS          localhost.

1                    IN          PTR         localhost

保存退出

 

檢測配置是否有問題: named-checkconf 
檢測正解析: named-checkzone "localhost" /var/named/localhost.zone 
檢測反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local
rndc-confgen -r /dev/urandom -a  // 這一步是生成 rndc.key, 若是沒有這個key namd 是啓動不了的。
chown named:named /etc/rndc.key
/etc/init.d/named start
netstat -lnp|grep named  // 查看一下named進程是否監聽了53端口
首先測試正向解析:dig @127.0.0.1 localhost. 
接着測試反解析:dig @127.0.0.1 -x 127.0.0.1

2. 增長一個域名(zone)
vim /etc/named.conf //增長

zone "abc.com" IN {

    type master;

    file "abc.com.zone";

};

 

zone "137.168.192.in-addr.arpa" IN {

    type master;

    file "192.168.zone";

};

保存退出

 

編輯zone文件: vim /var/named/abc.com.zone//增長

$TTL    600

@               IN      SOA     abc.com.      root.abc.com.    (

                                                        2013081601

                                                        1H

                                                        10M

                                                        7D

                                                        1D

)

                 IN      NS      ns.abc.com.

                 IN      MX  10  mail.abc.com.

ns               IN      A       192.168.0.11

www              IN      A       192.168.137.73

mail             IN      A       192.168.137.10

bbs              IN      CNAME    www.abc.com.

 

編輯反解析文件: vim /var/named/192.168.zone //增長

$TTL 600

@               IN      SOA     ns.abc.com.      root.abc.com. (

                                                        2013081601

                                                        1H

                                                        10M

                                                        7D

                                                        1D

)

@               IN      NS      ns.abc.com.

10              IN      PTR     ns.abc.com.

11              IN      PTR     mail.abc.com.

73              IN      PTR     www.abc.com.

保存退出

分別檢測兩個配置文件是否有問題:
named-checkzone "abc.com" abc.com.zone
named-checkzone "137.168.192.in-addr.arpa" 192.168.zone 

重啓named服務/etc/init.d/named restart

 

測試 :

dig @127.0.0.1 www.abc.com
dig  @127.0.0.1 -x 192.168.137.11

3. 配置DNS轉發
咱們配置的DNS是隻能解析咱們定義的zone的,咱們沒有定義的是不能解析的。
配置DNS轉發就能夠解析其餘互聯網上的域名了,前提是這個域名在互聯網中的確在使用,也就是說這個域名已經被某個DNS服務器解析了。
vim /etc/named.conf //在options{} 裏面增長
forward first;  
forwarders { 8.8.8.8; };
這兩行就是用來配置轉發的,該DNS服務器不能解析的域名會轉發到8.8.8.8這個DNS服務器上去解析。

4. 配置主從
在從服務器上 yum install -y bind
拷貝主上的配置文件到從上,其中有/etc/named.conf, /var/named/localhost.zone, /var/named/named.local  
拷貝過來後,修改一下從的/etc/named.conf 內容參考:

options {

    directory "/var/named";

};

 

zone "." IN  {

    type hint;

    file "named.ca";

};

 

zone "localhost" IN {

    type master;

    file "localhost.zone";

};

 

zone "0.0.127.in-addr.arpa" IN {

    type master;

    file "named.local";

};

 

zone "abc.com" IN {

    type slave;

    file "slaves/abc.com.zone";

    masters { 192.168.0.11; };

};

 

zone "137.168.192.in-addr.arpa" IN {

    type slave;

    file "slaves/192.168.zone";

    masters { 192.168.0.11; };

};

 

從上生成rndc.key: rndc-confgen -r /dev/urandom -a 

chown named:named /etc/rndc.key
從上啓動named: /etc/init.d/named start 
啓動成功後會在 /var/named/下生成一個slaves目錄,這個目錄下會有192.168.zone, abc.com.zone這兩個文件,內容是和主上的同樣的
在從上測試: dig @127.0.0.1  www.abc.com 

5. 測試主從同步
在主dns上更改文件 /var/named/abc.com.zone // 在最後增長一行:
123              IN      A       1.1.1.1
另外須要修改一下第三行的那個數字串,這個是用來作標記的,只有這個數字變化了,纔可讓從自動跟着變,數字只能是變大,不能減少,2013081601 -> 2013081602
重啓主namd服務: /etc/init.d/named restart
經測試咱們發現一個問題,就是從常常會同步特別慢,這是很要命的。因此須要咱們作一個特殊操做,在主上的/etc/named.conf中,abc.com的zone中增長兩行:
notify yes;
also-notify { 192.168.0.12; };

相關文章
相關標籤/搜索