#1日目
##DNSについて
・代表的なDNSサーバソフトウェア:BIND
・サーバーデーモン:named
・DNSサーバーに問い合わせて名前解決するコマンド:
nslookup [オプション] [ホスト名/ドメイン名/IPアドレス]
オプション | 説明 |
---|---|
-type=レコード | リソースレコードタイプを指定する |
-norecurse | 再帰的な問い合わせをしない |
host [オプション] ホスト名/ドメイン名/IPアドレス [問い合わせ先DNSサーバー]
オプション | 説明 |
---|---|
-t タイプ | リソースレコードタイプを指定する |
-v | 詳細な情報を指定する |
dig [@問い合わせ先DNSサーバー] ホスト名/ドメイン名/IPアドレス [クエリタイプ]
↓主なオプション
オプション | 説明 |
---|---|
-x | 指定されたIPアドレスの逆引き |
-p ポート番号 | 問い合わせ先のポート番号を指定 |
↓使えるクエリ
オプション | 説明 |
---|---|
a | ホスト名に対応するIPアドレス(デフォルト) |
ptr | IPアドレスに対応するホスト名 |
mx | メールサーバー |
soa | SOAレコード情報 |
hinfo | ホスト情報 |
exfr | ゾーン転送 |
txt | 任意の文字列 |
any | すべての情報 |
##BINDの設定
・Bindの設定ファイル:/etc/named.conf
・いくつかのステートメントと、オプションから構成
・オプションの末尾には[ ; ]を記載
###ステートメント一覧
|ステートメント|説明|
|:-----------:|:------------:|:------------:|
|acl|ACLの定義||
|controls|named(rndc)を操作できるホストの指定||
|include|外部ファイルの読み込み||
|key|認証情報の設定||
|options|namedの動作に関する詳細設定||
|zone|ゾーンの定義||
構文)
acl ACL名 {
アドレスマッチリスト
}
例)
acl group1 {
192.168.120.0/24;
192.168.120.0/24;
}
構文)include "ファイル名";
例)include "/etc/*******";
構文)directory ディレクトリパス;
|オプション|説明|
|:-----------:|:------------:|:------------:|
|directory|ゾーンファイルの格納先|
|datasize|データセグメントサイズ上限||
|coresize|コアファイルのサイズ上限||
|max-cachesize|最大キャッシュサイズ||
|recursion yes/no |再帰的問い合わせを受け付けるか否か||
|recursive-clients|再帰問い合わせの最大同時接続数||
|allow-query|問い合わせを受け付けるホスト||
|allow-recursion|再帰的な問い合わせを受け付けるホスト||
|allow-transger|ゾーン転送を許可するホスト||
|allow-update|ゾーン情報の動的アップデートを受け付けるホスト||
|blackhole|問い合わせを受け付けないホスト||
|forwarders {IPアドレス}|回送先DNSサーバー||
|forward onry/first|回送方法||
|notify|ゾーンデータの情報をスレーブサーバーに通知するか否か||
|version|バージョン表示||
例)contlols {
inet 127.0.0.1 allow { localhost ;};
};
■ゾーンのタイプ
|オプション|説明|
|:-----------:|:------------:|:------------:|
|hinit|ルートDNSサーバーの指定|
|master|指定したゾーンに対してマスターDNSサーバーである||
|slave|指定したゾーンに対してスレーブDNSサーバーである||
例)zone "example.net" {
type master ;
file "example.net.zone"
};
例)zone "example.net" {
type slave ;
file "example.net.zone"
master { 192.168.120.2 ; };
};
##rndc
構文)rndc [サブコマンド]
|サブコマンド|説明|
|:-----------:|:------------:|:------------:|
|stop|namedを終了||
|refresh|ゾーンデータをリフレッシュ||
|stats|統計情報を書き出す||
|status|namedのステータスを表示||
|dumpdb|キャッシュの内容をファイルに出力||
|reload ドメイン|指定したゾーンファイルを再読み込み||
|halt|namedを直ちに終了する||
##ゾーンファイル
■named.confのoptionステートメントで指定した配置場所へ
■zoneステートメントで指定したゾーンファイル名で
■$ORIGINでディレクティ:ドメイン名が明示されていないレコードで補完するドメイン名
■$TTLディレクティブ:ゾーンデータをキャッシュに保管しておく時間
■リソースレコード内にゾーンの情報を記載する
名前 [TTL値] IN リソースレコ^ドタイプ 値
|リソースレコードタイプ|説明|
|:-----------:|:------------:|:------------:|
|SOA|管理情報の記載||
|NS|ゾーンを管理するDNSサーバーを記載||
|MX|メールサーバーを記載||
|A|ホスト名に対応するIPアドレスを記載(正引き)||
|AAAA|ホスト名に対応するIPアドレスを記載:ipv6(正引き)||
|CNAME|ホスト名の別名||
|PRT|IPアドレスに対応するホスト名||
###詳解
■SOAレコード:ゾーンに関する基本的な情報の記載
構文)
名前 IN SOA DNSサーバー 管理者メールアドレス (
シリアル番号;Serial
マスターのゾーン情報変更をチェックする間隔;Refresh
スレーブ⇒マスターからの再試行;Retry
スレーブ⇒マスターへアクセスできない場合のゾーン情報破棄までの時間;Expire
存在しないドメインに関するキャッシュ;Negative TTL
■NSレコード:DNSサーバーをFQDMで指定
構文)名前 IN NS DNSサーバー名
例)
example.net. IN NS ns.eample.net
example.net. IN NS ns2.eample.net
■mxレコード:メールサーバー名を指定
構文)名前 IN MX プリファレンス値 メールサーバー名
例)
example.net. IN 10 MX ns.example.net
example.net. IN 20 MX ns2.example.net
■Aレコード:ホスト名に対応するIPアドレス記載
構文)ホスト名 IN A IPアドレス
例)ns.eample.net IN A 10.10.0.4
■AAAAレコード:ホスト名に対応するIPV6アドレス記載
構文)ホスト名 IN AAAA IPv6アドレス
■CNAMEレコード:ホスト名の別名を設定
構文)別名 IN CNAME ホスト名
例)host2.example.net IN CNAME host1.example.net
■PTRレコード:Aレコードの逆引き用
構文)IPアドレス IN PTR ホスト名
例)10.10.10.10.example.net IN PTR mx.example.net
###ゾーンファイルの構文チェック
named-checkzone [オプション] ゾーン名 ゾーンファイル名
|オプション|説明|
|:-----------:|:------------:|:------------:|
|-t ディレクトリ|chrootしている場合にはそのディレクトリを指定||
|-w ディレクトリ|ゾーンファイルを置いているディレクトリを指定||
##DNSのセキュリティ
■DNSSEC
公開鍵暗号方式の電子証明を行い、ゾーンの改ざんがされていない事を保証
■TSIG
共有秘密鍵を利用し、ゾーンの改ざんがされていない事を保証