여러 유사한 시나리오를 읽었지만 해결책을 찾지 못했습니다.
이것이 내가 지금 가지고 있는 것입니다.
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