web-dev-qa-db-ja.com

wvdial、ppp0およびデフォルトルートの設定(自動的に)

ヘッドレスマシン(raspberryPi/raspbian)でsupervisordを使用してwvdialによって監視される3G接続を設定しています。これは、3G接続が稼働している場合にのみアクセスできます。要するに、スーパーバイザーは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
2
Laurent S

/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

これは私にとってはうまくいきました。ルートを追加し、メトリックを設定することもできました。

2
Tychus

これに対する適切な解決策が見つからなかったため、次のような単純なcronスクリプトを選択しました。

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

見栄えは良くありませんが、それは仕事をします!デフォルトルートが利用可能かどうかをチェックし、利用できない場合はppp0を介してルートを追加します。

0
Laurent S