V situaci, kdy je doména hostována na DNS serveru, který je součástí lokální sítě nebo DMZ, vzniká problém s překladem DNS pro aplikační služby umístěné za firewallem.
Tento problém spočívá v tom, že DNS ukazuje na WAN rozhraní firewallu. Při přístupu z vnitřní sítě však firewall typicky zakáže přístup přes WAN rozhraní všem packetům se zdrojovým IP z vnitřní sítě. Výsledkem je, že aplikační služby umístěné za firewallem fungují pouze z internetu, nikoliv však z vnitřní sítě.
Možností jak vyřešit tento problém je několik, například:
- omezení firewallových pravidel (díra do fw)
- speciální funkce firewallu (modifikace DNS odpovědi)
- použití veřejných IP adres pro DMZ
- dva DNS servery (jeden pro internet, druhý pro vnitřní síť)
- DNS multiview
V případě BIND9 by konfigurační soubor vypadal následovně:
// ====
// ACLs
// ====
acl "ournetworks" {
127.0.0.0/8;
10.0.0.0/8;
};
acl "ispns" {
8.8.8.0/24;
};
// ============================
// Konfigurace pro dotazy z LAN
// ============================
view "internal" {
match-clients {
ournetworks;
};
recursion yes;
// =============
// special zones
// =============
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
// =========
// our zones
// =========
zone "domena.cz" {
type master;
file "/etc/bind/db.cz.domena.internal";
allow-transfer { any; };
};
zone "0.0.10.in-addr.arpa" {
type master;
file "/etc/bind/db.10.0.0";
allow-transfer { any; };
};
};
// =================================
// Konfiguace pro dotazy z internetu
// =================================
view "external" {
match-clients {
any;
};
recursion no;
// =============
// special zones
// =============
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
// =========
// our zones
// =========
zone "domena.cz" {
type master;
file "/etc/bind/db.cz.domena.external";
allow-transfer { ispns; };
};
};