通过 TPROXY 对多个 VLAN 进行流量重定向

通过 TPROXY 对多个 VLAN 进行流量重定向

我有 http 代理,是我公司开发的。代理使用 TPROXY。通常,安装此代理需要添加一些路由规则和 iptables 规则(对于 squid 而言):

ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables -t mangle -N DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port $PROXPORT --on-ip $PROXIP

现在我需要代理来自不同 VLAN 的流量。我不明白如何编写 IP 规则以将代理后的流量路由到合适的输出接口。对于“合适”,我的意思是与输入接口一致的虚拟标记输出接口。

+---------+                        +---------+
|         |                        |         |
| eth4.2  |--+                     | eth5.2  |
|  input  |  |                 +-->| output  |
+---------+  |   +----------+  |   +---------+
             |   |          |  |  
+---------+  +-->|          |--+   +---------+
|         |      | TROXY    |      |         |
| eth4.3  |----->| Magic    |----->| eth5.3  |
|  input  |      |          |      | output  |
+---------+  +-->|          |--+   +---------+
             |   |          |  |   
+---------+  |   +----------+  |   +---------+
|         |  |                 |   |         |
| eth4.4  |--+                 +-->| eth5.4  |
|  input  |                        | output  |
+---------+                        +---------+

谢谢你的帮助。

相关内容