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
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の後に変更されたエントリ
dig-x IP:リバースクエリ、IPに基づいてFQDNを調べる
host-t RT NAME:対応する名前の解析結果をクエリー
nslookup:インタラクティブ
nslookup>
server IP
set q=RT
NAME
DNS関連プロファイル
①/etc/resolv.conf:DNSサーバを構成し、ホストドメイン名を宣言する
書式:
domain DOMAIN_NAME:ホストドメイン名の定義
serach DOMAIN1 MOMAIN2 ...:ドメイン名の検索リストの定義
nameserver IPADDR:DNSサーバのIPアドレスを定義する
②/etc/hosts:ローカルDNS解析リストの定義
書式:
IPADDR FQDN Aliases
192.168.0.150 www.cqy.com www
③/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
ドメイン名:ホスト名とも呼ばれ、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