2012/10/17 (水)
2012-10-17:bind9のaclで「とあるセグメント、ただしヤツは除く」
LAN 内においている DNS で、同じ LAN 内のクライアントからの問い合わせには内側用のゾーンを、ルータ経由で外からきた問い合わせには外側用のゾーンで回答、ということがしたくなった。
この要望自体は bind9 の view という機能で実現ができる。
具体的には named.conf で、
view "internal" { match-clients { 内側にいる子たち; }; zone "." IN { type hint; file "named.ca"; }; zone "exsample.com" { type master; file "/var/named/zone/int_exsample.com"; }; .... }; view "external" { match-clients { any; }; zone "." IN { type hint; file "named.ca"; }; zone "exsample.com" { type master; file "/var/named/zone/ext_exsample.com"; }; ....
こんな感じで書く。
それぞれの view の中の match-clients に対象指定があり、view を上から見てってマッチしたらその view の中で指定の zone が適用される仕組み。
で、今回のお題。
192.168.0.0/24 のセグメントで 192.168.0.2-255 は internal、192.168.0.1 と 192.168.0.0/24 以外は external
がしたい。
192.168.0.2 から先を一個一個書いていく、という漢らしいことをするのも考えたけど、、、ちゃんと書き方があるのね。
正解は
match-clients { !192.168.0.1/32; 192.168.0.0/24; };
でした。
ビックリマーク使えるとはビックリ(とベタなギャグ