У меня есть локальная сеть (10.0.0.0/24) со шлюзом (назову его G, IP 10.0.0.1), устройством (назову его N, IP 10.0.0.31), которое отправляет DNS-запросы напрямую на 8.8.8.8, полностью игнорируя настройки DHCP для DNS, и еще одним устройством, на котором запущен мой DNS-сервер (назову его D, IP 10.0.0.2). Оба устройства G и D работают под управлением Linux, и я могу полностью изменить их конфигурацию, как захочу. Вместо этого я не могу изменить поведение N каким-либо образом, кроме как назначить ему другой IP-адрес через DHCP.
Теперь я хотел бы перенаправить DNS-запросы, поступающие от N для 8.8.8.8, на D, чтобы D мог обработать эти запросы и предоставить DNS-результаты обратно на N, и N ничего не заметит. Я думаю, что, поскольку локальная сеть и ее шлюз находятся под моим полным контролем и поскольку в DNS нет SSL или криптографии, это должно быть осуществимо.
Итак, как мне этого добиться?
решение1
Remeber 8.8.8.8
— это адрес anycast. По сути, вы можете сделать то же самое, что делает Google для обслуживания одного из своих ящиков, обслуживающих трафик 8.8.8.8
.
Назначьте IP-адрес 8.8.8.8
в качестве дополнительного адреса на DNS-сервере и, при необходимости, добавьте маршрут, 8.8.8.8/32
направляющий трафик на этот DNS-сервер.