Re: Куда пропадают маршруты?

2016-02-06 Пенетрантность Eugene Berdnikov
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



Re: Куда пропадают маршруты?

2016-02-06 Пенетрантность Alexander Galanin
On Sat, 6 Feb 2016 22:20:13 +0300
Eugene Berdnikov  wrote:

> > Кто может сбрасывать маршруты, и как это отследить?
> 
>  Маршруты могут сбрасываться при обрыве связи, если pppd запускается
>  с флагом persist (что логично для использования interfaces), потом
>  теряет линк и реконнектится. При этом в ряде случаев интерфейс удаляется
>  и создаётся заново. Отследить очень просто: включить дебаг pppd
>  и почитать его.

Да, дейсвительно маршруты пропадали одновременно с перезапуском
скриптов из ip-up.d.

>  Вообще, так делать не следует. Все маршруты нужно поднимать скриптами
>  в /etc/ppp/ip-up.d/, потому что они привязаны к интерфейсу, а не к
>  процессу pppd.

Так и сделал, работает. Спасибо!

>  Кроме того, метод "ppp" плох тем, что может дать конфликт юнитов.
>  Если уж написано "iface ppp0", я бы предложил добавить "unit 0",
>  чтобы не было расхождения между тем, что ожидает ifupdown, и тем,
>  что в реальности создаст pppd (а он берёт первый свободный юнит,
>  если юнит не задан явно). Использование скриптов из /etc/ppp/ip-up.d/,
>  которые проверяют ipparam или какую-нибудь переменную, заданную через
>  set, позволяет избежать потенциального конфликта.

Мне и самому не нравилось, что интерфейс назывался ppp0, но иначе в
interfaces я бы вообще никак его имя не получил. Сейчас использую
$IFNAME в ip-up-скрипте.

>  Наконец, вместо pptp лучше использоваь openvpn, он секьюрнее и умеет
>  передавать маршруты от сервера клиенту, без всех этих заморочек. :)

У меня нет возможности изменить VPN-сервер на удалённой стороне.

-- 
Alexander Galanin



Re: Куда пропадают маршруты?

2016-02-06 Пенетрантность Леонид Кальмаев
Я бы посоветовал сменить с $iface на via ip_gateway.