![Linux(Ubuntu 12.04)两个网关一个网卡](https://linux22.com/image/587902/Linux%EF%BC%88Ubuntu%2012.04%EF%BC%89%E4%B8%A4%E4%B8%AA%E7%BD%91%E5%85%B3%E4%B8%80%E4%B8%AA%E7%BD%91%E5%8D%A1.png)
我有 Ubuntu 12.04 服务器版本
两个网关,均在 192.168.0. 网络上,我们将它们设为 192.168.0.1 和 192.168.0.2
我读到您应该能够在 /etc/network/interfaces 中添加第二个网关,它将自动构建所有路由,但我收到“重复选项”错误。
因此,如果我有一个默认网关,比如说 0.1,并且连接来自 0.2 网关,我的理解是它仍会尝试通过 0.1 网关进行响应。
我们能改变这个行为吗?
答案1
您需要一种方法来区分数据包来自哪个网关,以便将响应路由到正确的网关。这通常是通过在主机上设置多个 IP 地址并使用源策略路由根据响应数据包的源地址选择网关。我假设网关是独立的 Internet 连接,并且传入连接由网关进行 DNAT(或端口转发)。您需要将其他 IP 地址绑定到机器,并将网关配置为 DNAT 到不同的地址,以便机器可以区分。
答案2
您需要策略路由。对于您的情况,可以采用的一种方法是“保存”传入网关的信息。例如,我多次使用的解决方案是根据 mac 地址标记连接,并根据标记路由出去。您可以按照这种方式设置任意数量的网关,效果非常好。编辑:更具体地说:根据 mac 地址标记传入的新数据包,根据 connmark 标志标记传出数据包,使用标记将传出数据包定向到该网关的特定路由表。(参见 iproute2)。