iptables / iproute2 - балансировка нагрузки между провайдерами
Здравствуйте :)
Есть два провайдера и подключения к ним через pppoe. Решил использовать каналы по полной, но в чем то промазал.
После прописывания всех правил, один из каналов забивается полностью, а второй где то процентов на 10.
привожу списки всех правил которые получились в итоге:
iptables -v -t mangle -L Chain PREROUTING (policy ACCEPT 173M packets, 93G bytes) pkts bytes target prot opt in out source destination 4099 361K NOC all -- any any anywhere anywhere state NEW,RELATED 182K 126M CONNMARK all -- any any anywhere anywhere CONNMARK restore Chain INPUT (policy ACCEPT 36M packets, 8421M bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 137M packets, 85G bytes) pkts bytes target prot opt in out source destination 926 60233 NOC all -- any ppp+ anywhere anywhere state NEW,RELATED 178K 125M CONNMARK all -- any any anywhere anywhere CONNMARK restore Chain OUTPUT (policy ACCEPT 35M packets, 11G bytes) pkts bytes target prot opt in out source destination 57 26873 NOC all -- any ppp+ anywhere anywhere state NEW,RELATED 1875 1013K CONNMARK all -- any any anywhere anywhere CONNMARK restore Chain POSTROUTING (policy ACCEPT 172M packets, 96G bytes) pkts bytes target prot opt in out source destination 983 87106 NOC all -- any ppp+ anywhere anywhere state NEW,RELATED 180K 126M CONNMARK all -- any any anywhere anywhere CONNMARK restore Chain NOC (4 references) pkts bytes target prot opt in out source destination 6065 535K CONNMARK all -- any any anywhere anywhere CONNMARK set 0x1 3032 265K RETURN all -- any any anywhere anywhere statistic mode nth every 2 packet 1 3030 270K CONNMARK all -- any any anywhere anywhere CONNMARK set 0x2 1514 127K RETURN all -- any any anywhere anywhere statistic mode nth every 2 packet 2
в iptables я пробовал так же и модуль random, разницы не ощутил.
ip rule show 0: from all lookup 255 32764: from all fwmark 0x2 lookup T2 32765: from all fwmark 0x1 lookup T1 32766: from all lookup main 32767: from all lookup default
вся нагрузка ложится на шлюз лежащий в T2. я пробовал и в iptables менять местами правила маркировки и в ip rules пробовал менять местами таблицы - ничего не менялось :(
ip route show table T1 178.120.0.1 dev ppp0 proto kernel scope link src 178.124.160.115 192.168.11.0/24 dev eth1 proto kernel scope link src 192.168.11.31 192.168.0.0/20 dev eth2 proto kernel scope link src 192.168.2.250 169.254.0.0/16 dev eth2 scope link 127.0.0.0/8 dev lo scope link default dev ppp0 scope link
ip route show table T2 178.121.0.1 dev ppp1 proto kernel scope link src 178.124.160.114 192.168.11.0/24 dev eth1 proto kernel scope link src 192.168.11.31 192.168.0.0/20 dev eth2 proto kernel scope link src 192.168.2.250 169.254.0.0/16 dev eth2 scope link 127.0.0.0/8 dev lo scope link default dev ppp1 scope link
ip route show 178.120.0.1 dev ppp0 proto kernel scope link src 178.124.160.115 178.121.0.1 dev ppp1 proto kernel scope link src 178.124.160.114 192.168.11.0/24 dev eth1 proto kernel scope link src 192.168.11.31 192.168.0.0/20 dev eth2 proto kernel scope link src 192.168.2.250 169.254.0.0/16 dev eth2 scope link default equalize nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
из главной таблицы пробовал удалять шлюзы. то же разницы не ощутил.
для чистоты эксперимента, после каждой операции очищал кэш маршрутов (ip route flush cache).
как уже писал выше, вся нагрузка ложится на шлюз ppp1, при этом ppp0 нагружается лишь процентов на 10 от силы.
по мауалам все должно работать, но что то не так, может кто знает где может быть причина?
Спасибо!
P.S.
Заметил интересны момент. Если качать с FTP провайдера то балансировка работает на ура, если с какого либо другого места - ниразу.. :(
- Для комментирования войдите или зарегистрируйтесь