redhat linux 5 dns

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  magedu.com.(該DNS區域的地址)  admin.magedu.com.  (    (該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.magedu.com.
 IN    MX  10  mail.magedu.com.
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.dnspod.cn      www.dns.la

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 "ting.com" IN {
      type master;
      file "ting.com.zone";
};
zone "0.168.192.in-addr.arpa" IN {
       type master;
       file 192.168.0.local";
};
cd /var/named
vim ting.com.zone
$TTl 600
$ORIGIN ting.com.
@ IN  SOA nsl.ting.com. admin.ting.com.(
     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 ting.com.zone 192.168.0.local
vim 192.168.0.local 修改內容
$TTl 600
$ORIGIN ting.com.
@ IN  SOA nsl.ting.com. admin.ting.com.(
     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 ting.com.zone 192.168.0.local
chgrp named ting.com.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 ting.com
vim /etc/named.conf
zone "ting.com" IN {
    type slaves;
    file "slaves/ting.com.zone";
    masters { 192.168.0.181; };
};

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

測試:cd /var/named/slaves
cat ting.com.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
};
比較亂,大家多多包涵,有不足或錯誤的地方,大家一定要指出來。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章