Was ist Split-DNS?
Problem:
mail.firma.de → extern: 203.0.113.10 (öffentliche IP)
mail.firma.de → intern: 192.168.20.50 (private IP)
Ohne Split-DNS:
- Intern alle Verbindungen über Internet-Router (Hairpin NAT)
- Langsam, unnötige Belastung
Mit Split-DNS:
- Intern: Direkte Verbindung zu 192.168.20.50
- Extern: Normale Internet-Verbindung zu 203.0.113.10
BIND9 Split-DNS
apt install -y bind9 bind9utils
# /etc/bind/named.conf.local
cat > /etc/bind/named.conf.local << 'EOF'
# ACL für interne Netze
acl intern {
192.168.0.0/16;
10.0.0.0/8;
localhost;
};
# Interne View (für interne Clients)
view "intern" {
match-clients { intern; };
recursion yes;
zone "firma.de" {
type master;
file "/etc/bind/zones/firma.de.intern";
};
};
# Externe View (für alle anderen)
view "extern" {
match-clients { any; };
recursion no;
zone "firma.de" {
type master;
file "/etc/bind/zones/firma.de.extern";
};
};
EOF
Interne Zone
cat > /etc/bind/zones/firma.de.intern << 'EOF'
$TTL 3600
@ IN SOA ns1.firma.de. admin.firma.de. (
2025061101 ; Serial
3600 ; Refresh
900 ; Retry
1209600 ; Expire
86400 ) ; Negative TTL
@ IN NS ns1.firma.de.
ns1 IN A 192.168.10.10
; Interne IPs
@ IN A 192.168.20.10
www IN A 192.168.20.10
mail IN A 192.168.20.50
gitlab IN A 192.168.20.60
nas IN A 192.168.1.100
$INCLUDE /etc/bind/zones/firma.de.common
EOF
Externe Zone
cat > /etc/bind/zones/firma.de.extern << 'EOF'
$TTL 3600
@ IN SOA ns1.firma.de. admin.firma.de. (
2025061101
3600
900
1209600
86400 )
@ IN NS ns1.firma.de.
ns1 IN A 203.0.113.1
; Öffentliche IPs (nur was extern sichtbar sein soll)
@ IN A 203.0.113.10
www IN A 203.0.113.10
mail IN A 203.0.113.20
IN MX 10 mail.firma.de.
; Interne Dienste NICHT hier!
; gitlab, nas, etc. = kein Eintrag
EOF
named-checkconf
named-checkzone firma.de /etc/bind/zones/firma.de.intern
systemctl restart bind9
Pi-hole als lokaler Resolver
# Pi-hole als simpler Split-DNS
# Admin → Local DNS → DNS Records
# Interne Einträge
mail.firma.de → 192.168.20.50
gitlab.firma.de → 192.168.20.60
nas.firma.de → 192.168.1.100
# Upstream-DNS für externe Domains:
# Pi-hole → Settings → DNS → Cloudflare/Quad9
FAQ
Warum nicht einfach /etc/hosts auf jedem Gerät?
Nicht skalierbar (100 Geräte = 100 Dateien). Kein automatisches Update. DNS ist der richtige Weg.
Fazit
Split-DNS ist für jedes KMU mit internen Services sinnvoll – direkte interne Verbindungen, keine unnötige Internet-Belastung, korrekte Namensauflösung.
DNS-Konfiguration für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Anfragen.