BIND 9 Configure Views To Partition External and Internal DNS Information

Views in BIND 9 are used to partition DNS information so that different DNS clients can see different sets of records. This can be useful in scenarios where you have both internal and external DNS clients that need to see different sets of records.

To configure views in BIND 9 to partition external and internal DNS information, you can follow these steps:

  1. Configure the external zone: First, you need to configure the external zone for your domain in the named.conf file. This zone should contain the DNS records that will be visible to external clients. For example:
zone "example.com" {
type master;
file "/var/named/example.com.external";
};
  1. Configure the internal zone: Next, you need to configure the internal zone for your domain in the named.conf file. This zone should contain the DNS records that will be visible to internal clients. For example:
zone "example.com" {
type master;
file "/var/named/example.com.internal";
};
  1. Configure the views: Finally, you need to configure the views in the named.conf file. Views allow you to partition the DNS information so that external and internal clients see different sets of records. For example:
view "external" {
match-clients { any; };
zone "example.com" {
type master;
file "/var/named/example.com.external";
};
};

view "internal" {
match-clients { localnets; };
zone "example.com" {
type master;
file "/var/named/example.com.internal";
};
};

In this example, we have defined two views: external and internal. The external view matches any client, and it uses the external zone file for the example.com domain. The internal view matches clients on the local network, and it uses the internal zone file for the example.com domain.

After configuring the views, you need to restart the BIND 9 service to apply the changes:

systemctl restart named

With these configurations, external clients will see the DNS records defined in the example.com.external file, while internal clients will see the DNS records defined in the example.com.internal file.

Leave a Comment