Поднят мультилинк на двух модемах с помощью EQL.
Проблема в следующем отправка идет по двум модемам, а прием только по одному. Если кто сталкивался подскажите.Скрипт для создания EQL интерфейса:
#!/bin/sh
rppp0=`/usr/local/bin/getpppinfo -r ppp0`
rppp1=`/usr/local/bin/getpppinfo -r ppp1`
maxtries=3
while [ $maxtries -gt 0 ]
do
if [ "x$rppp0" = "x" -o "x$rppp1" = "x" ]; then
if [ "x$rppp0" = "x" ]; then
set_ppp0=ppp0
if [ -r /var/run/ppp0.pid ]; then
kill -INT `cat /var/run/ppp0.pid`
fi
i=0
echo `date '+%D %X'` "Restarting ppp0"
/usr/sbin/ppp-on-ttyS0
while [ $i -lt 15 ]
do
sleep 15
i=`expr $i + 1`
rppp0=`/usr/local/bin/getpppinfo -r ppp0`
if [ "x$rppp0" != "x" ]; then
i=15
fi
done
fi
if [ "x$rppp1" = "x" ]; then
set_ppp1=ppp1
if [ -r /var/run/ppp1.pid ]; then
kill -INT `cat /var/run/ppp1.pid`
fi
i=0
echo `date '+%D %X'` "Restarting ppp1"
/usr/sbin/ppp-on-ttyS1
while [ $i -lt 15 ]
do
sleep 15
i=`expr $i + 1`
rppp1=`/usr/local/bin/getpppinfo -r ppp1`
if [ "x$rppp1" != "x" ]; then
i=15
fi
done
fi
maxtries=`expr $maxtries - 1`
else
maxtries=0
fi
done
if [ "x$rppp0" != "x" -a "x$rppp1" != "x" ]; then
echo "========================================================"
if [ "x$set_ppp0" != "x" -o "x$set_ppp1" != "x" ]; then
lppp=`/usr/local/bin/getpppinfo -l ppp0`
/sbin/route del `/usr/local/bin/getpppinfo -r ppp0`
/sbin/route del `/usr/local/bin/getpppinfo -r ppp1`
/sbin/route del `/usr/local/bin/getpppinfo -l ppp0`
/sbin/route del `/usr/local/bin/getpppinfo -l ppp1`
/sbin/route del default
/sbin/ifconfig eql $lppp mtu 1500
/usr/local/bin/eql_enslave eql ppp0 57600
/usr/local/bin/eql_enslave eql ppp1 57600
/sbin/route add -host $lppp eql
/sbin/route add default gw $lppp eql
/sbin/route
echo `date '+%D %X'` "eql established"
#echo "Restored eql for $set_ppp0 $set_ppp1" | mail -s "eql $lppp" eqlplus@sample.com
fi
ping -nqc 1 $rppp0
ping -nqc 1 $rppp1
fiМультилинк провайдер поддерживает. Еще один момент если оваливается ppp0 то естественно повисает ppp1 так как он работает только на передачу.
я бы на твоем месте не мучался и сделал бы все через ip route multipath,
т.к. особого смысла в eql в ядрах, начиная с 2.2 особого нет, кроме случая,
когда с другой стороны стоит какая-то посторонняя железка типа циски.
Но все-таки может быть кто-нибудь сталкивался с такой проблемой.
Кстати а по ip route приемлемая документация на русском есть?
С помощью iproute2 ты только сможешь добиться разделения каналов по задачам, интерфейсам.