[Решено] Ubuntu 10.04 + Network Manager + PPTP (Направление трафика через ВПН туннель)
Модератор: Модераторы разделов
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
[Решено] Ubuntu 10.04 + Network Manager + PPTP
Привет всем. Даная тема уже не раз обсуждалась и поднималась на даном форуме, вот только она связана только с ВПН без Менеджера сетейю
Проблема заключается в следующем: провайдер выдает по ДХСП все настройки кроме шлюза, соответственно требуется настройка маршрутизации, ну тут особых проблем нету, но вот после подключению к серверу по ВПН, Убунта не знает какой-трафик куда ей направлять, а точнее трафик интернета, так как после поднятия сессии шлюз для интернет-трафика - является айпишник, который получает впн клиент от провайдера в принципе ручками тоже не составляет проблем его дописать, но после отключения ВПН данный маршурут автоматом удалетса и его приходиться каждый раз по новой добавлять.
Да забыл сказать, что интересует подключение именно через Нетворк-менеджер, так как в консоли все эти маршруты я прописываю в /etc/ppp/ip-up и тогда через консоль даный шлюз без проблем подымается и все работает. Вопрос, как можно упростить даную процедуру, а точнее полностью сделать автоматическую маршрутизацию, что-бы она сама добавлялась при загрузке, а по возможности, чтобы она вообще забирала все нужные маршруты от провайдера через апаче( для виндоувса на сервере провайдера есть файлик маршрутизации, который при каждой загурке считываетса и автоматом пишет:
-"route add 194.44.*.* mask 255.255.255.255 10.18.79.253 metric 1 -p" , хотелось бы что бы это можно было делать и в убунту) Да еще в более ранней версии убунту в нетворк-менеджере стоило поставить галочку: "перенаправлять весь трафик через ВПН туннель" и тогда не нужно было добавлять маршрут для ВПН и добавлялса сам, сейчас такой галочки нету, а она нужна! Расскажите плиз и помагите, как мне организовать данную галочку, даже с возможностью перезборки пакета НЕТВОРК-менеджера и вообще ваши мысли!
Заранее благодарен!
Проблема заключается в следующем: провайдер выдает по ДХСП все настройки кроме шлюза, соответственно требуется настройка маршрутизации, ну тут особых проблем нету, но вот после подключению к серверу по ВПН, Убунта не знает какой-трафик куда ей направлять, а точнее трафик интернета, так как после поднятия сессии шлюз для интернет-трафика - является айпишник, который получает впн клиент от провайдера в принципе ручками тоже не составляет проблем его дописать, но после отключения ВПН данный маршурут автоматом удалетса и его приходиться каждый раз по новой добавлять.
Да забыл сказать, что интересует подключение именно через Нетворк-менеджер, так как в консоли все эти маршруты я прописываю в /etc/ppp/ip-up и тогда через консоль даный шлюз без проблем подымается и все работает. Вопрос, как можно упростить даную процедуру, а точнее полностью сделать автоматическую маршрутизацию, что-бы она сама добавлялась при загрузке, а по возможности, чтобы она вообще забирала все нужные маршруты от провайдера через апаче( для виндоувса на сервере провайдера есть файлик маршрутизации, который при каждой загурке считываетса и автоматом пишет:
-"route add 194.44.*.* mask 255.255.255.255 10.18.79.253 metric 1 -p" , хотелось бы что бы это можно было делать и в убунту) Да еще в более ранней версии убунту в нетворк-менеджере стоило поставить галочку: "перенаправлять весь трафик через ВПН туннель" и тогда не нужно было добавлять маршрут для ВПН и добавлялса сам, сейчас такой галочки нету, а она нужна! Расскажите плиз и помагите, как мне организовать данную галочку, даже с возможностью перезборки пакета НЕТВОРК-менеджера и вообще ваши мысли!
Заранее благодарен!
-
shotdownsystem
- Сообщения: 423
- ОС: Basic command interpreter
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
/etc/ppp/ip-down (run_down) дописать route...
putin писал(а): ↑13.12.2010 10:18Вопрос, как можно упростить даную процедуру, а точнее полностью сделать автоматическую маршрутизацию, что-бы она сама добавлялась при загрузке, а по возможности, чтобы она вообще забирала все нужные маршруты от провайдера через апаче( для виндоувса на сервере провайдера есть файлик маршрутизации, который при каждой загурке считываетса и автоматом пишет:
-"route add 194.44.*.* mask 255.255.255.255 10.18.79.253 metric 1 -p" ,
wget |grep|awk|bash
чегобы пожрать...
puts ("Working, please wait...");while(1);
-
taaroa
- Сообщения: 1319
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
маршрутизацией должен заниматься маршрутизатор (провайдер), а не клиент.
wget+awk+ip+sh
Код: Выделить всё
SOURCE=http://
NET=`/usr/bin/wget -O - -o /dev/null $SOURCE`
for n in $NET
do
echo $n
done | awk 'BEGIN { FS="|"} {print "/sbin/route add -net "$2" gateway gw eth0"}' > $OUT
blahblah:wq
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
taaroa писал(а): ↑13.12.2010 12:29
маршрутизацией должен заниматься маршрутизатор (провайдер), а не клиент.
wget+awk+ip+sh
Код: Выделить всё
SOURCE=http:// NET=`/usr/bin/wget -O - -o /dev/null $SOURCE` for n in $NET do echo $n done | awk 'BEGIN { FS="|"} {print "/sbin/route add -net "$2" gateway gw eth0"}' > $OUT blahblah
Спасибо за скриптик-сегодня буду пробывать, если-чё ждите со слезами
По поводу провайдера он как-бы занимаетса, но вот для юникс-бодобных никак не может, а у нас в сетке много сидят на Убунте, по этому вот и упрощаю всем жизнь, а как по поводу VPN? Как сделать чтобы подключаясь через нетворк-менеджер он автоматом делал себя шлюзом, куда, что писать? Извините если повторюсь.
i Уведомление от модератора blackdevil Просьба не коверкать язык. Если правильно писать не получается - используйте спеллчекер.
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Не получаться, вот что пишет:
/home/fobos/route.sh: строка 6: $OUT: неоднозначное перенаправление
/home/fobos/route.sh: строка 7: blahblah: команда не найдена
Помогите плиз.
Пару строк с файла pi1_route.srv:
Я так понимаю это не правильный вариант, а правильный должен быть так:
"route add -net 10.18.255.0 netmask 255.255.255.0 gw 10.18.31.254" ?
/home/fobos/route.sh: строка 6: $OUT: неоднозначное перенаправление
/home/fobos/route.sh: строка 7: blahblah: команда не найдена
Помогите плиз.
Код: Выделить всё
SOURCE=http://10.18.31.253/kpi1-route/kpi1_route.srv
NET=`/usr/bin/wget -O - -o /dev/null $SOURCE`
for n in $NET
do
echo $n
done | awk 'BEGIN { FS="|"} {print "/sbin/route add -net "$2" gateway gw eth0"}' > $OUT
blahblahПару строк с файла pi1_route.srv:
Код: Выделить всё
-"route add 10.18.0.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.1.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.8.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.12.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.18.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.20.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.22.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.24.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.36.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.40.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.44.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.48.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.52.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.92.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.148.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.152.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.156.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.157.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.158.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.255.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"Я так понимаю это не правильный вариант, а правильный должен быть так:
"route add -net 10.18.255.0 netmask 255.255.255.0 gw 10.18.31.254" ?
-
shotdownsystem
- Сообщения: 423
- ОС: Basic command interpreter
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
blahblah - проприетарная программа автора, попросите лично, может даст.
OUT = "~/.route" или вместо "> OUT" write "|bash"
puts ("Working, please wait...");while(1);
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
не получается, вот что пишет:
awk: cannot open write (No such file or directory)
awk: cannot open write (No such file or directory)
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
putin
Попробуйте:
Попробуйте:
Код: Выделить всё
#!/bin/bash
declare -r SOURCE=http://10.18.31.253/kpi1-route/kpi1_route.srv;
function get_mask()
{
: ${1:?Mask expected};
IFS=.;
declare -a IP_addr=($1);
unset IFS;
declare -i iterator result=0;
for iterator in {0..3}; do
let result+=$((8-$(bc -l <<< "result=l($((256-${IP_addr[$iterator]})))/l(2); scale=0; result/1;")));
done
printf %i $result;
}
declare -a route_data;
declare route_line;
while read route_line; do
route_data=($(cut -d " " -f 3,5,6 <<< "$route_line"));
ip route add ${route_data[0]}/$(get_mask ${route_data[1]}) via ${route_data[2]};
done < <(wget -O - -q $SOURCE | grep -v ^$);-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Нет не получается, вот что пишет:
Это при виде файла kpi1_route.srv:
И вот что пишет, когда я изменяю содержимое файла kpi1_route.srv:
Содержимое файла kpi1_route.srv такое:
Какой вариант kpi1_route.srv правильный, и что делать дальше-не получается, буду очень благодарен.
Код: Выделить всё
Error: an inet prefix is expected rather than "/".
/home/fobos/route.sh: строка 5: 1: Mask expected
Error: an inet prefix is expected rather than "/".
/home/fobos/route.sh: строка 5: 1: Mask expected
Error: an inet prefix is expected rather than "/".
/home/fobos/route.sh: строка 5: 1: Mask expected
Error: an inet prefix is expected rather than "/".Это при виде файла kpi1_route.srv:
Код: Выделить всё
-"route add 10.18.0.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.1.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.8.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.12.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.18.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.20.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.22.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.24.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.36.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.40.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.44.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.48.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.52.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.92.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.148.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.152.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.156.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.157.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.158.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.255.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"И вот что пишет, когда я изменяю содержимое файла kpi1_route.srv:
Код: Выделить всё
/home/fobos/route.sh: строка 5: 1: Mask expected
Error: an inet prefix is expected rather than "/".
/home/fobos/route.sh: строка 11: 256-: ошибка синтаксиса: ожидается операнд (error token is "-")
/home/fobos/route.sh: строка 11: 8-: ошибка синтаксиса: ожидается операнд (error token is "-")
Error: an inet prefix is expected rather than "-net/".
/home/fobos/route.sh: строка 11: 256-: ошибка синтаксиса: ожидается операнд (error token is "-")
/home/fobos/route.sh: строка 11: 8-: ошибка синтаксиса: ожидается операнд (error token is "-")
Error: an inet prefix is expected rather than "-net/"Содержимое файла kpi1_route.srv такое:
Код: Выделить всё
route add -net 10.18.255.0 netmask 255.255.255.0 gw 10.18.31.254
route add -net 10.18.18.0 netmask 255.255.0.0 gw 10.18.31.254Какой вариант kpi1_route.srv правильный, и что делать дальше-не получается, буду очень благодарен.
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Ребята, я извиняюсь. Маршрутизация добавилась при первом варианте файла "kpi1_route.srv"
Но ошибки те которые я писал все-равно есть, что делать?
Код: Выделить всё
-"route add 10.18.0.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.1.0 mask 255.255.255.0 10.18.31.254 metric 1 -p"
-"route add 10.18.8.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.12.0 mask 255.255.252.0 10.18.31.254 metric 1 -p"
-"route add 10.18.18.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"
-"route add 10.18.20.0 mask 255.255.254.0 10.18.31.254 metric 1 -p"Но ошибки те которые я писал все-равно есть, что делать?
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Видимо, в файле источника обилие пустых строк. Немного изменил скрипт в своём сообщении - пробуйте.
Спасибо сказали:
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Rootlexx писал(а): ↑14.12.2010 11:41Видимо, в файле источника обилие пустых строк. Немного изменил скрипт в своём сообщении - пробуйте.
Да действительно-все работает теперь без проблем, я даже уже сделал скрипт для автоматической установки в систему и запуска при каждой загрузке. Спасибо-выручили!
Теперь вот вопрос за малым, как сделать чтобы VPN автоматом делал себя дефолтным шлюзом?
Я копировал файл /etc/ppp/ip-up в /etc/ppp/ip-up.d/ добавив туда несколько строк:
Код: Выделить всё
route del default
route add 0.0.0.0 netmask 0.0.0.0 gw $PPP_LOCALИ тогда вроде все нормально начинало работать все как нужно, но вот при отключении VPN - система начинает жутко тормозить (машина не сильная), подскажите, пожалуйста, как здесь быть?
Код: Выделить всё
root@fobos:/home/fobos# cat /etc/ppp/ip-up.d/ip-up
#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional ``ipparam'' value foo
# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
route del default
route add -net 0.0.0.0 netmask 0.0.0.0 gw $PPP_LOCAL
# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME
# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
exec > /var/log/ppp-ipupdown.log 2>&1
echo $0 $*
echo
fi
# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; then
exec /etc/ppp/ip-up.local "$*"
fi
run-parts /etc/ppp/ip-up.d \
--arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6"
# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
rm /var/run/ppp-quick
wait
kill $PPPD_PID
fi-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Зачем? Почитайте комментарий в этом скрипте.
Достаточно было создать исполняемый файл, скажем, /etc/ppp/ip-up.d/route со следующим содержимым:
Код: Выделить всё
ip route delete default
ip route add default via $4Неудивительно.
После поднятия интерфейса выполняется /etc/ppp/ip-up, который с помощью run-parts запускает все скрипты в /etc/ppp/ip-up.d. Если вы в данный каталог поместили копию /etc/ppp/ip-up с косметическими изменениями, то эта копия снова запускает все скрипты в /etc/ppp/ip-up.d, включая саму себя, - в результате происходит рекурсивный запуск всё новых и новых копий данного скрипта, что быстро истощает доступные ресурсы системы.
Спасибо сказали:
-
putin
- Сообщения: 20
- ОС: XP+FreeBSD
Re: [Решено] Ubuntu 10.04 + Network Manager + PPTP
Rootlexx писал(а): ↑14.12.2010 18:20
Зачем? Почитайте комментарий в этом скрипте.
Достаточно было создать исполняемый файл, скажем, /etc/ppp/ip-up.d/route со следующим содержимым:
Код: Выделить всё
ip route delete default ip route add default via $4
Неудивительно.
После поднятия интерфейса выполняется /etc/ppp/ip-up, который с помощью run-parts запускает все скрипты в /etc/ppp/ip-up.d. Если вы в данный каталог поместили копию /etc/ppp/ip-up с косметическими изменениями, то эта копия снова запускает все скрипты в /etc/ppp/ip-up.d, включая саму себя, - в результате происходит рекурсивный запуск всё новых и новых копий данного скрипта, что быстро истощает доступные ресурсы системы.
Спасибо всем! простите за мое нубство, но если бы не Вы ничего не работало, а так все хорошо!
Все отлично, у меня слов просто не хватает, как я доволен и признателен.