When we talk about domains in internal networks, we're referring to DNS namespaces that help organize and manage resources. The .local convention (e.g., companyname.local) serves several key purposes:
# Example internal DNS zone configuration in BIND (Linux)
zone "example.local" {
type master;
file "/etc/bind/db.example.local";
allow-transfer { 192.168.1.0/24; };
};
Key benefits of internal domains:
- Centralized authentication (Active Directory/LDAP)
- Service discovery (e.g.,
printer1.office.local) - Network resource organization
- Certificate management for internal services
Your public domain (example.com) and internal domain (example.local) serve different purposes:
# Example Apache VirtualHost configuration showing separation
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html/production
</VirtualHost>
<VirtualHost *:80>
ServerName intranet.example.local
DocumentRoot /var/www/html/internal
Require ldap-group cn=employees,ou=groups,dc=example,dc=local
</VirtualHost>
When configuring mail servers, you need proper MX records and split DNS:
# Example Postfix main.cf configuration myhostname = mail.example.com mydomain = example.com myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost relay_domains = $mydomain, example.local
Implement proper DNS resolution with forwarding:
# Example named.conf options for split DNS
options {
forwarders { 8.8.8.8; 8.8.4.4; };
forward only;
};
zone "example.com" {
type forward;
forwarders { 10.0.0.53; }; # Your public DNS server
};
zone "example.local" {
type master;
file "/etc/bind/db.example.local";
};
Handling SSL/TLS certificates requires careful planning:
# Sample OpenSSL config for internal CA [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State localityName = City organizationName = Company organizationalUnitName = Internal CA commonName = example.local CA
A domain serves as a logical grouping of network resources with shared security and management policies. In internal environments, domains provide:
- Centralized authentication (Active Directory/LDAP)
- Resource discovery through DNS
- Policy enforcement boundaries
- Namespace hierarchy for organization
The .local convention stems from RFC 6762 for multicast DNS. However, modern best practices recommend:
# Preferred internal domain structure internal.example.com corp.example.com
This avoids conflicts with public DNS while maintaining hierarchy. For Linux environments:
# /etc/hosts example for internal resolution 192.168.1.10 fileserver.internal.example.com 192.168.1.20 mail.internal.example.com
When using example.com for both public and internal services:
# BIND DNS configuration excerpt ; Public records example.com. IN A 203.0.113.45 www IN CNAME example.com. ; Internal records internal IN NS ns1.internal.example.com. mail IN A 192.168.1.20
For web and mail servers coexisting with public DNS:
# Apache VirtualHost configuration
<VirtualHost *:80>
ServerName internal.example.com
DocumentRoot /var/www/internal
# Restrict access to internal network
Require ip 192.168.1.0/24
</VirtualHost>
# Postfix main.cf configuration
myhostname = mail.internal.example.com
mydomain = internal.example.com
Linux domain integration via SSSD:
# /etc/sssd/sssd.conf [domain/internal.example.com] id_provider = ldap auth_provider = ldap ldap_uri = ldap://dc.internal.example.com ldap_search_base = dc=internal,dc=example,dc=com
For Windows-Linux interoperability, ensure consistent:
- DNS resolution paths
- Kerberos realm configuration
- Time synchronization (NTP)