DNSサーバには、「キャッシュサーバ」として「コンテンツサーバ(権威サーバ)」としての使い方があります。
1台のDNSサーバで、
イントラ向けには再起問合わせを受けつつ、社内ドメインのゾーンを提供する。
外部向けには再起問合わせを拒否しつつ、社外ドメインのゾーンを提供する。
といったケースも出てきます。
この場合は、VIEWを使うことで実現が可能となります。
======================================
options {
(略)
}
②match-clientで指定したクライアントに対してのみ、そのVIEWステートメント内に記述した動作をします。
③内部向けのVIEWなので再起問合わせを許可
④イントラゾーンを定義
⑤VIEWを定義。ここでは外部向けのVIEWを定義。
⑥その他ネットワークを定義
⑦再起問合わせを拒否。(オープンリゾルバ問題)
⑧外部向けゾーン「dns-test.com」を定義
この設定では、192.168.1.0/24からの問合わせに対しては、再起問合わせを許可し、社内ゾーン「office」の情報を提供する。それ以外のクライアントからの問合わせに対しては、再起問合わせを拒否し、外部ゾーンdns-test.comの情報を提供します。
★VIEWステートメント利用時の注意点
①VIEWステートメントは頭から順に評価される。
例えば、外部ゾーン向けビューのmatch-clientsでは「any」を指定しているため、これを頭に記述してしまうと、全て外部ゾーン向けのビューにマッチしてしまいます。
②VIEWステートメント利用時のZONEステートメントの書き方
VIEWステートメントの中では、ZONEステートメントやRecursion文のほか、optionsステートメント内に記述できる文の多くが記述できます。OptionsステートメントとVIEWステートメントで指定が重複した場合、VIEWステートメントが優先されます。ただし、「VIEWステートメントを利用する際には、ZONEステートメントは必ずVIEW内に入れる必要がある」という点に注意が必要です。
VIEWを利用していて、かつZONEステートメントをVIEWの外に記述すると、構文エラーになります。
★match-licent以外の絞込み
「match-destination」
「match-recursive-only」
★VIEWステートメントの問題点
ゾーン転送を行なう際には「allow-transfer」を記述します。
上記の例ですと、
VIEWステートメント内の内部ゾーン「office」と外部ゾーン「test-dns.com」の両方にallow-transferを記述することになります。
内部ゾーン「office」と外部ゾーン「test-dns.com」を持つスレーブサーバを用意し、ゾーン転送を行うとします。
しかし、192.168.1.0/24内にあるスレーブサーバからのリクエストは内部ゾーンのみにマッチしますので、外部ゾーン「dns-test.com」のゾーン転送が受け取れないということになります。
1台のDNSサーバで両方のゾーンのスレーブサーバを構築しようとするとIPアドレスが2つあるホストを使うか、rsyncやsftpなど、ファイルを転送するツールを使ってゾーンファイルを取得する手段が必要になります。
本日はココまで!
・1台のDNSサーバで内部向け、外部向けゾーンを構築する場合はVIEWを使う。
・VIEWで送信元のアドレスにマッチさせて、内部・外部ゾーンの情報提供を振り分ける
・VIEWは頭から評価される。
・スレーブサーバを立てる場合、ゾーン転送の問題が発生する。
1台のDNSサーバで、
イントラ向けには再起問合わせを受けつつ、社内ドメインのゾーンを提供する。
外部向けには再起問合わせを拒否しつつ、社外ドメインのゾーンを提供する。
といったケースも出てきます。
この場合は、VIEWを使うことで実現が可能となります。
======================================
options {
(略)
}
view naibu { ① match-clients { 192.168.1.0/24; }; ② recursion yes; ③①VIEWを定義。ビュー名(naibu、gaibu)は任意のものでかまいません。
incluede "/etc/named.rfc1912.zones";
zone "office" IN { ④
type master;
file "office.zone"
allow-update { none; };
};
};
view gaibu { ⑤
match-clients { any; }; ⑥ recursion no; ⑦
zone "dns-test.com" IN { ⑧
type master;
file "dns-test.zone"
allow-update { none; };
};
};
======================================
②match-clientで指定したクライアントに対してのみ、そのVIEWステートメント内に記述した動作をします。
③内部向けのVIEWなので再起問合わせを許可
④イントラゾーンを定義
⑤VIEWを定義。ここでは外部向けのVIEWを定義。
⑥その他ネットワークを定義
⑦再起問合わせを拒否。(オープンリゾルバ問題)
⑧外部向けゾーン「dns-test.com」を定義
この設定では、192.168.1.0/24からの問合わせに対しては、再起問合わせを許可し、社内ゾーン「office」の情報を提供する。それ以外のクライアントからの問合わせに対しては、再起問合わせを拒否し、外部ゾーンdns-test.comの情報を提供します。
★VIEWステートメント利用時の注意点
①VIEWステートメントは頭から順に評価される。
例えば、外部ゾーン向けビューのmatch-clientsでは「any」を指定しているため、これを頭に記述してしまうと、全て外部ゾーン向けのビューにマッチしてしまいます。
②VIEWステートメント利用時のZONEステートメントの書き方
VIEWステートメントの中では、ZONEステートメントやRecursion文のほか、optionsステートメント内に記述できる文の多くが記述できます。OptionsステートメントとVIEWステートメントで指定が重複した場合、VIEWステートメントが優先されます。ただし、「VIEWステートメントを利用する際には、ZONEステートメントは必ずVIEW内に入れる必要がある」という点に注意が必要です。
VIEWを利用していて、かつZONEステートメントをVIEWの外に記述すると、構文エラーになります。
★match-licent以外の絞込み
「match-destination」
match-destination { 192.168.x.0/24; };送信元では無く、宛先にマッチさせるというものです。
「match-recursive-only」
match-recursive-only yes;yesを指定するとクエリが再起問合わせである場合にのみ、そのビューが適用されます。
★VIEWステートメントの問題点
ゾーン転送を行なう際には「allow-transfer」を記述します。
上記の例ですと、
VIEWステートメント内の内部ゾーン「office」と外部ゾーン「test-dns.com」の両方にallow-transferを記述することになります。
内部ゾーン「office」と外部ゾーン「test-dns.com」を持つスレーブサーバを用意し、ゾーン転送を行うとします。
しかし、192.168.1.0/24内にあるスレーブサーバからのリクエストは内部ゾーンのみにマッチしますので、外部ゾーン「dns-test.com」のゾーン転送が受け取れないということになります。
1台のDNSサーバで両方のゾーンのスレーブサーバを構築しようとするとIPアドレスが2つあるホストを使うか、rsyncやsftpなど、ファイルを転送するツールを使ってゾーンファイルを取得する手段が必要になります。
本日はココまで!
・1台のDNSサーバで内部向け、外部向けゾーンを構築する場合はVIEWを使う。
・VIEWで送信元のアドレスにマッチさせて、内部・外部ゾーンの情報提供を振り分ける
・VIEWは頭から評価される。
・スレーブサーバを立てる場合、ゾーン転送の問題が発生する。
コメント