selivan |
|
Темы:
1
Сообщения:
7
Участник с: 03 января 2009
|
Есть подключение по локальной сети и инет по pptp. При отсутствии подключения по pptp надо чтобы был прописан статический маршрут по-умолчанию, т. к. провайдер даёт доступ на некоторые сайты, в том числе для активации инет-карты, и при отключенном инете. При подключении естественно default route должен быть прописан через него. Несмотря на опцию defaultroute, pppd не прописывает маршрут по-умолчанию, если статический маршрут уже задан. В логах даже при заданном debug ничего про маршрут по-умолчанию нет. Как его заставить это делать? В debian'е использовал pre-up route del default в /etc/network/interfaces, как это делается в Arch здесь не знаю. Можно конечно вручную всё прописать через /etc/rc.local, но хочется сохранить функциональность /etc/rc.d/ppp start|stop , иначе каждый раз при отключении инета придётся руками default route прописывать /etc/ppp/options.pptp: lock noauth nobsdcomp nodeflate persist maxfail 0 holdoff 1 remotename PPTP ipparam provider pty "pptp 192.168.149.1 --nolaunchpppd" name <username> file /etc/ppp/options.pptp defaultroute |
bosha |
|
Темы:
5
Сообщения:
67
Участник с: 01 октября 2008
|
Самый простой способ. Это создать скрипт на запуск, и юзать его. Вот вариант моего скрипта:#!/usr/local/bin/bash #Скрипт на поднятие впн Аист #Запускать от рута GW="10.2.65.193" clear echo "Adding VPN server and DNS server routes" echo " " route add -host 81.28.160.1 gw $GW route add -host 81.28.160.111 gw $GW route add -host 192.168.0.1 gw $GW route add -host 192.168.0.3 gw $GW route add -host 192.168.0.3 gw $GW echo "Added succesfull" echo "Adding AIST.NET routes" echo " " route add -net 192.168.0.0 netmask 255.255.255.0 gw $GW route add -net 172.16.0.0 netmask 255.240.0.0 gw $GW route add -net 10.0.0.0 netmask 255.0.0.0 gw $GW route add -net 213.180.192.0 netmask 255.255.224.0 gw $GW route add -net 77.88.0.0 netmask 255.255.192.0 gw $GW route add -net 87.250.224.0 netmask 255.255.224.0 gw $GW echo "Added succesfull" echo " " echo "wait 5 seconds while we up ppp0" pon твой провайдер или файл /etc/ppp/peers/ sleep 5 echo "Adding default route for ppp0" route add default dev ppp0 echo "All successful! Now you can use your Internet VPN connection!" Поднимай, опускай интерфейс - внутрение ресурсы должны работать и идти через твой основной интерфейс eth0. зы…..Паузу можешь убрать, это у меня провайдер тормоз ;) |
selivan |
|
Темы:
1
Сообщения:
7
Участник с: 03 января 2009
|
Пропиши в /etc/ppp/peers/<твой провайдер> опцию defaultroute иsleep 5 route add default dev ppp0 У меня скрипт выглядит ещё проще: route del default pon provider Но я хочу добиться нормальной работы /etc/rc.d/ppp как службы, чтобы при отсутствии pptp подключения стоял статический default route, а при наличии - через ppp0 |
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
man pppd на предмет: 1. Секция ROUTING 2. скрипты /etc/ppp/ip-up, /etc/ppp/ip-down если коротко: в ip-up сохранить текущий маршрут “по умолчанию”, удалить его из таблицы роутинга, поставить маршрут на интерфейс ppp#, в ip-down удалить маршрут от ppp и восстановить исходный маршрут “по умолчанию” либо смотреть какие патчи накаладывали в debian, что там появился параметр replacedefaultroute: replacedefaultroute This option is a flag to the defaultroute option. If defaultroute is set and this flag is also set, pppd replaces an existing default route with the new default route.
systemd должен умереть.
|
bosha |
|
Темы:
5
Сообщения:
67
Участник с: 01 октября 2008
|
selivan У меня скрипт выглядит так, по причине того, что defaultroute в /etc/ppp/peers/provider не хочет работать, и маршруты прописанные в ip-up и ip-down тоже не прописываются когда я поднимаю впн. И плюс ко всему это мой старый скрипт, в новом маршрутиризация сложнее, и он работает как демон. Я просто не совсем понял что ты хотел сделать. |
selivan |
|
Темы:
1
Сообщения:
7
Участник с: 03 января 2009
|
Спасибо, теперь всё работает как хотелось :D Вот скрипты для сохранения default route перед поднятием ppp-интерфейса и его восстановления при опускании интерфейса: /etc/ppp/ip-pre-up #!/bin/sh # parameters: interface-name peer-name user-name tty-device speed gw=$( /sbin/route -n | /bin/grep '^0.0.0.0' | /bin/tr -s ' ' | /bin/cut -d' ' -f 2 ) echo "/sbin/route add default gw $gw" > /var/run/$1.oldroute /sbin/route del default /etc/ppp/ip-down #!/bin/sh eval $( cat /var/run/$1.oldroute) rm /var/run/$1.oldroute |
selivan |
|
Темы:
1
Сообщения:
7
Участник с: 03 января 2009
|
bosha Может быть defaultroute не хочет работать по той же причине что и у меня - default gw уже есть? Маршруты из ip-up и ip-down могут не прописываться потому что в них PATH установлен какой-то кривой: /usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:. <IMHO>Мой с h4tr3d вариант как-то проще и красивее, чем писать отдельный скрипт как демон</IMHO> |
duov |
|
Темы:
3
Сообщения:
6
Участник с: 19 ноября 2008
|
selivan Вот спасибо тебе, добрый человек. Я уже задолбался, все не мог понять почему у меня маршруты из ppp/ip-up не подымаются, уже и на NetworkManager грешил и на wvdial. Думал может они маршруты перекосячивают. Причем cp тоже не работало оттуда, а при запуске ручками все работало на ура. Вообщем еще раз спасибо, про PATH вообще не подумал. |
albay |
|
Темы:
0
Сообщения:
1
Участник с: 22 марта 2011
|
Прошу прощения за поднятие старой темы. но у меня такая же проблема, перед подъёмом туннеля нужно вручную удалять маршрут по умолчанию. Я так и не догнал, о каком PATH идет речь. Я исправил PATH в файле .bashrc, но все равно не срабатывает. Как исправить PATH для демона pppd ? Arch Linux использую всего несколько дней, поставил впервые. Поиск приводит в эту тему. |
alexxx |
|
Темы:
1
Сообщения:
149
Участник с: 29 октября 2006
|
перед подъёмом туннеля нужно вручную удалять маршрут по умолчаниюЮзай /etc/ppp/ip-pre-up . Смотри man pppd, секцию SCRIPTS. |