Как предотвратить pppd для удаления маршрута по умолчанию?

Мы используем несколько поставщиков, одного из них для создания использования соединения pppoe через pppd демона на человечности 14.04.

Рано без нескольких поставщиков pppd управляет маршрутом по умолчанию отдельно (создающий его, когда соединение устанавливается, и удалите его, когда pppoe снижается). Но теперь я запретил его со следующими опциями в peers/rt

nodefaultroute
noreplacedefaultroute

Поскольку мне нужны более сложные IP правила для под управлением схемы с несколькими поставщиками.

Я исследовал pppd IP сценариев, IP вниз, ip-up.d, ip-down.d, но не делаю найденного удаления маршрута по умолчанию.

Таким образом, я предположил, что это делает это в их коде.

Я могу добавить post-down директива в конфигурации поставщика /etc/network/interfaces файл, как:

ip route add default dev ppp60 table default

Как прием.

Я запланировал управлять маршрутом по умолчанию в отдельном init сценарии.

Есть ли существует обходное решение для, предотвращают pppd для управления (удаляют) маршрут по умолчанию?

UPDATE1:

Я хочу запретить pppd удалять маршрут по умолчанию default dev ppp60 scope link, когда соединения будут переинициированием, или спуститься.

Я использую интерфейсы (pppd, управляется ifup и командами ifdown), и стандарт debian/ubuntu сетевые инструменты конфигурирования подсистемы, как:

auto rt
iface rt inet ppp
provider rt
pre-up /sbin/ifconfig ethtop up
post-up until ip a | grep -q ppp60; do sleep 1 > /dev/null; done
post-up ip route add default via "$( ip -4 a show dev "ppp60" |   grep -E '\<peer\>' | sed -r 's/.*peer ([^ /]*).*/\1/' )" table isc-rt
post-up ip rule add pref 30001 fwmark "0x$( gethostip -x "$(ip -4 a show dev "ppp60" | grep -E '\<inet\>' | sed -r 's/.*inet ([^ /]*).*/\1/')" )" lookup isc-rt
post-up ip rule add pref 30002 from "$( ip -4 a show dev "ppp60" | grep -E '\<inet\>' | sed -r 's/.*inet ([^ /]*).*/\1/' )" lookup isc-rt
post-up ip rule add pref 30003 to "$( ip -4 a show dev "ppp60" | grep -E '\<peer\>' | sed -r 's/.*peer ([^ ]*).*/\1/'  )" lookup isc-rt
post-up /etc/init.d/fw restart
post-down ip route flush table isc-rt
post-down ip rule del pref 30001
post-down ip rule del pref 30002
post-down ip rule del pref 30003
post-down /etc/init.d/fw restart

Это - мои основные маршруты:

root@gate:/etc/ppp# ip route list
default dev ppp60  scope link 
10.0.3.0/24 dev lxcbr0  proto kernel  scope link  src 10.0.3.1 
10.8.0.0/24 via 192.168.128.13 dev br-eth0 
83.Y.Y.196 dev ppp60  proto kernel  scope link  src 93.Y.Y.67 
95.X.X.0/24 dev ethmiddle  proto kernel  scope link  src 95.X.X.40 
192.168.128.0/24 dev br-eth0  proto kernel  scope link  src 192.168.128.1 

Также у меня есть таблицы для каждого поставщика с, он - шлюз по умолчанию

Это - мои pppd опции:

root@gate:/etc/ppp# awk '!/^ *#/ && NF' /etc/ppp/options 
asyncmap 0
noauth
crtscts
lock
hide-password
modem
lcp-echo-interval 30
lcp-echo-failure 4
noipx

Это - моя текущая конфигурация однорангового узла поставщика:

user "gsdf6sg84"
noipdefault
defaultroute
unit 60
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
noauth
persist
mtu 1492
maxfail 0
plugin rp-pppoe.so ethtop
debug
0
задан 31 August 2015 в 09:18
1 ответ

Ядро (не pppd) автоматически удаляет все связанные маршруты при удалении соответствующих интерфейсов.

1
ответ дан 4 December 2019 в 16:50

Теги

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