With these security concerns now established, let's look at a typical Internet connectivity design and specifically at the way the DNS servers would be configured. Below is a diagram of a typical large company which has several internal and external resources which require DNS services.
There are several items which should be noted about this example network before we begin discussing the DNS configurations. These items are:
With these details in mind, let's look at how this would affect the DNS
architecture. We will go through the thought process of configuring the external DNS server first and then we will discuss the internal DNS server.
After installing the DNS service on the Windows NT Server-based machines (that is dns-server1 and dns-server2), we use the Microsoft DNS Manager tool to create a primary zone for domain acme.com and a reverse lookup primary zone for 100.250.192.in-addr.arpa on dns-server1. This will create an SOA record which contains the primary name server "dns-server1.acme.com." and the e-mail address for the administrator of the DNS server "web-master@acme.com" as well as a separate NS record for dns-server1. Since the remaining default parameters for this zone are sufficient, we will not modify them and the defaults will be placed in the SOA record.
The following additional records must be created in the acme.com domain and should be done with the "Create Associated PTR Record" enabled where applicable.
Name server records (NS) should be created for dns-server2 and dns13.my-isp.com. Mail exchange records (MX) should be created for mail-server1 and mail-server2. We will set the preference for both of these to 10 for equal load balancing. Address records (A) should be created for each of the computers which connect directly to the "Exposed Internet Network."
The actual name of the gopher server in our example is "gopher-server1.acme.com". The "defacto" standard for supplying services on the Internet is to serve them on computers with host names that correspond with the service being supplied. To allow users to easily locate our gopher service by connecting to the standard "gopher.acme.com", we will use a canonical name (that is alias) for this server. To do this, we create a canonical name record (CNAME) for "gopher" and associate it with "gopher-server1".
Since there are multiple mirrored web servers and FTP servers providing services to external users, there needs to be a way of grouping these so that load balancing across the servers can occur. There are several ways to do this with "round robin" techniques. The method which we will use here is to associate each of the mirrored servers with the same alias name. We will use the popular names of the services as the alias (that is www, FTP, etc.) which will allow easier location of the services by users. To do this, we create a canonical name record (CNAME) for each of the mirrored servers with the service name as the alias and the server name for the host. With this arrangement, each query to a particular DNS server for a particular server name using its alias (that is www.acme.com), will return the list of servers in a "round robin" fashion with a different server being listed first in the list each time. Since most resolvers try the first returned entry first, as described previously in this paper, this will provide load balancing between servers.
Once this zone has been setup on the primary DNS server, the acme.com and 100.250.192.in-addr.arpa zones should be created on the secondary DNS servers. These secondary zones should be pointing back to the primary DNS server as the master for the zone transfers.
Here is the resulting zone file for the external DNS servers:
;----------------------------------------------------------------------------------- ; ; Database file acme.dns for acme.com. zone. (External DNS Server) ; Zone version: 10 ; @ IN SOA dns-server1.acme.com. web-master.acme.com. ( 10 ; serial number 3600 ; refresh 600 ; retry 86400 ; expire 3600 ) ; minimum TTL ; ; Zone NS records ; @ IN NS dns-server1 @ IN NS dns-server2 @ IN NS dns13.my-isp.com. ; ; Zone records ; @ IN MX 10 mail-server1 @ IN MX 10 mail-server2 dns-server1 IN A 192.250.100.11 dns-server2 IN A 192.250.100.12 FTP-server1 IN A 192.250.100.41 FTP-server2 IN A 192.250.100.42 gopher-server1 IN A 192.250.100.31 mail-server1 IN A 192.250.200.81 mail-server2 IN A 192.250.200.82 proxy-server1 IN A 192.250.100.101 proxy-server2 IN A 192.250.100.102 proxy-server3 IN A 192.250.100.103 ; www-server1 IN A 192.250.100.21 www-server2 IN A 192.250.100.22 www-server3 IN A 192.250.100.23 www-server4 IN A 192.250.100.24 ; FTP IN CNAME FTP-server1 FTP IN CNAME FTP-server2 ; gopher IN CNAME gopher-server1 ; www IN CNAME www-server1 www IN CNAME www-server2 www IN CNAME www-server3 www IN CNAME www-server4 ; ;-----------------------------------------------------------------------------------
After installing the DNS service on the Windows NT Server-based machines (that is dns-internal1 and dns-internal2), we use the Microsoft DNS Manager tool to create a primary zone for the internal domain acme.com and a reverse lookup primary zone for 200.55.157.in-addr.arpa on dns-internal1. This will create an SOA record which contains the primary name server "dns-internal1.acme.com." and the e-mail address for the administrator of the DNS server "web-master@acme.com" as well as a separate NS record for dns-internal1. Since the remaining default parameters for this zone are sufficient, we will not modify them and the defaults will be placed in the SOA record.
After creating these zones, we will enable WINS Lookup on the acme.com zone and enter the IP addresses of the two internal WINS servers. This will create a WINS record (WINS) in this zone file. We will also enable WINS Reverse Lookup on the 200.55.157.in-addr.arpa zone and enter the DNS host domain as "acme.com.". This will create a WINS reverse lookup record (WINS-R) in this zone file.
The following additional records must be created in the internal acme.com domain and should be done with the "Create Associated PTR Record" enabled where applicable.
A name server record (NS) should be created for dns-internal2. Address records (A) should be created for each of the computers which connect directly to the "Isolated Corporate Network" which are not WINS clients. It may be that all of the servers within the corporate network are WINS aware and therefore no static entries would be needed, but just to show how you can mix static entries with WINS, we will statically define the proxy servers and the DNS servers in the DNS zone file. We will also create a "localhost" address record for the local address 127.0.0.1.
Since there are multiple mirrored web servers providing services to internal users, we will use the "round robin" technique using canonical names as we did on the external network and associate these mirrored servers with "corpweb.acme.com". The difference here is that there are no associated address records (A) for the internal Web servers (that is www-internal1, www-internal2, www-internal3) since these are WINS clients and the DNS server will query the WINS server for these addresses when needed.
Once this zone has been setup on the primary DNS server, the acme.com and 200.55.157.in-addr.arpa zones should be created on the secondary DNS server. These secondary zones should be pointing back to the primary DNS server as the master for the zone transfers.
Here is the resulting zone file for the internal DNS servers:
;-----------------------------------------------------------------------------------
; ; Database file acme.dns for acme.com. zone. (Internal DNS Server) ; Zone version: 12 ; @ IN SOA dns-internal1.acme.com. web-master.acme.com.( 12 ; serial number 3600 ; refresh 600 ; retry 86400 ; expire 3600 ) ; minimum TTL ; ; Zone NS records ; @ IN NS dns-internal1 @ IN NS dns-internal2 ; ; WINS lookup record ; @ IN WINS 157.55.200.91 157.55.200.92 ; ; Zone records ; dns-server1 IN A 157.55.200.11 dns-server2 IN A 157.55.200.12 proxy-server1 IN A 192.250.100.101 proxy-server2 IN A 192.250.100.102 proxy-server3 IN A 192.250.100.103 localhost IN A 127.0.0.1 ; corpweb IN CNAME www-internal1 corpweb IN CNAME www-internal2 corpweb IN CNAME www-internal3 ; ;-----------------------------------------------------------------------------------