On Sat, Feb 06, 2016 at 05:16:33PM +0300, Alexander Galanin wrote: > Настроил через interfaces PPTP-интерфейс, на поднятие которого добавляю > дополнительные маршруты: > > iface ppp0 inet ppp > provider work > up route add -net 192.168.12.0 netmask 255.255.255.0 $IFACE > up route add -net 192.168.115.0 netmask 255.255.255.0 $IFACE > > Подключаюсь через ifup ppp0. Секунд 10 добавленные маршруты живут, > после чего пропадают. Если добавить их заново, то на какое-то время они > остаются, после чего могут снова внезапно пропасть. > > Кто может сбрасывать маршруты, и как это отследить?
Маршруты могут сбрасываться при обрыве связи, если pppd запускается с флагом persist (что логично для использования interfaces), потом теряет линк и реконнектится. При этом в ряде случаев интерфейс удаляется и создаётся заново. Отследить очень просто: включить дебаг pppd и почитать его. Вообще, так делать не следует. Все маршруты нужно поднимать скриптами в /etc/ppp/ip-up.d/, потому что они привязаны к интерфейсу, а не к процессу pppd. Кроме того, метод "ppp" плох тем, что может дать конфликт юнитов. Если уж написано "iface ppp0", я бы предложил добавить "unit 0", чтобы не было расхождения между тем, что ожидает ifupdown, и тем, что в реальности создаст pppd (а он берёт первый свободный юнит, если юнит не задан явно). Использование скриптов из /etc/ppp/ip-up.d/, которые проверяют ipparam или какую-нибудь переменную, заданную через set, позволяет избежать потенциального конфликта. Наконец, вместо pptp лучше использоваь openvpn, он секьюрнее и умеет передавать маршруты от сервера клиенту, без всех этих заморочек. :) -- Eugene Berdnikov