Здравствуйте!
Дано:Сервер на debian lenny с тремя интерфейсами,два из которых внешние.На нем крутится сквид с аутинтификацией на AD.
Задача: Нужно сделать так чтоб веб трафик делился на эти два канала (только порт 80)
История:Был испробован iproute2 с балансировкой по весам (весь траф делится согласно weight), но при нем ssl pos терминалы работают через раз , что не приемлемо.
Был истробован iproute + iptables CONMARK +random ,но в этой конфигурации отказался работать squid и на се попытки подключения выдавал только "access denied"
Подскажите пожалуйста где косяк , и как его обойти.
Ниже приведены конфиги обоих способов:1.
#!/bin/bash
ip route flush table T1
ip route flush table T2
ip rule delete table T1
ip rule delete table T2
ip rule add from x.x.x.x table T1
ip rule add from y.y.y.y table T2
ip route add x.x.x.0/24 via x.x.x.y dev ppp0 table T1
ip route add y.y.y.0/25 via y.y.y.x dev eth2 src y.y.y.y table T1
ip route add 10.168.0.0/24 dev eth0 src 10.168.0.254 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add default dev ppp0 table T1
ip route add y.y.y.0/25 via y.y.y.x dev eth2 table T2
ip route add x.x.x.0/24 via x.x.x.y dev ppp0 src x.x.x.x table T2
ip route add 10.168.0.0/24 dev eth0 src 10.168.0.254 table T2
ip route add 127.0.0.0/8 dev lo table T2
ip route add default via y.y.y.x dev eth2 table T2
ip route add default scope global nexthop dev ppp0 weight 1 nexthop via y.y.y.x dev eth2 weight 1
ip route flush cache
(x.x.x.x,y.y.y.y -адреса интерфеисов)
(x.x.x.0 ,y.y.y.0 -сети провайдеров)
(x.x.x.y,y.y.y.x -гейты провайдеров)
2.
###################Balancer###################
/sbin/iptables -t mangle -N balancer
###############################################
/sbin/iptables -t mangle -A OUTPUT -p tcp -m multiport --dport 80,443 -m state --state NEW,RELATED -j balancer
########################
# 34% mark with 1
/sbin/iptables -t mangle -A balancer -j CONNMARK --set-mark 1
/sbin/iptables -t mangle -A balancer -m statistic --mode random --probability 0.49 -j RETURN
# all remaining packetsark with2
/sbin/iptables -t mangle -A balancer -j CONNMARK --set-mark 2
/sbin/iptables -t mangle -A balancer -m statistic --mode random --probability 1 -j RETURN
#MARKING ALL PACKETS
/sbin/iptables -t mangle -A OUTPUT -p tcp -m multiport --dport 80,443 -j CONNMARK --restore-mark
/sbin/iptables -t mangle -A OUTPUT -m mark --mark 1 -j ACCEPT #а эти цепочки просто для поверки
/sbin/iptables -t mangle -A OUTPUT -m mark --mark 2 -j ACCEPT