Linux学習ノート―DNSサーバ


DNS(Domain Name Systemドメイン名システム):インターネット上のドメイン名からIPアドレスへのマッピングを提供する
ドメイン名:ホスト名とも呼ばれ、FQDN(Full Qualified Domain Name完全限定ドメイン名)
基本情報:
Linuxでは通常bindサービスを使用してDNSサーバを提供する
アプリケーション層プロトコル
UDP 53ベースポート番号:クエリー用
TCP 53ベースポート番号:マスタスレーブサーバ用データ同期
TCP 953ポート番号に基づく:rndcはDNSサーバをリモート制御するために使用される
解析方法:
順方向:FQDN<-->IP
逆:IP<-->FQDN
解析順序:
ローカルDNSキャッシュ-->/etc/hostsファイル-->DNSサーバ
クエリー方法:
再帰クエリ:ローカルDNSサーバからのリクエストは1回のみ
反復クエリ:ローカルDNSサーバから複数リクエスト
解析プロセスは通常、ローカルホストからローカルDNSサーバへの再帰クエリ、ローカルDNSサーバからの反復クエリの2つのセグメントで行われます.
DNSサーバのタイプ:
メインDNSサーバ:指定されたエリアのドメイン名情報の維持を担当する
セカンダリDNSサーバ:プライマリDNSサーバにリアルタイムでデータを同期し、スタンバイサーバ
キャッシュDNSサーバ:ドメイン名データベースがなく、キャッシュクエリの結果のみを次の直接使用可能
DNSサーバの転送:クエリー要求を受け取った時、キャッシュの中で検索して、もし調べられないならば要求を指定のDNSサーバに転送します
マスタスレーブがデータを同期する場合、ゾーン転送のタイプ
フルゾーン転送:axfr
インクリメンタルゾーン転送:ixfr
bind 97組成:
/etc/named.conf
namedプロセスの作業プロパティ
領域の定義
/etc/rndc.key
rndc:Remote Name Domain Controller
キーファイル
構成情報:/etc/rndc.conf
/var/named/
ゾーンデータファイル
/etc/rc.d/init.d/named
{start|stop|restart|status|reload}
/usr/sbin/named:バイナリファイル
一般的なコマンド:
named-checkconf:検出構成/etc/named.confに構文エラーがあるかどうか
    named-checkzone "ZONE_NAME"/path/to/zone_data_file
[root@localhost ~]# named-checkzone "cqy.com" /var/named/cqy.com.zone 
zone cqy.com/IN: fin.cqy.com/NS 'ns1.fin.cqy.com' (out of zone) has no addresses records (A or AAAA)
zone cqy.com/IN: market.cqy.com/NS 'ns1.marknet.cqy.com' has no address records (A or AAAA)
zone cqy.com/IN: loaded serial 2015081901
OK

    dig:Domain Information Gropher
+[no]recurse:再帰クエリーを使用するかどうか
+[no]trace:クエリー・プロシージャ全体をトレース表示
    dig -t ZONE_TYPE NAME@IP:指定IPへNAME対応のZONE_を調べるTYPEレコード、@IPは省くことができて、省略は設置するDNSサーバーに調べるのです
-t axfr:完全領域転送、すべてのデータエントリを表示
-t IXFR=serial number:serial numberの後に変更されたエントリ
[root@localhost ~]# dig -t NS  cqy.com

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NS cqy.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21531
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;cqy.com.			IN	NS

;; ANSWER SECTION:
cqy.com.		43200	IN	NS	ns1.cqy.com.

;; ADDITIONAL SECTION:
ns1.cqy.com.		43200	IN	A	192.168.0.150

;; Query time: 2 msec
;; SERVER: 192.168.0.150#53(192.168.0.150)
;; WHEN: Thu Aug 20 02:16:37 2015
;; MSG SIZE  rcvd: 59
[root@localhost ~]# dig -t A www.baidu.com @192.168.0.1

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t A www.baidu.com @192.168.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17896
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		648	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	600	IN	A	180.97.33.108
www.a.shifen.com.	600	IN	A	180.97.33.107

;; Query time: 33 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Aug 20 02:17:53 2015
;; MSG SIZE  rcvd: 90

dig-x IP:リバースクエリ、IPに基づいてFQDNを調べる
host-t RT NAME:対応する名前の解析結果をクエリー
[root@localhost ~]# host -t NS cqy.com
cqy.com name server ns1.cqy.com.
[root@localhost ~]# host -t A www.cqy.com
www.cqy.com has address 192.168.0.151

nslookup:インタラクティブ
    nslookup>
    server IP
    set q=RT
    NAME 
[root@localhost ~]# nslookup
> exit

[root@localhost ~]# nslookup
> server 192.168.0.150
Default server: 192.168.0.150
Address: 192.168.0.150#53
> set q=A
> www.cqy.com
Server:		192.168.0.150
Address:	192.168.0.150#53

Name:	www.cqy.com
Address: 192.168.0.151

DNS関連プロファイル
①/etc/resolv.conf:DNSサーバを構成し、ホストドメイン名を宣言する
書式:
domain DOMAIN_NAME:ホストドメイン名の定義
serach DOMAIN1 MOMAIN2 ...:ドメイン名の検索リストの定義
nameserver IPADDR:DNSサーバのIPアドレスを定義する
[root@localhost ~]# cat /etc/resolv.conf 
search localdomain
nameserver 192.168.0.1

②/etc/hosts:ローカルDNS解析リストの定義
書式:
IPADDR    FQDN    Aliases
192.168.0.150    www.cqy.com    www
[root@localhost ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1		localhost.localdomain localhost
::1		localhost6.localdomain6 localhost6

 
③/etc/named.conf:namedプロセスの作業属性を定義し、領域を定義します.
option形式:
option {
    OPTIONS1;
    OPTIONS2;
    ...
};
一般的なoptionオプション
    directory "path/to/directory";:作業ディレクトリの定義
    recursion {yes|no};:再帰クエリの定義
allow-query{セグメント|IPアドレス|ホスト名;...};クエリー可能なリストの定義
allow-transefer{セグメント|IPアドレス|ホスト名;...}ゾーン転送可能なリストの定義
        none;:すべてを禁止する
        any;:すべてを許す
    notify yes;:変更後の通知サーバからの更新
forward {only|first}; 転送メカニズムを選択して、onlyはただ転送して、firstは先に転送して、結果は更にルートに転送しません
querylog yes;: ログを開いてクエリー結果を記録し、/var/log/messageにログを保存
zone形式:
zone "ZONE NAME"IN {
type {master|slave|hint|forward};
    file "path/to/zone_data_file";:作業ディレクトリの下の領域のデータファイルのパス
    OPTIONS1;
    ...
};
領域タイプ:
メインエリア:master
From Area From Area:slave
ヒント領域:hint、ルートがどこにあるか定義
転送エリア:forward
logging形式:
logging {
    channel CHANNEL_NAME {
        OPTIONS1;
        OPTIONS2;
        ...
    };
    category queries { CHANNEL_NAME; };
    
    channel...
    ...
};
aclフォーマット:aclは、複数のセグメントまたはIPアドレスまたはホストを定義するために使用されます.
acl ACL_NAME {
セグメント1;
セグメント2;
IPアドレス3;
    ...
};
viewフォーマット:viewを使用する場合は、すべてのzoneをviewに含める必要があります.
view VIEW_NAME {
match-clients{acl|セグメント|IPアドレス|ホスト;};
    zone...
    ...
};
④/var/named/下のエリアデータファイル
ゾーンデータファイルにおけるリソースレコードRRのフォーマット
$TTL 600をグローバルに定義できます.
NAME[TTL]IN RRT(リソースレコードタイプ)VALUE
RRTリソースレコードタイプ:
SOA(Start Of Authority):データ同期の完了方法を示すRRの最初の項目である必要があります.
ZONENAME    TTL    IN    SOA    FQDN    ADMINISTRATOR_MAILBOX(
                    serial number
                    refresh
                    retry
                    expire
                    na ttl )
時間単位:M(分)、H(時間)、D(日)、W(週)、デフォルト単位は秒
メールアドレス:admin.cqy.com
cqy.com.    600    IN    SOA    ns1.cqy.com   admin.cqy.com. 20150819 1H 5M 1W 1D
cqy.com.    600    IN    SOA    ns1.cqy.com   admin.cqy.com.(
                          20150819 
                          1H 
                          5M 
                          1W 
                          1D )
NS(Name Server):ZONE_NAME-->FQDN
cqy.com.    600    IN    NS    ns1.cqy.com.
ns1.cqy.com. 600    IN    A     1.1.1.2
cqy.com.    600    IN    NS    ns2.cqy.com.
ns2.cqy.com. 600    IN    A     1.1.1.5
MX(Mail eXchanger):ZONE_NAME-->FQDN
ZONE NAME    TTL    IN    MX    pri VALUE
cqy.com.    600    IN    MX    10 mail.cqy.com.
mail.cqy.com. 600   IN    A     1.1.1.3
優先度:0~99、数値が小さいほど優先度が高くなります.
A(address):FQDN->IPv 4は、順方向領域のデータファイルでのみ定義できます
ns1.cqy.com.    600    IN    A    1.1.1.2
ns2.cqy.com.    600    IN    A    1.1.1.5
PTR(pointer):IP-->FQDNは逆方向領域のデータファイルでのみ定義できます
150.0.168.192.in-addr.arpa.    IN    PTR    ns1.cqy.com
CNAME(canonical NAME正式名称):FQDN->FQDN
www2.cqy.com. IN    CNAME    www.cqy.com
その他のタイプ:
AAAA:FQDN-->IPv6
TXT
CHAOS
SRV