Привет, сервервина,
Я работаю в больнице, которые настроили свою сеть, используя 192.168.0.0/23 (до моего приезда). Мы хотим, чтобы ноутбуки и мобильные клиенты подключались из удаленных мест с помощью VPN, но больничная сеть очень сильно конфликтует с большинством домашних маршрутизаторов. Я оказывал давление на руководство, чтобы дать нам время изменить его, но, поскольку я больница с серверами, оборудованием и т. Д. Повсюду, это было невозможно организовать. Таким образом, мы «устранили» проблему, используя коэффициент 1: 1 10.22.0.0/23.
Проблема: Клиенты могут без проблем подключаться и получать доступ к ресурсам, используя IP-адреса 10.22.0.0/23, но если они запрашивают DNS-сервер, они получают ответы 192.168.0.0/23. Есть ли верный способ в BIND перевести их на лету на адреса 10.22.0.0/23, если запрос исходит из подсети VPN? Акцент на правильности, поскольку у меня он работает через представления BIND, используя в cron следующее:
sed -e 's/192.168.0./10.22.0./' -e 's/192.168.1./10.22.1./' /var/lib/bind/db.company.local > /var/lib/bind/db.company.local.ext && /usr/sbin/rndc reload company.local in extView
Это отлично работает, но задерживается на 15–20 минут из-за того, что журналу BIND требуется примерно 15 минут для обратной записи в файл db.company.local.
Я немного читал о RPZ, но информация кажется нечеткой. Может кто-то указать мне верное направление? Если нет, можете ли вы сделать мое решение более элегантным?
РЕДАКТИРОВАТЬ: Я просто хочу прояснить, что я уже использую представления BIND, но я делаю это с двумя зонами. Я генерирую свою вторую зону из первой, отправляю ее через sed для изменения IP-адресов и выполняю перезагрузку rndc для этой зоны в этом представлении. Это имеет большую задержку, есть ли способ использовать один и тот же файл зоны в обоих представлениях и изменить ответ DNS во время запроса?
Спасибо!
да, вы можете сделать это с помощью видов привязки:
По сути, вы определяете каждое представление как подсеть, а затем каждое представление поддерживает свой собственный файл зоны. в зависимости от IP / подсети источника запроса DNS вы получите другое "представление".
это обычное дело для серверов имен для использования во "внутренних" / "внешних" представлениях, так как имена DNS разрешаются публично во внешнем представлении, но разрешают "внутренний" частный IP-адрес хоста во внутренней локальной сети при запросе из внутреннего частный (ые) LAN (ы).
это должен быть проблемой процесса. Обычно администраторы добавляют новые записи в файлы зон обоих представлений. Заставьте их использовать скрипты, если у них плохая память. Наказывайте их, если они отказываются использовать сценарии. Но если это сумасшедший дом, и вам просто нужно, чтобы это работало, я думаю, вы могли бы сделать это с помощью политик ответа на основе представлений.
Допустим, у вас есть записи, которые выглядят так:
$ORIGIN db.company.local.net.
test1 IN A 10.22.0.1
test2 IN A 10.22.1.255
В параметрах представления для представления 192space определите следующую политику ответа:
options {
response-policy { zone "192remap.rpz"; };
}
zone "192remap.rpz" {
type master;
file "192remap.rpz.zone";
};
Политика ответа будет использоваться для перезаписи всех IP-адресов 10space на 192space. Это похоже на любой другой файл зоны, но записи NS не имеют смысла, а записи имеют особое значение. Поскольку записывать каждое переназначение IP-адресов вручную было бы утомительно, мы будем использовать $GENERATE
блоки для заполнения файла зоны за вас.
@ IN SOA localhost. root.localhost. (
2 ; serial
3H ; refresh
1H ; retry
1W ; expiry
1H) ; minimum
IN NS localhost.
; 32.$.0.22.10.rpz-ip. -> 10.22.0.$/32
$GENERATE 0 255 32.$.0.22.10.rpz-ip. A 192.168.0.$
$GENERATE 0 255 32.$.1.22.10.rpz-ip. A 192.168.1.$
Это не только переназначит любой из этих IP-адресов 10.22.0.0/23, найденных в разделе ANSWER ответа DNS, но также перехватит любые скрытые IP-адреса, которые по какой-либо причине отображаются в разделах AUTHORITY или ADDITIONAL. Запрос на test1.db.company.local.net.
Ответ (10.22.0.1) должен быть переписан на 192.168.0.1, и только для клиентов, обращающихся к вашему представлению 192space.
Надеюсь, это поможет, и сообщите нам, работает ли это. Вы можете найти дополнительную информацию о RPZ и ссылки на документацию в другой ответ Я написал несколько месяцев назад.