У меня Linux-машина с двумя сетевыми интерфейсами. Они оба подключены к локальным сетям - одна 192.168.*.*
, другой 10.*.*.*
.
В 192.168.*.*
сеть является полностью частной и не имеет доступа в Интернет. В 10.*.*.*
сеть имеет доступ в Интернет.
В настоящее время я могу выполнить внешний пинг, и имена будут разрешены
ping google.com
Однако, когда я пытаюсь пропинговать имя машины на 192.168.*.*
сеть, имя не разрешится
ping computer-name
ping computer-name.domain
ping computer-name.domain.local
Если я укажу IP-адрес, он разрешит
ping 192.168.x.x
Как я могу настроить параметры DNS, чтобы имена машин в частной локальной сети разрешались, но я все еще мог разрешать внешние адреса?
Я использую Centos6.
В подобных ситуациях обычно требуется настроить преобразователь DNS, который будет перенаправлять на различные вышестоящие DNS-серверы в зависимости от пространства имен. Ты можешь сделать это с DNSMasq, Привязать и другие DNS-серверы.
Я смог заставить это работать, изменив свой /etc/resolv.conf
файл
domain privatedomain
search privatedomain publicdomain.com
nameserver 192.168.10.15
nameserver 10.10.1.15
В privatedomain
местный 192.168.*.*
сетевое доменное имя. В publicdomain.com
это доменное имя для 10.*.*.*
сеть с доступом в Интернет.
Теперь он может правильно разрешать все эти запросы
ping computer.privatedomain
ping computer
ping computer2.publicdomain.com
ping google.com
Единственным недостатком этого является то, что когда я пытаюсь разрешить имя, недоступное из частного домена, возникает заметная задержка. Например:
ping google.com
Я полагаю, это потому, что он сначала пытается разрешить имя через первый сервер имен на privatedomain
, который в конечном итоге истечет, а затем перейдет на второй сервер имен, который сможет его разрешить.