通过同一接口通过不同的网关(= DSL 调制解调器)路由 Squid 流量

通过同一接口通过不同的网关(= DSL 调制解调器)路由 Squid 流量

我在 ipcop 机器上有两个接口,eth1(公共)和 eth0(本地 LAN)。透明 SQUID 在 eth0 上监听和缓存,所有流量都从那里路由到 eth1 以供公共 Web 访问。由于 eth1 变得太慢,我想通过不同的 DSL 网关分割某些端点流量。

当前eth0是192.168.1.1,eth1是动态的。

我已将 eth0:0 创建为 192.168.50.1,并将 SQUID 的 tcp_outgoing_connection 设置为 192.168.50.1。DSL 路由器 IP 为 192.168.50.250。

我已将 192.168.50.0/24 的路由添加为 192.168.50.250。

我可以通过这条路由 ping 外部服务器,但没有通过 squid 得到任何流量(我可以看到从 192.168.50.1:800 到 192.68.50.250 的连接但它在那里停止了)。

在 eth0 上,所有流量都可以通过 eth0 网络传输。

我遗漏了什么?我必须更改哪些 iptables/路由设置?我需要后路由伪装吗?

使用台式机,我可以以 192.168.50.250 作为网关随意浏览。

我无法使用 iproute2 或任何这些选项......

帮助?

答案1

基本上,你会需要iproute2 功能,因为您正在执行的是基于源的路由:

echo 1 squid >> /etc/iproute2/rt_tables
ip route add default 192.168.50.250 table squid
ip rule add from 192.168.50.1 lookup squid

显然,ipcop 内核没有包含 FWMARK 功能集,因此这对你不起作用。patch-o-matic 中的 iptables 的“ROUTE”目标它可以做同样的事情,但我相信它的开发已被放弃,因为其行为是多余的,功能不如 iproute2。我也不认为它已包含在最近的 ipcop 版本中 - 您必须自行编译它并将其添加到您的 ipcop 安装中。

快速搜索后,预编译版本对于过时的 1.4.15 版 ipcop(可能无法与较新的版本一起使用,但您可以尝试一下) - 可能有较新的版本,如果您不想自己编译,您应该在 ipcop 邮件列表或论坛上询问。

相关内容