使用 iptables 根据源 IP 地址动态地将流量转发到虚拟接口

使用 iptables 根据源 IP 地址动态地将流量转发到虚拟接口

我正在尝试根据源 IP 地址回复不同结果的 DNS 服务器设置。同时我需要动态更改外部源ip应该转发的接口,

eth0    physical inteface   192.168.1.10
eth0:   virtual interface 1   192.168.1.11
eth0:1  virtual interface 2   192.168.1.12

我在我的服务器中安装了bind9,配置了两个视图,并且分别监听192.168.1.11和12。

在我的设置中,只有外部接口是 eth0,所有客户端都通过它请求 DNS。我需要根据我的客户端源 IP 地址将这些请求转发到我的虚拟接口并动态更改它。

举个例子

对于场景1,如果用户192.168.1.40通过eth0查询DNS,我需要他转发eth0:(192.168.1.11)

对于场景 2 相同用户 (192.168.1.40) 我需要转发到 eth0:1 (192.168.1.1)

我想实现外部用户可以通过在两个不同的时间使用相同的 dns 服务器获得不同的结果。

答案1

看一下iproute2。您可以轻松配置许多路由表并定义处理连接的网络接口,包括问题的解决方案。

这里有一些有用的例子:

参考:

相关内容