Split-Brain DNS позволяет настроить DNS сервер так, чтобы он возвращал разные ответы в зависимости от адреса (IP подсети) источника запроса. В этой статье мы рассмотрим, как настроить Split DNS ( иногда называется двойным горизонтом DNS, или разделенным DNS) на базе Windows Server (поддерживается начиная с Windows Server 2016).
Допустим ваша задача настроить DNS так, чтобы для внутренних пользователей (подсеть 192.168.1.0) для веб сервера с именем wwwPortal
сервер DNS отдавал один IP адрес (192.168.1.6), а для внешних пользователей (подсеть 172.22.10.0) — другой (172.22.10.6).
Подключиться к Windows Server с ролью DNS Server и откройте консоль PowerShell. Создайте DNS подсеть для внешних пользователей:
Add-DnsServerClientSubnet -Name "ExtSubnet" -IPv4Subnet "172.22.10.0/26" -PassThru
Затем создайте отдельную область в вашей DNS зоне:
Add-DnsServerZoneScope -ZoneName "vmblog.ru" -Name "External"
Добавьте A запись в DNS зоне для вашего веб сервера и привяжите ее к области External:
Add-DnsServerResourceRecord -ZoneName "vmblog.ru" -A -Name "wwwPortal" -IPv4Address 172.22.10.6 -ZoneScope "External"
Вывести список записей в области:
Get-DnsServerResourceRecord -ZoneName "vmblog.ru” -ZoneScope "External"
Теперь можно создать политику Split-Brain DNS:
Add-DnsServerQueryResolutionPolicy -Name "SplitDNSExternalWebPolicy" -Action ALLOW -ClientSubnet "eq,ExtSubnet" -ZoneName "vmblog.ru" -ZoneScope "External" -PassThru
Теперь, если вы попытаетесь отрезолвить запись wwwPortal из подсети 172.22.10.0, сервер вернет вам IP адрес 172.22.10.6. При этом при обращении с любой другой подсети, DNS сервер будет возвращать другой IP адрес для веб сервера.
Если в вашей сети несколько серверов Windows Server DNS (обычно это контроллеры домена AD), то придется создать одинаковые политики Split Brain DNS на каждом из них (политики DNS не реплицируются между серверами).