歡迎您光臨本站 註冊首頁

RedHat Linux 5 DNS伺服器配置詳解

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

DNS域名系統 ,是一種協議, 工作在應用層
監聽 的埠:TCP 53 :輔助域名伺服器往主域名伺服器傳輸信息時,用TCP53 ,主從伺服器通信
UDP 53

DNS的作用:提供域名和IP地址之間的一種相互轉換的機制,母的是為了方便人們的記憶和管理


早期的DNS是通過ftp共享的/hosts文件實現的

/etc/hosts 實現檢索

DNS的設計理念是層次性和分散式,就像我們的國家管理一樣,在DNS中DNS是一個倒樁的樹結構,1.根域 ,全球只有13台根節點伺服器,2.一級域名(.com,.org組織域和國家域,反向域是比較常用的。3.二級域,是為某個組織所擁有的4.子域,最高可以劃分63個層級結構。
下級域是要被上級域授權的,而且上級域可以管理下級域和訪問下級域,但是下級域不知道上級域。
DNS解析的過程由兩種,遞歸和迭代。遞歸就是DNS客戶機只需向DNS伺服器發出一次請求,DNS伺服器通過向根域請求,根域向下級域查詢,把需求的結果返回給DNS伺服器。迭代是DNS伺服器向根域請求,根域返回的結果是參考答案,也就告訴它,哪個下級域知道,讓DNS伺服器自己向那個域查詢。
解析順序;1是否為本機 2 是否有DnS緩存 3 查找hosts文件  4. 查找DNS伺服器

區域類型;
   hint      根提示
   master  主域名伺服器
   slave     從域名伺服器
   forward  轉發域
記錄類型:
子域要想讓別人知道要讓上級有你的記錄
SOA記錄  起始授權記錄(標識主域名伺服器)
NS記錄  聲明本域的域名伺服器
A記錄  主機名轉換成IP地址(正向解析)
PIR  IP地址轉換為主機名(反向解析)
MX記錄  標識郵件伺服器  針對一個域中的那一台是            mail伺服器 必須具有反解  可以有多條  是具有優先順序的,0-99,越大越高
CNAME   別名

SOA記錄只能有一個並且必須放在最前面
全局TTL配置項及SOA記錄
$TTL(Time To Live,生存時間)記錄
SOA(Start Of Authority,起始授權記錄)記錄
分號“;”開始的部分表示註釋信息

例子:
$TTL   86400  ; 有效地址解析記錄的默認緩存時間
@  IN  SOA  6688.cc.(該DNS區域的地址)  admin.6688.cc.  (    (該DNS區域管路員的郵箱地址)
        2009021901 serial  更新序列號用於標記地址資料庫的變化,可以是10位以內的整數
        3H refresh time  刷新時間從伺服器到主伺服器查看是否更新間隔時間
        15M   retry time  重試延時從域名伺服器更新地址資料庫失敗以後,等待多長時間再次嘗試

         1W(1周)expire time    失效時間  聯繫主伺服器當聯繫了7天還是聯繫不到時,輔伺服器則殉情!在這7天中輔伺服器形式主伺服器的職責,從新選取主輔伺服器

         1D  negative answer ttl   否定答案的緩存時間  設置無效地址解析記錄(該資料庫中不存在的地址)的默認緩存時間


緩存域名伺服器
也稱為高速緩存伺服器
通過向其他域名伺服器查詢獲得域名->IP地址記錄
將域名查詢結果緩存到本地,提高重複查詢時的速度

主域名伺服器
特定DNS區域的官方伺服器,具有唯一性
負責維護該區域內所有域名->IP地址的映射記錄

從域名伺服器
也稱為 輔助域名伺服器
其維護的 域名->IP地址記錄 來源於主域名伺服器

 


區域傳送:主伺服器和輔伺服器同步
完全區域傳送: axfr   剛開始要完全傳送
增量區域傳送:  ixfr   完全以後的同步

tcp 53 主從伺服器的通信
主伺服器做出改變的時候會主動的同步到輔伺服器上

 

域名解析記錄
NS域名伺服器(Name Server)記錄
MX郵件交換(Mail Exchange)記錄
A地址(Address)記錄,只用在正向解析的區域數據文件中
CNAME別名(Canonical Name)記錄

例子:
@ IN    NS    ns1.6688.cc.
 IN    MX  10  mail.6688.cc.
ns1 IN    A     192.168.0.181
mail     IN    A     192.168.0.181
www     IN    A     192.168.0.181
ftp      IN    CNAME     www

解析類型
域名-->IP   正向解析
 IP-->域名  反向解析
一個正向或一個反向解析文件組成一個區域


區域:物理概念
域:邏輯概念

域可以劃分子域,正向解析,反向解析,
子域里也有正向解析和反向解析
每一個正向解析,反向解析都要具有一個解析庫
每一個解析庫對應一個區域

BIND簡介
在Linux中,域名服務(DNS)是由柏克萊網間名域(  Berkeley Internet Name Domain——BIND)軟體實現的。
BIND是一個客戶/服務系統,它的客戶方面稱為轉換程序(resolver),它產生域名信息的查詢,將這類信息發送給伺服器,DNS軟體回答轉換程序的查詢。BIND的服務方面是一個稱為named的守護進程。

BIND(Berkeley Internet Name Daemon)
伯克利Internet域名服務
官方站點:https://www.isc.org/

相關軟體包
bind-9.3.3-7.el5.i386.rpm

caching-nameserver-9.3.3-7.el5.i386.rpm
為配置BIND作為緩存域名伺服器提供必要的默認配置文件
可以在配置文件中稍作修改,讓它做為主伺服器用

BIND伺服器端程序
主要執行程序:/usr/sbin/named
服務腳本:/etc/init.d/named
默認監聽埠:53
主配置文件:
 /etc/named.conf
保存DNS解析記錄的數據文件位於:
 /var/named/

裝DNS
配置BIND伺服器
編輯“/etc/named.conf”文件
在“/var/named/”目錄下創建並編輯正向區域解析文件
在“/var/named/”目錄下創建並編輯反向區域解析文件
編輯客戶端文件“/etc/resolv.conf”文件

啟動BIND伺服器
配置客戶端並進行測試

確定需配置成DNS伺服器的IP是靜態分配,並且與客戶端具有IP的連通性

智能解析:一個主機名對應兩個ip地址叫負載均衡
      www.linuxidc.net

CDN:把用戶要訪問的數據推送到用戶的家門口

下面將告訴大家怎樣手動做DNS
做主DNS伺服器
1.rndc-confgen > /etc/rndc.conf
cat !$
把key "rndckey"{
          algorithm hmac-md5;
          secret "uAgAJYS+FB3xvAWoVxctGQ==";
};
 controls {
        inet 127.0.0.1 port 953
             allow { 127.0.0.1; } keys { "rndckey"; };
};
複製到/etc/named.conf配置文件中
vim /etc/named.conf
編寫options {
    directory "/var/named";
    querylog yes;啟動日誌
    version "hh";
};

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";
};

保存退出。
chmod o-r /etc/named.confd需要把它的許可權改為其他用戶沒有任何許可權
chgrp named /etc/named.conf 把屬組改為named
cd /var/named/
編寫區域文件named.ca localhost.zone named.local
dig -t NS . > /var/named/named.ca  獲取所有的記錄
編寫localhost.zone區域文件
vim localhost.zone
$TTL 43200
@  IN SOA   localhost. root.localhost. (
                      2011112401
                       3H
                       15M
                       1W
                       1D)
         IN   NS   localhost.
localhost.  IN  A   127.0.0.1
cp localhost.zone named.local
修改named.local
vim named.local
$TTL 43200
@  IN SOA   localhost. root.localhost. (
                      2011112401
                       3H
                       15M
                       1W
                       1D)
         IN   NS   localhost.
1 IN PTR localhost.
chown :named localhost.zone  named.*
named-checkconf  檢查主配置文件
named-checkzone  檢查區域文件
named-checkzone "localhost" localhost.zone

service named start啟動服務
tail /var/log/messages,查看日誌看是否有錯誤

vim /etc/named.conf
編輯正向解析和反向解析
zone "6688.cc" IN {
      type master;
      file "6688.cc.zone";
};
zone "0.168.192.in-addr.arpa" IN {
       type master;
       file 192.168.0.local";
};
cd /var/named
vim 6688.cc.zone
$TTl 600
$ORIGIN 6688.cc.
@ IN  SOA nsl.6688.cc. admin.6688.cc.(
     2011112401
      1H
       10M
      7D
      1D)
    IN  NS  nsl
    IN  NS  ns2
    IN MX  10 mail
    IN  MX  20 mail2
ns1  IN A  192.168.0.181
ns2  IN A  192.168.0.182
mail IN A  192.168.0.181
mail2 IN A  192.168.0.182
www  IN A  192.168.0.181
ftp  IN A  192.168.0.181
www2 IN CNAME www

cp 6688.cc.zone 192.168.0.local
vim 192.168.0.local 修改內容
$TTl 600
$ORIGIN 6688.cc.
@ IN  SOA nsl.6688.cc. admin.6688.cc.(
     2011112401
      1H
       10M
      7D
      1D)
    IN  NS  nsl
    IN  NS  ns2
    IN MX  10 mail
    IN  MX  20 mail2
181 IN  PTR ns1
182 IN  PTR ns2
181 IN  PTR mail
182 IN  PTR  mail2
181 IN  PTR www
181 IN  PTR ftp

chmod o-r 6688.cc.zone 192.168.0.local
chgrp named 6688.cc.zone 192.168.0.local
named-checkconf  檢查主配置文件
named-checkzone  檢查區域文件
service named restart
tail /var/log/messages
關閉selinux
setenforce 0
rndc是 dns遠程配置工具

rndc flush 清空linux的dns 緩存
rndc status 查看DNS的區域
rndc reload 重新讀取配置文件
rndc trace 2 調試第二個進程
rndc stop 停止服務
rndc notrace  停止調試
rndc freeze zone  讓某個區域不能工作
retransfer 重傳某個區域

配置從伺服器
和創建主伺服器一樣

rndc-confgen > /etc/rndc.conf
cat !$
把key "rndckey"{
          algorithm hmac-md5;
          secret "uAgAJYS+FB3xvAWoVxctGQ==";
};
 controls {
        inet 127.0.0.1 port 953
             allow { 127.0.0.1; } keys { "rndckey"; };
};
複製到/etc/named.conf配置文件中
vim /etc/named.conf
編寫options {
    directory "/var/named";
    querylog yes;啟動日誌
    version "hh";
};

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";
};

保存退出。
chmod o-r /etc/named.confd需要把它的許可權改為其他用戶沒有任何許可權
chgrp named /etc/named.conf 把屬組改為named
cd /var/named/
編寫區域文件named.ca localhost.zone named.local
dig -t NS . > /var/named/named.ca  獲取所有的記錄
編寫localhost.zone區域文件
vim localhost.zone
$TTL 43200
@  IN SOA   localhost. root.localhost. (
                      2011112401
                       3H
                       15M
                       1W
                       1D)
         IN   NS   localhost.
localhost.  IN  A   127.0.0.1
cp localhost.zone named.local
修改named.local
vim named.local
$TTL 43200
@  IN SOA   localhost. root.localhost. (
                      2011112401
                       3H
                       15M
                       1W
                       1D)
         IN   NS   localhost.
1 IN PTR localhost.
chown :named localhost.zone  named.*
named-checkconf  檢查主配置文件
named-checkzone  檢查區域文件
named-checkzone "localhost" localhost.zone

service named start啟動服務
tail /var/log/messages,查看日誌看是否有錯誤

dig -t axfr 6688.cc
vim /etc/named.conf
zone "6688.cc" IN {
    type slaves;
    file "slaves/6688.cc.zone";
    masters { 192.168.0.181; };
};

service named restart
tail /var/log/messages
關閉selinux
setenforce 0

測試:cd /var/named/slaves
cat 6688.cc.zone
看是否有主伺服器的正向解析,如果有,就成功了。然後把主伺服器的正向解析區域文件做一點修改,看是否可以同步。

子域授權:
在父域的正向解析配置文件中添加NS記錄和A記錄
有幾個NS伺服器就要寫幾條NS記錄以及對應的A記錄
如果想要子域可以解析父域可以再

在子域的配置文件中添加
forward:
zone "gagedu.com" IN {
    type forward;
    forwarders { 192.168.0.181; };
    forward only|first;
};
forward only 遞歸轉發
forward first 先嘗示遞歸,然後用迭代

也可以在全局使用forward,可以讓主機通過轉發主機訪問它所知道的域

options {
           forward only |first;
           forwarders {IP;};
 }
為了實現安全區域傳送需要加以限制
Allow-transfer {192.168.0.1}

Allow-transfer {none;}

在DNS中使用Acl 要先定義acl再使用
acl "name" {
  主機列表;
};
在要限定的區域寫allow-transfer { name; };允許傳送
allow-query { name; }; 允許誰查詢
在全局中用 allow-recursion { none; }; 不允許遞歸

智能DNS:
根據客戶端來源IP地址,來為某一個解析請求返回一個設定好的解析結果

每個view裡面都可以定義多個區域

只要我們使用了view,每一個區域都要在view裡面
用關鍵字match-clients 來匹配客戶端請求來源
view view-name{
    match-clients { 191.168.0.0/24; };
    zone
};
比較亂,大家多多包涵,有不足或錯誤的地方,大家一定要指出來。



[火星人 ] RedHat Linux 5 DNS伺服器配置詳解已經有605次圍觀

http://coctec.com/docs/net/show-post-68198.html