ADSL IP route

Radek Hyrsl radek123 na cbox.cz
Sobota Červen 28 11:49:26 CEST 2003


Já mám profi verzi ADSL na dvou místech od Telecomu. Na jednom místě mi běží
bez výpadku už 3 týdny a na druhém vypadává asi tak jednou za dva dny. Asi
bude záležet na kvalitě telefonní linky.

Jinak ten route by se měl automaticky nastavit, když se aktivuje ppp
rozhraní. Jestli se nepletu tak u RadHatu v
/etc/sysconfig/network-scripts/ifcfg-ppp0
by měl být parametr DEFROUTE=yes nebo v /etc/ppp/options parametr
defaultroute. Každé 3 minuty pak spouštím skript, který zkouší ping na
gateway Telecomu a případně znovu aktivuje ppp rozhraní



#!/bin/bash
# Check if ADSL Connection is still up... of not, kill it and restart
#
# (C) 2002 Mark Janssen, licensed under the GNU GPL version 2.
#
# Revision 1.1: A new version of ping had a different summary line, making
# checkadsl always fail (Grumble). Changed filter for packet loss to
# compensate this.
# Revision 1.2: Make it even better by just getting the percentage field
# out of the output


REMOTE=80.188.22.126   # testovaci IP adresa
MODEM=10.0.0.138       # IP adresa ADSL modemu


CHECK=`/bin/ping -c 5 -q $REMOTE | /bin/grep "loss"`
COUNT=`/bin/echo $CHECK | tr ' ' '\n' | grep '%$'`
LOGFILE=/var/log/adsl.log

date

if [[ "$COUNT" == "" ]]
then
 echo "Captain, the regex-es are failing again, she can't take it"
 echo "Please try and fix the bug (Has ping changed ???)"
 echo "Check = '$CHECK'"
 echo "Count = '$COUNT'"
 echo "Restarting connection..."
 COUNT="100%"
fi

if [[ "$COUNT" == "100%" ]]
then
 echo "WARNING: Packet loss ($COUNT)"

 # Kill all pptp processes and restart connection

 /usr/bin/killall pptp
# /usr/bin/killall pppd
 sleep 2
# kill -9 `ps -ef | grep -e pptp -e pppd | grep -v grep | awk '{print $2}'`
 sleep 2
 rm -f /var/lock/LCK..pts*

 cd /root
# nohup /usr/sbin/pptp $MODEM --phone pc1 file /etc/ppp/options.adsl >>
$LOGFILE &
 /usr/sbin/pptp $MODEM >> $LOGFILE
else
 echo "OK: $COUNT Packet loss"
fi

echo "----------------------------------------------------"





Další informace o konferenci Linux