多个 DNS 与多个 WAN

多个 DNS 与多个 WAN

我有一个带有两个 WAN 的 Linux 网关,每个 WAN 连接到不同的提供商,每个提供商都有自己的 DNS 服务器,本地用户通过此服务器连接到互联网 [它也可以用作代理服务器]。

问题是,是否可以根据本地用户的源 IP 指定服务器 [或者我正在使用的 Squid 代理服务器] 将使用哪个 DNS?

答案1

你可以让他们都使用相同的伪造的DNS 服务器的 IP,并路由到正确的根据所选的WAN进行DNS。

不确定您如何确定流量如何流出(您的两个 ISP 中的哪一个...),但我假设您有两个 WAN NIC,我们将它们称为 eth0 和 eth1。

假设您的虚假 DNS IP 是 1.2.3.4,而 eth0 的“正确”DNS 是 2.2.2.2,eth1 的“正确”DNS 是 3.3.3.3。

我相信这会起到作用:

iptables -t nat -I POSTROUTING -o eth0 -d 1.2.3.4 -j DNAT --to-destination 2.2.2.2
iptables -t nat -I POSTROUTING -o eth1 -d 1.2.3.4 -j DNAT --to-destination 3.3.3.3

答案2

一种方法是使用 DHCP。DHCP 管理客户端网络的配置,并且可以包括 DNS 解析器的配置。使用 DHCP,您可以指定为某个网络、某个范围或某些主机提供特定的网络配置,其中还可以包括它们将使用哪些 DNS 服务器。

在这种情况下,可以在 DHCP 范围中配置网络 A 中的主机以使用 DNS 服务器 B,然后在 DHCP 范围中配置网络 Y 中的主机以使用 DNS 服务器 Z。

答案3

是的,您可以使用视图和绑定中的转发来做到这一点,这两个问题有答案(或接近答案):

我不确定这在实践中如何运作,将一半的客户端通过 NAT 连接到一个提供商,另一半连接到另一个提供商?

相关内容