CentOS Stream 8
Sponsored Link

BIND : View ステートメントを使用する2021/02/24

 
[named.conf] で View ステートメントを使用する場合の設定です。
View ステートメントにより、アクセス元の IP アドレスに応じて、検索クエリーに応答するゾーン情報を分けることができます。
例として、こちらで例示の内部ネットワーク向けの設定と、 こちらで例示の外部ネットワーク向けの設定を、View ステートメントを使用して、まとめて設定します。
[1] 下例は、ローカルネットワーク [10.0.0.0/24], 外部ネットワーク [172.16.0.80/29], ドメイン名 [srv.world] の環境の場合の設定です。
( 例示の [172.16.0.80/29] は実際にはプライベート用の IP アドレスです。自身が所有するグローバル IP アドレスに置き換えてください )
[root@dlp ~]#
vi /etc/named.conf
.....
.....
# 追記 : 自身のローカルネットワークを定義
acl internal-network {
        10.0.0.0/24;
};

options {
        # 変更 ( 全てリスンする )
        listen-on port 53 { any; };
        # 必要に応じて変更 ( IPv6 でリスンしない場合は [none] を指定 )
        listen-on-v6 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        # 定義したローカルネットワークを追記
        # 名前解決の問い合わせを受け付ける範囲
        allow-query     { localhost; internal-network; };
        # ゾーン情報の転送要求を許可する範囲
        # セカンダリーサーバーが存在する場合は必要に応じて追加
        allow-transfer  { localhost; };

        .....
        .....

        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

# これより以下は全行変更
# 内部ネットワーク向けのゾーンを定義
view "internal" {
        match-clients {
                localhost;
                internal-network;
        };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "srv.world" IN {
                type master;
                file "srv.world.lan";
                allow-update { none; };
        };
        zone "0.0.10.in-addr.arpa" IN {
                type master;
                file "0.0.10.db";
                allow-update { none; };
        };
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};

# 外部ネットワーク向けのゾーンを定義
view "external" {
        # 内部ネットワーク向けの [match-clients] 以外の全てを対象
        match-clients { any; };
        allow-query { any; };
        # 再帰的な検索は許可しない
        recursion no;
        zone "srv.world" IN {
                type master;
                file "srv.world.wan";
                allow-update { none; };
        };
        zone "80.0.16.172.in-addr.arpa" IN {
                type master;
                file "80.0.16.172.db";
                allow-update { none; };
        };
};
[2]
関連コンテンツ