только что осилил. есть 2 провайдера г.Пенза это ПНЗ(МТС-Комстар)(на eth1) и Дом.ру(Эр телеком)(на ppp0)
у пнз 8 мбит у дома 20. сделано доступность по обоим интерфейсам сервисов из интернета и динамическое распределение (!)соединений по каналам при соединении из внутренней сети (eth0) с одинаковой вероятностью на мегабит. к тому же все соединения во внутренние сети каждого провайдера уходят через родной интерфейс (в пнз через линк с пнз в домру через домру). Прововские подсети выбирал ручками с прововских ASок через сайт http://bgp.he.net (если интересно например http://bgp.he.net/AS41754#_asinfo). ipv6 шлюз (от he.net) привязан к пнз.
5 дней копал инет... много чего перепробовал пока не разобрался как должно работать потом только и получилось :). рад до .опы.
все скрипты:
sysctl:
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
10 pnz
20 domru
ip route:
default via 82.209.x.1 dev eth1 metric 100
default via 91.144.144.88 dev ppp0 metric 110
82.209.x.0/24 dev eth1 proto kernel scope link src 82.209.x.x
91.144.144.88 dev ppp0 proto kernel scope link src 94.181.x.x
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1
cat /etc/ppp/ip-up.d/routing
#!/bin/sh -e
LOCAL_IP=$4
GATE_IP=$5
#local
ip route flush table domru
ip route add $GATE_IP dev ppp0 src $LOCAL_IP table domru
ip route add default via $GATE_IP table domru
ip route add 192.168.0.0/24 dev eth0 table domru
ip route add 127.0.0.0/8 dev lo table domru
ip rule del table domru priority 15
ip rule add fwmark 2 table domru priority 15
ip route replace default via $GATE_IP dev ppp0 metric 110
exit 0
cat /etc/network/interfaces (тут только часть что относится к прову pnz на eth1)
auto eth1
iface eth1 inet static
address 82.209.х.х
netmask 255.255.255.0
network 82.209.х.0
broadcast 82.209.х.255
gateway 82.209.х.1
post-up /etc/network/config/v4rules (это скрипт фаера, сам скрипт ниже)
post-up ip route replace 192.168.0.0/24 dev eth0 table pnz
post-up ip route replace 127.0.0.0/8 dev lo table pnz
post-up ip route add 82.209.х.1 dev eth1 src 82.209.х.х table pnz
post-up ip route add default via 82.209.х.1 table pnz
post-down ip rule delete fwmark 1 lookup pnz priority 10
post-up ip rule add fwmark 1 lookup pnz priority 10
cat /etc/network/config/v4rules (часть что относится к маршрутизации)
iptables -t mangle -F MARK_CONN
iptables -t mangle -X MARK_CONN
#routing
iptables -t mangle -N MARK_CONN
iptables -t mangle -A MARK_CONN -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A MARK_CONN -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A MARK_CONN -m connmark ! --mark 0 -j RETURN
#povolzhe AS41754
iptables -t mangle -A MARK_CONN -d 91.144.144.0/22 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 91.144.176.0/22 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 94.181.128.0/18 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 109.194.128.0/19 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.250.0/24 -j CONNMARK --set-mark 2
#perm AS12768
iptables -t mangle -A MARK_CONN -d 46.146.0.0/16 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 46.147.0.0/18 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 79.141.48.0/20 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 92.255.128.0/19 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 92.255.241.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.222.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 188.187.255.0/24 -j CONNMARK --set-mark 2
iptables -t mangle -A MARK_CONN -d 212.33.224.0/19 -j CONNMARK --set-mark 2
#pnz
iptables -t mangle -A MARK_CONN -d 77.108.192.0/18 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 82.209.64.0/18 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 85.234.32.0/19 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 92.246.160.0/19 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -d 95.83.64.0/18 -j CONNMARK --set-mark 1
#ipv6
iptables -t mangle -A MARK_CONN -d 216.66.84.46/32 -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -m connmark ! --mark 0 -j RETURN
iptables -t mangle -A MARK_CONN -j CONNMARK --set-mark 1
iptables -t mangle -A MARK_CONN -m statistic --mode random --probability 0.28 -j RETURN
iptables -t mangle -A MARK_CONN -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -i eth1 -m state --state NEW,RELATED -j CONNMARK --set-mark 1
iptables -t mangle -A PREROUTING -i ppp0 -m state --state NEW,RELATED -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -m state --state NEW,RELATED -j MARK_CONN
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A FORWARD -m state --state NEW,RELATED -j MARK_CONN
iptables -t mangle -A FORWARD -j CONNMARK --restore-mark