Подскажите пожалуйста что не так делаю.
Имеется: Ubuntu-server 9.10, 2-а pppoe соединения с динамическими адресами вида
ppp0 Link encap:Point-to-Point Protocol
inet addr:86.57.235.13 P-t-P:82.209.253.222 Mask:255.255.255.255
Шлюзы у pppoe могут быть одинаковыми, а могут и разными.
и eth1 192.168.100.0/24 смотрящий в проводную сеть.
Задача:соединить(сбалансировать) два соединения в одно и раздать в проводную сеть(eth1). Соединять нужно для всего трафика, по портам ничего делить не надо.
Что делаю: Исхожу из этого howto
https://help.ubuntu.ru/wiki/ip_balancing.
Делаю описанным там 1-м способом. После поднятия руками двух pppoe запускаю скрипт /etc/dualppp.sh следующего содержания:
#!/bin/sh
################### CONFIG ############
FreeNet="/etc/routing/FreeNet.list"
### Home Network
l_eth=eth1
l_ip=192.168.100.1
l_net=192.168.100.0/24
########### Local ISP Network #########
li_net=10.0.0.0/8
########### ISP1 ######################
i1_eth=ppp0
i1_ip=`ip address show | grep ppp0 | sed '1d' | awk '{print $2}'`
i1_net=`ip route show dev ppp0 | awk '/r/ { print $1 }'`/32
i1_gw=`ip route show dev ppp0 | awk '/r/ { print $1 }'`
########### ISP2 ######################
i2_eth=ppp1
i2_ip="`ip address show | grep ppp1 | sed '1d' | awk '{print $2}'`"
i2_net=`ip route show dev ppp1 | awk '/r/ { print $1 }'`/32
i2_gw="`ip route show dev ppp1 | awk '/r/ { print $1 }'`"
echo "ppp0 ip $i1_ip"
echo "pppo gw $i1_gw"
echo "ppp0 net $i1_net"
#########ip route2 tables##############
t1=101
t2=102
#######################################
########### Flushing ##################
iptables -t mangle -F NEW_OUT_CONN
iptables -t mangle -F PREROUTING
iptables -t mangle -F OUTPUT
iptables -t mangle -X NEW_OUT_CONN
echo "метка001"
ip route flush table $t2
ip rule del table $t2
ip route flush table $t1
ip rule del table $t1
echo "метка01"
ip route flush cache
#######################################
echo "метка1"
iptables -t mangle -N 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 random --probability 0.50 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2
echo "метка2"
for file in $FreeNet; do
if [ -f "$file" ]; then
{ cat "$file" ; echo ; } | while read ip_addr; do
if [ "$ip_addr" != "" ]; then
echo "Статическая маршрутизация для $ip_addr"
iptables -t mangle -A NEW_OUT_CONN -d $ip_addr -j CONNMARK --set-mark 1
fi
done
fi
done
echo "метка3"
iptables -t mangle -A PREROUTING -d $l_net -j RETURN
iptables -t mangle -A PREROUTING -d $li_net -j RETURN
echo "метка4"
iptables -t mangle -A PREROUTING -s $l_net -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A PREROUTING -s $l_net -j CONNMARK --restore-mark
echo "метка5"
iptables -t mangle -A OUTPUT -d $l_net -j RETURN
iptables -t mangle -A OUTPUT -d $li_net -j RETURN
echo "метка6"
iptables -t mangle -A OUTPUT -s $l_net -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A OUTPUT -s $li_net -j CONNMARK --restore-mark
echo "метка7"
ip route add $l_net dev $l_eth scope link table $t1
ip route add $i2_net dev $i2_eth scope link table $t1
ip route add $i1_net dev $i1_eth scope link src $i1_ip table $t1
ip route add 127.0.0.0/8 dev lo scope link table $t1
ip route add default via $i1_gw table $t1
echo "метка8"
ip rule add prio 51 fwmark 1 table $t1
ip rule add from $i1_ip table $t1
echo "метка9"
ip route add $l_net dev $l_eth scope link table $t2
ip route add $i1_net dev $i1_eth scope link table $t2
ip route add $i2_net dev $i2_eth scope link src $i2_ip table $t2
ip route add 127.0.0.0/8 dev lo scope link table $t2
ip route add default via $i2_gw table $t2
echo "метка10"
ip rule add prio 52 fwmark 2 table $t2
ip rule add from $i2_ip table $t2
echo "метка11"
ip route flush cache
В /etc/iproute2/rt_tables как указано внес изминения:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
101 FreeNet
102 NLine
Файл /etc/routing/FreeNet.list содержит только одну запись:
86.57.250.18
Но после запуска в консоли скрипта /etc/dualppp.sh получаю следующие ошибки:
root@server:~# /etc/dualppp.sh
ppp0 ip 86.57.235.13
pppo gw 82.209.253.222
ppp0 net 82.209.253.222/32
ppp0 ip 93.85.234.204
pppo gw 82.209.255.246
ppp0 net 82.209.255.246/32
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
метка001
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
метка01
метка1
метка2
Статическая маршрутизация для 86.57.250.18
метка3
метка4
метка5
метка6
метка7
метка8
метка9
метка10
метка11
Метки специально расставил, что бы было видно где запинается скрипт.
Подскажите пожалуйста, что я не так делаю?