いくつかの同様のシナリオを読みましたが、解決策が見つかりませんでした。
これが私が今持っているものです。
E2Guardian 5.4およびSquid 4.10を含むUbuntu 20.0 LTSボックス。このホストは、ネットワーク上のマイクライアントのゲートウェイとして設定されています。私の4つのネットワークには4つのインターフェースがあります。各要求(80,443)はDNATとして処理され、E2Guardianポート8080または8443に転送されます。コンテンツフィルタリング後、要求はlocalhost:3128に渡されます。ここで、squidは要求を受け取り、実際のゲートウェイに転送します。
私の唯一の問題は、ソースIPであるため、すべての要求が192.168.1.253に転送されることです。したがって、各クライアント(ネットワーク)アドレスが自分のゲートウェイにキューを持つように帯域幅キューをフィルタリング/設定することはできません。
次のスクリプトを使用してルーティングとNATを設定します。ソースネットワークごとに各パケットを表示しましたが、E2guardianが要求をイカに転送した後には表示されません。 squid.confにtcp_outgoing_addressを設定しましたが、squidが192.168.1.253 ipから要求を受け取り、e2guardianがそこに転送するために動作しませんでした。
私の目標は、クライアントのネットワークアドレスに基づいて要求が正しい方法で転送されるようにこれを調整することです。
よりよい理解のための速い草案。 https://drive.google.com/file/d/16apWSLL8sX5T_VdDFMm7FMbseCMF41sr/view?usp=sharing
#!/bin/bash
LAN1_IF=ens160
LAN2_IF=ens192
LAN3_IF=ens224
LAN4_IF=ens256
LAN1=192.168.1.0/24
GW_LAN1=192.168.1.254
LAN2=192.168.2.0/24
GW_LAN2=192.168.2.254
LAN3=192.168.3.0/24
GW_LAN3=192.168.3.254
LAN4=10.15.0.0/22
GW_LAN4=10.15.3.254
PROXY_IP_LAN1=192.168.1.253
PROXY_IP_LAN2=192.168.2.253
PROXY_IP_LAN3=192.168.3.253
PROXY_IP_LAN4=10.15.3.253
ip route add $LAN2 dev $LAN2_IF src $PROXY_IP_LAN2 table admin2
ip route add default via $GW_LAN2 dev $LAN2_IF table admin2
ip rule add from $LAN2 table admin2
ip rule add to $LAN2 table admin2
ip route add $LAN3 dev $LAN3_IF src $PROXY_IP_LAN3 table admin3
ip route add default via $GW_LAN3 dev $LAN3_IF table admin3
ip rule add from $LAN3 table admin3
ip rule add to $LAN3 table admin3
ip route add $LAN4 dev $LAN4_IF src $PROXY_IP_LAN4 table admin3
ip route add default via $GW_LAN4 dev $LAN4_IF table admin3
ip rule add from $LAN4 table admin4
ip rule add to $LAN4 table admin4
ip route flush cache
PROXY_PORT=8080
PROXY_SSL_PORT=8443
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -A PREROUTING -s $LAN1 -p tcp -t mangle --dport 80 -j MARK --set-mark 1
iptables -A PREROUTING -s $LAN1 -p tcp -t mangle --dport 443 -j MARK --set-mark 1
iptables -t nat -A PREROUTING -s $LAN1 -i $LAN1_IF -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT
iptables -t nat -A PREROUTING -s $LAN1 -i $LAN1_IF -p tcp --dport 443 -j REDIRECT --to-port $PROXY_SSL_PORT
iptables -A PREROUTING -s $LAN2 -p tcp -t mangle --dport 80 -j MARK --set-mark 2
iptables -A PREROUTING -s $LAN2 -p tcp -t mangle --dport 443 -j MARK --set-mark 2
iptables -t nat -A PREROUTING -s $LAN2 -i $LAN2_IF -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT
iptables -t nat -A PREROUTING -s $LAN2 -i $LAN2_IF -p tcp --dport 443 -j REDIRECT --to-port $PROXY_SSL_PORT
iptables -A PREROUTING -s $LAN3 -p tcp -t mangle --dport 80 -j MARK --set-mark 3
iptables -A PREROUTING -s $LAN3 -p tcp -t mangle --dport 443 -j MARK --set-mark 3
iptables -t nat -A PREROUTING -s $LAN3 -i $LAN3_IF -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT
iptables -t nat -A PREROUTING -s $LAN3 -i $LAN3_IF -p tcp --dport 443 -j REDIRECT --to-port $PROXY_SSL_PORT
iptables -A PREROUTING -s $LAN4 -p tcp -t mangle --dport 80 -j MARK --set-mark 4
iptables -A PREROUTING -s $LAN4 -p tcp -t mangle --dport 443 -j MARK --set-mark 4
iptables -t nat -A PREROUTING -s $LAN4 -i $LAN4_IF -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT
iptables -t nat -A PREROUTING -s $LAN4 -i $LAN4_IF -p tcp --dport 443 -j REDIRECT --to-port $PROXY_SSL_PORT