2015-06-01 8 views
-1

Я здесь, на коробке Arch Linux с рабочим ETH0 (фиксированным IP) и PPP-соединением через USB-накопитель 3G (ttyUSB0). После перезагрузки ETH0 работает нормально. Установление соединения PPP также отлично работает. Но после использования «poff», чтобы отменить соединение PPP, я снова не получаю маршрут по умолчанию. Я знаю, как настроить маршрут по умолчанию вручную, но поскольку ящики linux будут зарегистрированы в различных сетях, мне нужно найти автоматизированный процесс возврата по умолчанию после использования PPP-соединения.Нет маршрута по умолчанию после возвращения из соединения PPP

ETH0 был настроен в /etc/conf.d/net-conf-eth0:

address = 10.0.1.30 
netmask = 24 
broadcast = 10.0.1.255 
gateway = 10.0.1.1 

PPP была установка с использованием

pacman -S ppp 

... и следующие конфигурационные файлы:

/и т.д./ррр/IP предварительно до

#!/bin/sh 
/usr/bin/route del default 

/и т.д./ррр/опции-мобильные

ttyUSB0 
921600 
lock 
crtscts 
modem 
passive 
novj 
defaultroute 
noipdefault 
usepeerdns 
noauth 
hide-password 
persist 
holdoff 10 
maxfail 0 
debug 

таблицы маршрутизации до установления соединения PPP:

# route 
Kernel IP routing table 
Destination  Gateway  Genmask   Flags Metric Ref Use Iface 
default   router.intern 0.0.0.0   UG 0  0  0 eth0 
default   router.intern 0.0.0.0   UG 1024 0  0 eth0 
10.0.1.0  *    255.255.255.0 U  0  0  0 eth0 
router.intern *    255.255.255.255 UH 1024 0  0 eth0 

таблицы маршрутизации после успешного соединения PPP:

# route 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
10.0.1.0  *    255.255.255.0 U  0  0  0 eth0 
router.intern *    255.255.255.255 UH 1024 0  0 eth0 

Что я пропал без вести?

ответ

0

Чтобы ответить на мой собственный вопрос:/etc/ppp/ip-down - это ключ. (Я попытался поместить сценарий в /etc/ppp/ip-down.d/, но иногда он не будет выполнен. Ip-down получает SIGTERM из pppd слишком рано.) Поэтому я изменил/etc/ppp/ip ом:

!/bin/sh 
# 
# This script is run by pppd after the connection has ended. 
# 

ETH_Gateway=$(/usr/bin/cat /etc/conf.d/net-conf-eth0 | /usr/bin/grep 'gateway' | /usr/bin/grep -oE '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+') 
/usr/bin/route del default 
/usr/bin/ip route add default via $ETH_Gateway 

# Execute all scripts in /etc/ppp/ip-down.d/ 
for ipdown in /etc/ppp/ip-down.d/*.sh; do 
    if [ -x $ipdown ]; then 
    # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam 
    $ipdown "[email protected]" 
    fi 
done