Я запустил gre-туннель
[INDENT]#!/bin/sh
#------------------------------------------------------------
# параметры подключения выданные провайдером
#------------------------------------------------------------
# активный PID
PID=4хxx
# IP-адрес подписки
MY_PROVIDER_IP=хх.xx.xx.xx
# IP провайдера
PROVIDER_IP=80.81.208.66
#------------------------------------------------------------
# дополнительные параметры
#------------------------------------------------------------
# MAC адрес устройства
MAC=00:D0:xx:xx:xx:xx
# сетевой интерфейс наземного канала
PPP_NAME=ppp0
IF_NAME=dvb0_0
GRE_NAME=gre1
case "$1" in
start)
/sbin/modprobe ipip
/sbin/modprobe ip_gre
echo -n "Попытка залочить сигнал со спутника..."
szap -c /etc/channels.conf -n 1 -x | grep FE_HAS_LOCK 1>/dev/null
echo "успешно"
if ! (dvbnet -p $PID 1>/dev/null); then
echo "Немогу задействовать спутниковую карту!"
exit 1
fi
echo -n "Установка подключения по наземному каналу..."
if ! (/sbin/route -n | grep $PPP_NAME 1>/dev/null); then
pon dsl-provider 1>/dev/null
while ! (/sbin/route -n | grep $PPP_NAME 1>/dev/null); do
echo -n "."
sleep 1
done
fi
# мой реальный наземный IP
MY_REAL_IP=$(/sbin/ifconfig $PPP_NAME | perl -e 'join("",
) =~ /inet addr:(.*?)\s/; print "$1"')
# адрес наземного шлюза
REMOTE_IP=$(/sbin/ifconfig $PPP_NAME | perl -e 'join("", ) =~ /P-t-P:(.*?)\s/; print "$1"')
echo "успешно"
echo $'\tРеальный IP: ' $MY_REAL_IP
echo $'\tАдрес шлюза: ' $REMOTE_IP
echo -n "Создание GRE-туннеля..."
/sbin/ifconfig $IF_NAME $MY_PROVIDER_IP netmask 255.255.255.255 broadcast 1>/dev/null
/sbin/ifconfig $IF_NAME hw ether $MAC 1>/dev/null
echo 0 > /proc/sys/net/ipv4/conf/$IF_NAME/rp_filter
/sbin/ifconfig $IF_NAME $MY_PROVIDER_IP up 1>/dev/null
/sbin/route add $MY_PROVIDER_IP dev $IF_NAME 1>/dev/null
/sbin/ip route add $PROVIDER_IP via $REMOTE_IP src $MY_REAL_IP
/sbin/ip tunnel add $GRE_NAME mode gre local $MY_REAL_IP remote $PROVIDER_IP
/sbin/ifconfig $GRE_NAME $MY_PROVIDER_IP netmask 255.255.255.255
/sbin/ip route add 1.1.1.1 dev $GRE_NAME
echo "успешно"
echo -n "Проверка работоспособности интерфейса..."
if (ping 1.1.1.1 -I $MY_PROVIDER_IP -c 1 | grep "1 received" 1>/dev/null); then
echo "успешно"
else
echo "ошибка!"
exit 1
fi
# удаляем маршрут по умолчанию
/sbin/ip route del default
# добавляем маршрут по умолчанию
/sbin/ip route add default via 1.1.1.1 src $MY_PROVIDER_IP
echo "Запуск Sprint"
cd /home/maxim/Develop/upgre/maxim
/usr/sbin/sprint | grep 'is opened'
;;
stop)
/sbin/ifconfig $GRE_NAME down 1>/dev/null
/sbin/ip link set $GRE_NAME down 1>/dev/null
/sbin/ip tunnel del $GRE_NAME 1>/dev/null
/sbin/ifconfig $IF_NAME down 1>/dev/null
dvbnet -d 0 1>/dev/null
killall sprint 1>/dev/null
poff
;;
restart)
$0 stop
$0 start
;;
restart_sprint)
killall sprint
/usr/sbin/sprint 1>/dev/null &
;;
*)
echo "Usage: $0 {start|stop|restart|restart_sprint}"
exit 1
esac[/INDENT]
(C) anterior