Я ищу возможные решения для разделенного DNS для внутреннего/внешнего мира. Дело в том, что эти два «мира» (на самом деле разные наборы серверов имен) частично перекрываются.
Вот пример для домена example.com
.
Данные зоны внешнего мира:
@ IN SOA ns01.example.com. hostmaster.example.com. (
2022082908 ; Serial
10800 ; Refresh
3600 ; Retry
864000 ; Expire
10800 ) ; Minimum
@ IN NS ns01.example.com.
@ IN NS ns02.example.com.
@ IN MX 50 smtp01.example.com.
@ IN MX 20 smtp02.example.com.
www IN A 90.80.70.60
portal IN A 90.80.70.60
Данные зоны внутреннего мира:
@ IN SOA ins01.example.com. hostmaster.example.com. (
2022082908 ; Serial
10800 ; Refresh
3600 ; Retry
864000 ; Expire
10800 ) ; Minimum
@ IN NS ins01.example.com.
@ IN NS ins02.example.com.
@ IN MX 50 exchange.example.com.
portal IN A 192.168.10.100
Цель состоит в том, чтобы иметь некоторый «преобразователь» (IP-адрес), который может разрешать оба мира для внутренних клиентов. Поэтому, когда внутренний клиент обращается portal.example.com
ему нужно зайти на внутренний сайт. Но он также должен иметь доступ к www.example.com
. Есть ли возможное решение для этой ситуации?
Текущее решение — это очень старое программное обеспечение на внутренней стороне, которое выполняет (из cron) AXFR с внешнего сервера имен, а затем вносит некоторые изменения для зоны на основе данных во внутреннем мире. Который производит свой собственный набор проблем. (например, игнорирование TTL во внутреннем мире)
Лучшим решением, которое я могу себе представить, может быть какой-нибудь преобразователь/dns-прокси, который может сначала запросить внутренний сервер имен (который будет содержать только внутренние записи DNS). Если внутренний NS возвращает NXDOMAIN или что-то еще, кроме ответа со значением, он должен попытаться разрешить запрос, как преобразователь (или просто перенаправить запрос какому-то реальному преобразователю). Что-то подобное существует?
Еще одно очевидное решение — обновить/переписать это внутреннее программное обеспечение для управления DNS для современных ОС. И избавиться от известных проблем (но некоторые из них просто не могут быть решены, я думаю).
Или есть какой-то другой способ, который просто не приходит мне в голову?
внутренняя система доменных имен DNS
Кисуке
1 ответ
Если количество хостов, которые должны отличаться для внутренних клиентов, невелико, одним из вариантов будет обслуживание этих клиентов с помощью dnsmasq
. Вы могли бы указать dnsmasq
на вышестоящем DNS-сервере, а затем переопределить определенные записи.
Такая конфигурация вызовет dnsmasq
ответить с 192.168.10.100
за portal.example.com
но все остальные запросы будут переданы вышестоящему серверу (который либо извлекается из /etc/resolv.conf
или указано явно с помощью server=
директивы в вашей конфигурации dnsmasq):
address=/portal.example.com/192.168.10.100
жаворонки