我有一个布局如下的网络:
******* ****** ******* ******
* SW1 * --------- * R1 * ---------- * SW2 * ---------- * R2 *
******* ****** ******* ******
| |
| |
******** ********
* ISP1 * * ISP2 *
******** ********
SW1= 与多个客户端连接的交换机。
R1= 网络上的主路由器。此路由器处理 DHCP。
ISP1= 主要互联网上行链路。所有客户端都应默认使用此链路。
SW2= 与多个客户端连接的交换机。
R2= 网络上的辅助路由器。
ISP2= 辅助互联网上行链路。客户端应将其用于特定流量,并且如果ISP1失败。
默认情况下所有客户端都有R1作为默认网关,并通过ISP1。
但是,所有目标端口为 995 或 465 的流量都应转至ISP2, 而如果ISP1发生故障时,网络上的所有互联网流量都应该流向ISP2。
我不知道该如何实现这一点。正确的策略是什么?
R1和R2是具有多个网卡并安装了 Debian 的普通计算机。
答案1
理论上,正确的策略是:
- 用于
iptables --mark
为您拥有的特殊包添加标签(例如iptable -A PREROUTING -t mangle -p tcp --dport 995 -j MARK --set-mark 1
) - 使用此标记设置特殊路线R2(看http://nerdboys.com/2006/05/05/conning-the-mark-multiwan-connections-using-iptables-mark-connmark-and-iproute2/或者http://blog.khax.net/2009/11/28/multi-gateway-routing-with-iptables-and-iproute2/)
- 通过以下方式路由其他数据包R1,但也给他们R2具有不同的权重/优先级。
正确的搜索术语是“多宿主路由”。我现在手头没有好的指南。