На шлюзе настроено раскидывание исходящих соединений по двум модемам, ниже привожу конфиги. Не могу понять как при этом завернуть трафик на Squid, чтобы при этом он продолжал раскидываться по разным интерфейсам. В данной конфигурации соединения через Squid отваливаются по таймауту.
#!/bin/sh
IN="eth1"
OUT1="ppp0"
OUT2="ppp1"
OUT3="eth0"
for i in "-F" "-X" "-Z"
do
for j in "nat" "mangle" "filter"
do
iptables -t $j $i
done
done
iptables -t nat -A POSTROUTING -o $OUT1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $OUT2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $OUT3 -j SNAT --to-source 111.222.333.116
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# настраиваем маркировку исходящих соединений
iptables -t mangle -N NEW_OUT_CONN
iptables -t mangle -N FILTER_OUT_CONN
iptables -t mangle -A PREROUTING -m state --state NEW,RELATED \
-s 192.168.1.32/27 -j FILTER_OUT_CONN
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A FILTER_OUT_CONN -d 192.168.1.32/27 -j RETURN
iptables -t mangle -A FILTER_OUT_CONN -j NEW_OUT_CONN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 1
iptables -t mangle -A NEW_OUT_CONN -m statistic --mode nth --every 2 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2
# настраиваем раскидывание соединений по интерфейсам проксика
iptables -t nat -N SQUID
iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p tcp --dport 80 -j SQUID
iptables -t nat -A SQUID -m connmark -p tcp \
--mark 1 -j REDIRECT --to-ports 8800
iptables -t nat -A SQUID -m connmark -p tcp \
--mark 2 -j REDIRECT --to-ports 8801
#iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800
#!/bin/sh
ip rule add prio 50 fwmark 1 table ppp0
ip rule add prio 51 fwmark 2 table ppp1
# эти адреса прописаны в tcp_outgoing_address
ip address add 192.168.254.0/22 broadcast + dev lo
ip address add 192.168.254.1/22 broadcast + dev lo
ip rule add prio 48 from 192.168.254.0 table ppp0
ip rule add prio 49 from 192.168.254.1 table ppp1
ip route add default dev ppp0 table ppp0
ip route add default dev ppp1 table ppp1
ip route add unreachable default metric 10 table ppp0
ip route add unreachable default metric 10 table ppp1
cache_mem 256 MB
cache_dir ufs /var/cache/squid 1800 16 256
http_port 192.168.1.62:8800 transparent
http_port localhost:8800 transparent
http_port 192.168.1.62:8801 transparent
http_port localhost:8801 transparent
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl all src 0.0.0.0/0.0.0.0
acl allowed_hosts src 192.168.1.32/27
acl ppp0 myport 8800
acl ppp1 myport 8801
http_access deny manager all
http_access allow allowed_hosts
http_access allow localhost
http_access deny all
#allowed_hosts
visible_hostname server
cache_effective_user proxy
cache_effective_group proxy
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
tcp_outgoing_address 192.168.254.0 ppp0
tcp_outgoing_address 192.168.254.1 ppp1