IP转发和stream量整形

有没有办法将networkingA的数据包转发到networkingB(就像路由器一样),而不用改变源IP地址(反之亦然,从networkingB到networkingA),还要执行stream量整形规则?

该解决scheme应该在FreeBSD中实现。

我search了FreeBSD的stream量整形,发现了ALTQ,但我不确定是否可以transparently地转发ALTQ包。

如果可能的话,那么我可能会使用Squid服务器(用于caching和更重要的logging用户的下载/上传 )和ALTQ(或其他)来设置networking来pipe理它们的带宽。 所以我的networking架构将是:

Internet <==> SquidServer <==> TrafficshapingServer <==> LocalNetwork

但是,如果TrafficShaping用他的IP地址replace数据包的SourceIP,则Squid的日志变得无用。 因为Squid不知道哪个数据包来自哪个IP地址(所有Squid看到TrafficShaping IPAddress)

当然,路由器通常不会更改源/目标IP地址; 只有NAT路由器才能做到这一点。 所以,只要不使用NAT,一切都会正常工作。

我对此并不熟悉,但我敢打赌,你所指的TrafficShaper主要是为了确保通过正确的path返回的NAT。 否则,你可能最终会出现一个asynchronous路由问题,这将导致失败。

你可能想要考虑的一件事是在鱿鱼服务器上插入一个X-Forwarded-For头。 这实际上是在代理环境中跟踪源的一种更可靠的方法,因为它将数据插入到实际数据中,而不是依赖IP头信息。