Мы используем несколько поставщиков, одного из них для создания использования соединения 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
Ядро (не pppd) автоматически удаляет все связанные маршруты при удалении соответствующих интерфейсов.