bindにてルータ内外で違う結果を返すnamed.conf の書き方

  • 投稿日:
  • by
  • カテゴリ:

ルータにて「53 tcp/udp」を開放し、ルータ内のDNS(bind)を公開するとき、ルータ内(intranet)からとルータ外(internet)の問い合わせ(query)に対して、それぞれ違う答えを返すnamed.confの書き方。

  • aclでintranetのIPアドレス範囲を指定する
  • viewの条件が一致したとき、{...;}に囲われたアクションが実施される。
  • 冒頭のoptionで指定したallow-queryよりも、view内の記述が優先される。

ということで、実例。

acl "intranet" {
192.168.0.0/16;
127.0.0.0/16;
localhost;
};

options {

recursion yes;
allow-query { intranet; };
allow-recursion { intranet; };
allow-query-cache { intranet; };
allow-transfer { none; };
dnssec-validation no;

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { none; };

};

view "intra" {
match-clients {
intranet;
};

zone "localhost" {
type master;
file "/usr/local/etc/namedb/master/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/usr/local/etc/namedb/master/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/usr/local/etc/namedb/master/db.0";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "/usr/local/etc/namedb/master/db.192";
};

zone "match.for-the.biz" {
type master;
file "/usr/local/etc/namedb/master/intra-for-the-biz_zone";
};

};

view "internet" {
match-clients {
any;
};

zone "match.for-the.biz" {
type master;
file "/usr/local/etc/namedb/master/for-the-biz_zone";
allow-query { any;};
};

zone "197.84.176.115.in-addr.arpa" {
type master;
file "/usr/local/etc/namedb/master/for-the-biz.rev";
allow-query { any;};
};

};

なお、環境は既出のようにFreeBSD/Rpi3である。