wvdial, ppp0 und Standardroute festlegen (automatisch)

8635
Laurent S

Ich gründe eine 3G - Verbindung bis zu von überwacht wird supervisordunter Verwendung von wvdialauf einer Made Maschine (Raspberry Pi / raspbian), die ich nur Zugriff über die 3G - Verbindung kann, wenn es zu leben ist. Kurz gesagt, Supervisor läuft wvdial weiter, wobei wvdial autoreconnect ausgeschaltet ist (ich habe irgendwo gelesen, dass wvdial nicht zu gut ist, um die Verbindung automatisch wieder herzustellen).

Die Verbindung bleibt ohne Probleme bestehen, aber die Standardroute ist nicht immer festgelegt. In diesem Fall kann ich nicht auf die Box zugreifen. Ich kann die Route nicht manuell einstellen sudo route add default ppp0, offensichtlich funktioniert das nicht einmal live. Ich könnte das obige einfach in einem Skript ausführen, aber da es fehlschlägt, wenn die Route bereits existiert, brauche ich eine Fehlerbehandlung, und es muss eine saubere Methode geben. Irgendwelche Hinweise zur fehlenden Konfigurationsoption?

Meine Konfig (ich denke das sind die relevanten Dateien):

/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 Antworten auf die Frage

2
TheBrash

Sie können Ihr eigenes Skript schreiben, das das Routing ausführt /etc/ppp/ip-up.d/

Jedes Skript in diesem Verzeichnis wird vom Skript aus aufgerufen /etc/ppp/ip-up

Diese Variablen sind von ip-up aus zugänglich:

# 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 

Dies funktionierte für mich in der Lage, Routen hinzuzufügen und auch die Metrik festzulegen.

0
Laurent S

Ich konnte keine gute Lösung dafür finden, also habe ich mich für ein einfaches Cron-Skript entschieden, das folgendes tut:

#!/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 

Nicht gut aus, aber es macht den Job! Es prüft nur, ob eine Standardroute verfügbar ist, und fügt eine durch ppp0 hinzu, falls nicht.