В resolv.conf у меня есть список серверов имен. Можно ли каким-то образом заставить преобразователь использовать данный DNS-сервер только для хостов для данного домена?
Я представляю это так (это чисто теоретический синтаксис, нигде не работает, насколько я знаю):
nameserver 192.168.0.1
nameserver 192.168.3.15 for example.com test.com
это будет работать так: когда мне нужен ip для хоста «a.example.com», он будет запрашивать 192.168.3.15, а для serverfault.com - 192.168.0.1.
Вроде как таблица маршрутизации, но для dns-запросов.
Операционная система - Linux - если это важно.
Нет, это невозможно. Однако вы можете использовать так называемый разделенный DNS.
Установите DNS-сервер и настройте его для выполнения рекурсивных запросов, используя DNS-серверы, предоставленные вашим интернет-провайдером, в качестве серверов пересылки. Это гарантирует, что все имена, которые могут быть разрешены в Интернете, будут разрешены. Обновите свой DHCP-сервер, чтобы он выдавал IP-адрес этого сервера имен всем своим клиентам, это гарантирует, что все компьютеры в вашей локальной сети будут использовать этот DNS-сервер (вместо сервера ISP).
Теперь вы можете приступить к настройке зон, для которых вы хотите, чтобы трафик направлялся в другое место, кроме обычного. Это могут быть домены, которыми вы не владеете. Поскольку это локальный DNS-сервер, вы никого не запутаете, и в своей локальной сети вы можете делать все, что захотите.
Если вы сохраните очень низкие значения TTL, вы сможете очень быстро изменить целевые IP-адреса. И если вам приходится делать это много раз, я бы порекомендовал webmin для более удобного пользовательского интерфейса (если вам не нравится работать из командной строки).