Здравствуйте.
Помогите, пожалуйста, разобраться. Есть два аплинка к одному провайдеру. Необходимо пропорционально поделить между ними трафик. Т.е. балансировку нагрузки. При этом соединения по определенным портам всегда должно идти через тот интерфейс, с которого были установлены. Теряюсь в догадках как такое можно провернуть...Раньше, при одном аплинке, я пользовал связку iptables+bind+squid+netams. Вот рабочие правила для старой конфигурации:
#!/bin/bash
/sbin/modprobe ip_queue
/sbin/modprobe ip_nat_ftp
/sbin/modprobe nf_conntrack_ftp
IPT="/sbin/iptables"
INET="eth0"
LAN="eth1"
NETWORK="192.168.0.0/24"
SQUID="3128"
WWW="80,81,8080"
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
$IPT -N INPUT_LAN
$IPT -N INPUT_INET
#================SQUID==================
$IPT -t nat -A PREROUTING -s $NETWORK ! -d $NETWORK -p tcp -m multiport --dport $WWW -j REDIRECT --to-ports $SQUID
$IPT -A OUTPUT -o $LAN -p tcp -m tcp --sport $SQUID -m state --state NEW,RELATED,ESTABLISHED -j QUEUE
#==============NETAMS===================
$IPT -A FORWARD -i $LAN -o $INET -p ALL -j QUEUE
$IPT -A FORWARD -i $INET -o $LAN -p ALL -j QUEUE
#=============SERVER====================
$IPT -A INPUT -i $INET -p icmp -j ACCEPT
$IPT -A INPUT -i $INET -j INPUT_INET
$IPT -A INPUT -i $LAN -j INPUT_LAN
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -j INPUT_INET
$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT
$IPT -A OUTPUT -o $INET -p udp --dport 53 -j ACCEPT
$IPT -A OUTPUT -o $INET -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp --sport 22 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp -m multiport --dport $WWW -j ACCEPT
#++++=============LAN==================
$IPT -A INPUT_LAN ! -s $NETWORK -j DROP
$IPT -A INPUT_LAN -m state --state INVALID -j DROP
$IPT -A INPUT_LAN -s $NETWORK -p icmp -j ACCEPT
$IPT -A INPUT_LAN -p tcp -m tcp --dport $SQUID -m state --state NEW,RELATED,ESTABLISHED -j QUEUE
$IPT -A INPUT_LAN -j ACCEPT
#=================INET=================
$IPT -A INPUT_INET -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT_INET -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT_INET -p tcp --sport 8245 -j ACCEPT
$IPT -A INPUT_INET -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A INPUT_INET -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT_INET -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT_INET -p udp --dport 53 -j ACCEPT
$IPT -A INPUT_INET -p udp --sport 53 -j ACCEPT
$IPT -A INPUT_INET -p tcp --syn -j DROP
#================NAT==================
$IPT -t nat -A POSTROUTING -s $NETWORK -o $INET -j MASQUERADE
Трафик на 80-й порт заворачивается на "прозрачный" сквид, со сквида на биллинг.
Весь FORWARD идет на биллинг, там считается и фильтруется куда можно, куда нельзя.
Сейчас от биллинга можно избавиться... Дайте пинка в нужном направлении =)