wvdial, ppp0 и установка маршрута по умолчанию (автоматически)

8583
Laurent S

Я настраиваю соединение 3G, которое будет отслеживаться с supervisordпомощью wvdialбезголового компьютера (raspberryPi / raspbian), доступ к которому я могу получить только через соединение 3G, как только оно активируется. Короче говоря, supervisor поддерживает работу wvdial с отключенным автоматическим подключением wvdial (я где- то читал, что wvdial не слишком хорош в автоматическом переподключении).

Соединение остается без проблем, но маршрут по умолчанию не всегда установлен, и в этом случае я не могу получить доступ к коробке. Я не могу вручную установить маршрут sudo route add default ppp0, очевидно, он не сработает, как только появится. Я мог бы просто запустить вышеупомянутое в сценарии, но, поскольку он не работает, если маршрут уже существует, мне потребуется некоторая обработка ошибок, и должен быть какой-то чистый способ сделать это. Любые советы по отсутствующей опции конфигурации?

Мой конфиг (я думаю, что это соответствующие файлы):

/etc/wvdial.conf:

[Dialer Defaults] Modem Type = Analog Modem ISDN = 0 Phone = *99# Stupid mode=1 Auto Reconnect = off  [Dialer myprovider] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 Baud = 115200 Modem = /dev/gsmmodem Username = xxxx Password = xxxx 

/etc/ppp/peers/wvdial:

noauth name wvdial defaultroute replacedefaultroute 

/etc/network/interfaces:

auto eth0 iface eth0 inet static address 192.168.2.10 netmask 255.255.255.0 gateway 192.168.2.1 dns-nameservers 8.8.8.8 8.8.4.4 
0

2 ответа на вопрос

2
TheBrash

Вы можете написать свой собственный скрипт, который выполняет маршрутизацию в /etc/ppp/ip-up.d/

любой скрипт в этом каталоге вызывается из скрипта /etc/ppp/ip-up

эти переменные доступны из ip-up:

# This script is called with the following arguments: # Arg Name Example # $1 Interface name ppp0 # $2 The tty ttyS1 # $3 The link speed 38400 # $4 Local IP number 12.34.56.78 # $5 Peer IP number 12.34.56.99 # $6 Optional ``ipparam'' value foo # These variables are for the use of the scripts run by run-parts PPP_IFACE="$1" PPP_TTY="$2" PPP_SPEED="$3" PPP_LOCAL="$4" PPP_REMOTE="$5" PPP_IPPARAM="$6" export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM 

это работало для меня, был в состоянии добавить маршруты и также установить метрику.

0
Laurent S

I couldn't find any good solution for this, so I went for a simple cron script that does the following:

#!/bin/bash route_found=$(/sbin/route -n | /bin/grep -c ^0.0.0.0) ppp_on=$(/sbin/ifconfig | /bin/grep -c ppp0) if [ $route_found -eq 0 ] && [ $ppp_on -eq 1 ] then /sbin/route add default ppp0 fi 

Not great looking, but it does the job! It just checks if a default route is available, and adds one through ppp0 if not.

Похожие вопросы