有没有办法将数据包从网络 A 转发到网络 B(就像路由器一样),而无需改变源 IP 地址(反之亦然,从网络 B 转发到网络 A),同时还能执行流量整形规则?
该解决方案应该在 FreeBSD 中实现。
我在 Google 上搜索了有关 FreeBSD 中的流量整形并找到了 ALTQ,但我不确定是否可以使用 ALTQ 转发数据包transparently
。
如果可能的话,我可能会建立一个带有 Squid 服务器的网络(用于缓存和更重要的记录用户的下载/上传) 和 ALTQ (或其他) 来管理带宽。所以我的网络架构将是:
Internet <==> SquidServer <==> TrafficshapingServer <==> 本地网络
但是如果 TrafficShaping 用其 IP 地址替换数据包的 SourceIP,Squid 的日志就变得毫无用处了。因为 Squid 不知道哪个数据包来自哪个 IP 地址(Squid 看到的只是 TrafficShaping 的 IPAddress)
答案1
当然,路由器通常不会更改源/目标 IP 地址;只有 NATting 路由器才会这样做。因此,只要不使用 NAT,一切都会正常进行。
答案2
我对此并不熟悉,但我敢打赌,您所指的 TrafficShaper 主要是通过 NAT 来保证流量通过正确的路径返回。否则,您很可能会遇到异步路由问题,从而导致失败。
您可能需要研究的一件事是插入X-转发squid 服务器上的 IP 标头。这实际上是在代理环境中跟踪源的更可靠的方法,因为它将数据插入实际数据中,而不是依赖于 IP 标头信息。