DNSmasq не может сделать это за вас. Powerdns с бэкэндом pipe, однако, может, так как вы можете написать свой собственный код для выполнения разрешения. Я бы использовал python pydns для бэкэнда, поскольку он может легко запрашивать произвольные серверы имен.
Я не думаю, что dnsmasq дает вам такую возможность. Однако есть решение, которое заключается в привязке. Я знаю, что они говорят, что установка связывания - это излишний труд, но это не так уж плохо для того, что вы пытаетесь сделать.
options {
forwarders {
x.x.x.x; //ISP dns ip address
y.y.y.y; //Public dns ip address
}
}
Ключ в том, что серверы пересылки опрашиваются в порядке сверху вниз. Таким образом, сначала будет запрошен интернет-провайдер (который, скорее всего, также дает более низкую метрику), а если он не удастся, будет опрошен общедоступный.
Есть ли способ настроить dnsmasq и позволить ему запрашивать оба DNS-сервера, и общедоступный, и один ISP, и возвращают IP с более низкой метрикой?
dnsmasq предоставляет параметры --all-servers
- all-servers
По умолчанию, когда dnsmasq имеет более одного вышестоящего сервера доступно, он будет отправлять запросы только на один сервер. Настройка этот флаг заставляет dnsmasq отправлять все запросы на все доступные серверы. Ответ от сервера, который ответит первым, будет возвращен исходной запрашивающей стороне.
Эти параметры действительно отвечают на ваш проблемный