The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Вышел mpd-4.2, opennews (??), 27-Июн-07, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


46. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 06-Июл-07, 02:45 
Выпустил обновления ng_car-0.5 и mpd-4.2.2 для совместимости с FreeBSD 5.x.
Скоро должны появиться в портах.
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

47. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 07:44 
l2tp & default route freeze - http://homenet.corbina.net/index.php?showtopic=90275
Ответить | Правка | Наверх | Cообщить модератору

48. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 10:32 
>l2tp & default route freeze - http://homenet.corbina.net/index.php?showtopic=90275

Заворачивать роутинг на удаленную сторону тунеля внутрь самого тунеля вредно для здоровья. В данном случае это вызывает зацикливание и переполнение чего-то в ядре.

Как там и писалось, надо с самого начала при загрузке четко прибить роутинг на L2TP сервер по езеру:
route add 195.14.38.17 10.59.0.17

Ответить | Правка | Наверх | Cообщить модератору

49. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 13:16 
>>l2tp & default route freeze - http://homenet.corbina.net/index.php?showtopic=90275
>Как там и писалось, надо с самого начала при загрузке четко прибить
>роутинг на L2TP сервер по езеру.

А почему mpd4 так хочет прописать роут на server_ip через client_ip? Почему он не может использовать default в качестве маршрута до l2tp сервера и тогда при установке соединения up-script добавляет только $4 через дефолтный шлюз, а сам шлюз меняет на l2tp сервер?

Ну вот на кой черт у мя по netstat -rnf inet после поднятия mpd появляется такая строчка:
195.14.38.22       89.178.190.107     UH          0        7    ng0
когда как ifconfig ng0 говорит:
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1464
        inet 89.178.190.107 --> 195.14.38.22 netmask 0xffffffff

В чем прикол?

Просто если бы этот маршрут не прописывался, то конфигурация станет простой как:
<mpd.conf>:
default:
set iface enable tcpmssfix
load l2tp_vpn
open
fixroutes:
set iface up-script /usr/local/etc/mpd4/linkup
set iface down-script /tmp/linkdown
l2tp_vpn:
new -i ng0 l2tp_bundle corb_l2tp_link
load fixroutes
pptp_vpn:
new -i ng0 pptp_bundle corb_pptp_link
load fixroutes
</mpd.conf>

<mpd.links>
corb_l2tp_link:
set link type l2tp
set l2tp peer l2tp.corbina.net
set l2tp enable originate
set auth authname mylogin
corb_pptp_link:
set link type pptp
set pptp peer vpn.corbina.net
set pptp enable originate
set auth authname mylogin
</mpd.links>

<mpd.secret>
mylogin mypassword
</mpd.secret>

<linkup>
#!/bin/sh

l2tp_server=$4
lan_gate=`netstat -rn | awk '/default/ {print $2}'`

#а здесь не будет странного route delete $l2tp_server
route -q add $l2tp_server $lan_gate
route -q change default $l2tp_server # about 2 sec to freeze
</linkup>

mpd брал из cvs банально скопировав cp -R cvs/mpd/src/ net/mpd4/work/mpd/src/

Ответить | Правка | Наверх | Cообщить модератору

50. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 13:18 
>route -q change default $l2tp_server # about 2 sec to freeze

И эта строчка не приводила бы к зависанию... Если бы... Если бы... mpd не прописывал странные маршруты при установке соединения...

Ответить | Правка | Наверх | Cообщить модератору

51. "Не собирается на 4.x"  +/
Сообщение от Dmitryemail (??), 12-Июл-07, 13:49 
===>   mpd-4.2.2 depends on file: /usr/local/include/netgraph/ng_car.h - not found
===>    Verifying install for /usr/local/include/netgraph/ng_car.h in /usr/ports/net/ng_car
===>  Building for ng_car-0.5
===> kmod
Warning: Object directory not changed from original /usr/ports/net/ng_car/work/ng_car-0.5/kmod
cc -O2 -pipe   -D_KERNEL -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-q
ual  -fformat-extensions -ansi -DKLD_MODULE -nostdinc -I-  -I. -I@ -I@/../include  -mpreferred-stack-boundary=2 -Wall -Wredundant-decls -Wnes
ted-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -ansi -c ng_car.c
ng_car.c:487: macro `NG_RESPOND_MSG' used with only 4 args
ng_car.c:69: field `q_callout' has incomplete type
ng_car.c:70: field `q_mtx' has incomplete type
ng_car.c:91: syntax error before `item_p'
ng_car.c:91: warning: function declaration isn't a prototype
ng_car.c:185: conflicting types for `ng_car_constructor'
ng_car.c:81: previous declaration of `ng_car_constructor'
ng_car.c: In function `ng_car_constructor':
ng_car.c:212: warning: implicit declaration of function `ng_callout_init'
ng_car.c:213: warning: implicit declaration of function `mtx_init'
ng_car.c:213: `MTX_DEF' undeclared (first use in this function)
ng_car.c:213: (Each undeclared identifier is reported only once
ng_car.c:213: for each function it appears in.)
ng_car.c: In function `ng_car_newhook':
ng_car.c:244: warning: implicit declaration of function `bzero'
ng_car.c: At top level:
ng_car.c:260: syntax error before `item_p'
ng_car.c: In function `ng_car_rcvdata':
ng_car.c:261: number of arguments doesn't match prototype
ng_car.c:85: prototype declaration
ng_car.c:262: `hook' undeclared (first use in this function)
ng_car.c:269: warning: implicit declaration of function `NG_FREE_ITEM'
ng_car.c:269: `item' undeclared (first use in this function)
ng_car.c:280: warning: implicit declaration of function `NGI_M'
ng_car.c:280: warning: assignment makes pointer from integer without a cast
ng_car.c:368: warning: implicit declaration of function `NG_FWD_ITEM_HOOK'
ng_car.c: At top level:
ng_car.c:380: syntax error before `item_p'
ng_car.c: In function `ng_car_rcvmsg':
ng_car.c:381: number of arguments doesn't match prototype
ng_car.c:82: prototype declaration
ng_car.c:382: `node' undeclared (first use in this function)
ng_car.c:387: warning: implicit declaration of function `NGI_GET_MSG'
ng_car.c:387: `item' undeclared (first use in this function)
ng_car.c:397: warning: implicit declaration of function `bcopy'
ng_car.c:487: syntax error before `)'
ng_car.c:385: warning: `msg' might be used uninitialized in this function
ng_car.c:487: warning: control reaches end of non-void function
ng_car.c: At top level:
ng_car.c:83: warning: `ng_car_shutdown' used but never defined
ng_car.c:86: warning: `ng_car_disconnect' used but never defined
ng_car.c:88: warning: `ng_car_refillhook' used but never defined
ng_car.c:89: warning: `ng_car_schedule' declared `static' but never defined
ng_car.c:91: warning: `ng_car_enqueue' used but never defined
*** Error code 1

Stop in /usr/ports/net/ng_car/work/ng_car-0.5/kmod.
*** Error code 1

Stop in /usr/ports/net/ng_car/work/ng_car-0.5.
*** Error code 1

Stop in /usr/ports/net/ng_car.
*** Error code 1

Stop in /usr/ports/net/mpd4.

Ответить | Правка | Наверх | Cообщить модератору

54. "Не собирается на 4.x"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 14:06 
>===>  Building for ng_car-0.5
>ng_car.c:487: macro `NG_RESPOND_MSG' used with only 4 args
>ng_car.c:69: field `q_callout' has incomplete type
>ng_car.c:70: field `q_mtx' has incomplete type
>ng_car.c:91: syntax error before `item_p'

Как тебе это удалось? Какая система?
У меня это успешно собирается на 5.4, 6.2-STABLE и 7-CURRENT.

Ответить | Правка | Наверх | Cообщить модератору

55. "Не собирается на 4.x"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 14:12 
>Как тебе это удалось? Какая система?
>У меня это успешно собирается на 5.4, 6.2-STABLE и 7-CURRENT.

Сори, subj не заметил. На 4.x ng_car и не будет собираться, API netgraph другой, в порту даже проверка на это стоит.
Подхачь порт mpd на предмет зависимостей и собери без ng_car. mpd на 4.x без него соберется нормально.

Ответить | Правка | Наверх | Cообщить модератору

68. "Не собирается на 4.x"  +/
Сообщение от kirguduemail (?), 12-Июл-07, 22:50 
>>Как тебе это удалось? Какая система?
>>У меня это успешно собирается на 5.4, 6.2-STABLE и 7-CURRENT.
>
>Сори, subj не заметил. На 4.x ng_car и не будет собираться, API
>netgraph другой, в порту даже проверка на это стоит.
>Подхачь порт mpd на предмет зависимостей и собери без ng_car. mpd на
>4.x без него соберется нормально.


Проверка не проходит. Старый добрый способ ручками - гут. ;) Спасибо.

Ответить | Правка | Наверх | Cообщить модератору

53. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 14:02 
>>route -q change default $l2tp_server # about 2 sec to freeze
>
>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>mpd не прописывал странные маршруты при установке соединения...

Ничего mpd непрописывает. После запуска этой строчки у тебя остался роут на l2tp сервер смотрящий в езер? Сомневаюсь.

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

57. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 14:36 
>>>route -q change default $l2tp_server # about 2 sec to freeze
>>
>>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>>mpd не прописывал странные маршруты при установке соединения...
>
>Ничего mpd непрописывает. После запуска этой строчки у тебя остался роут на
>l2tp сервер смотрящий в езер? Сомневаюсь.

А почему он должен удалится? Вообще мой up-script прекрасно работает (и удаляет странный маршрут) на pptp соединении и прекрасно ВЕШАЕТ систему на l2tp. Случаи почти одинаковые (см. конфиги), но route change default работает по-разному.

Ответить | Правка | Наверх | Cообщить модератору

59. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 14:58 
>>>>route -q change default $l2tp_server # about 2 sec to freeze
>>>
>>>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>>>mpd не прописывал странные маршруты при установке соединения...
>>
>>Ничего mpd непрописывает. После запуска этой строчки у тебя остался роут на
>>l2tp сервер смотрящий в езер? Сомневаюсь.
>
>А почему он должен удалится? Вообще мой up-script прекрасно работает (и удаляет
>странный маршрут) на pptp соединении и прекрасно ВЕШАЕТ систему на l2tp.
>Случаи почти одинаковые (см. конфиги), но route change default работает по-разному.

У тебя на момент старта небыло роута кроме default. Потому я и написал. Недочитал, что ты в up-скрипте роутинг на него писал.

Но как после этого ты пишеш дефаулт роут через IP, который перед этим описал как роутящийся через езер? Что из этого получится? Если уж писать роут на IP сервера через ether, то default надо писать по идее как -interface $1.

Ответить | Правка | Наверх | Cообщить модератору

62. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 15:52 
>>>>>route -q change default $l2tp_server # about 2 sec to freeze
>Но как после этого ты пишеш дефаулт роут через IP, который перед
>этим описал как роутящийся через езер? Что из этого получится? Если
>уж писать роут на IP сервера через ether, то default надо
>писать по идее как -interface $1.

route change default $4 -interface $1
route: bad address: ng0
а вот если route change default -interface $1 (убрал адрес сервера), то
при пинге выходит ping: sendto: Address family not supported by protocol family, т.к.
запись становится:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            ng0                UGS         0      494    ng0

Но вот если сначала удалить default, а потом добавить route add default -interface $1, то
<здесь должно быть зависание, из которого можно выйти только с помощью SW_WATCHDOG>

ну а route add default $4 -interface $1 приводил к тому же bad address, для полноты картины

ps: пока тестил, натыкался на паники pf при перезапусках mpd. :)
жаль call doadump в ddb не работает, не смотря на мой swap, к-ый по правилам 2xRAM :(

Ответить | Правка | Наверх | Cообщить модератору

93. "Вышел mpd-4.2"  +/
Сообщение от xOr (ok), 11-Ноя-07, 22:40 
>>route -q change default $l2tp_server # about 2 sec to freeze
>
>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>mpd не прописывал странные маршруты при установке соединения...

Вызывай не напрямую скрипт, в котором команды производятся - а сначала другой скрипт, в котором нужный запускается в бакграунде. Тогда если команды займут много времени MPD не зависнет, так как будет работать параллельно.

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

52. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 13:59 
>А почему mpd4 так хочет прописать роут на server_ip через client_ip? Почему
>он не может использовать default в качестве маршрута до l2tp сервера
>и тогда при установке соединения up-script добавляет только $4 через дефолтный
>шлюз, а сам шлюз меняет на l2tp сервер?

Я не очень понял что ты имееш в виду, но если l2tp сервер будет доступен через default, то когда default укажет внутрь тонеля все и грохнется.

>Ну вот на кой черт у мя по netstat -rnf inet после
>поднятия mpd появляется такая строчка:
>195.14.38.22       89.178.190.107    
>UH          0
>       7    
>ng0
>когда как ifconfig ng0 говорит:
>ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1464
>        inet 89.178.190.107 --> 195.14.38.22 netmask 0xffffffff
>
>В чем прикол?

Это не mpd делает, а сама система. Так положенно. Обрати внимание на поле интерфейс.
Не в этом роуте дело.

>Просто если бы этот маршрут не прописывался, то конфигурация станет простой как:

Опиши все реально имеющиеся езерные роуты (НЕ default!) в rc.conf через route_XXX, добавь в конфиг строку
set iface route default
, убери все свои up/down скрипты и будет тебе счастье. Самое простое решение - обычно самое верное!

>mpd брал из cvs банально скопировав cp -R cvs/mpd/src/ net/mpd4/work/mpd/src/

В портах сейчас 4.2.2 - сейчас практически то-же что и в CVS, отличия пока минимальны.

Ответить | Правка | К родителю #49 | Наверх | Cообщить модератору

56. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 14:19 
>Я не очень понял что ты имееш в виду, но если l2tp
>сервер будет доступен через default, то когда default укажет внутрь тонеля
>все и грохнется.

Перед тем как default станет указывать на $l2tp_server, up-scripte добавит маршрут на $l2tp_server через $lan_gate, который был получен по dhcp.

>>Ну вот на кой черт у мя по netstat -rnf inet после
>>поднятия mpd появляется такая строчка:
>>195.14.38.22       89.178.190.107    
>>UH          0
>>       7    
>>ng0
>>когда как ifconfig ng0 говорит:
>>ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1464
>>        inet 89.178.190.107 --> 195.14.38.22 netmask 0xffffffff
>>
>>В чем прикол?
>
>Это не mpd делает, а сама система. Так положенно. Обрати внимание на
>поле интерфейс.
>Не в этом роуте дело.

Если не в роуте дело, то почему если роут на $l2tp_server через $lan_gate добавить до запуска mpd, то этот странный маршрут не появляется.

Может система че-то не так делает. Если че, то у мя 7-current.

>>Просто если бы этот маршрут не прописывался, то конфигурация станет простой как:
>
>Опиши все реально имеющиеся езерные роуты (НЕ default!) в rc.conf через route_XXX,
>добавь в конфиг строку
>set iface route default
>, убери все свои up/down скрипты и будет тебе счастье. Самое простое
>решение - обычно самое верное!

Это конечно хорошо, но... зачем мне засорять таблицу маршрутов ДО запуска mpd?

Пока обходным путем для меня стало создание /etc/rc.local со след. содержанием:
#!/bin/sh

gate=`netstat -rnf inet | awk '/default/ { print $2 }'`

for r in `dig +short l2tp.corbina.net`; {
        route add $r $gate
}

И это все просто потому, что я не знаю какой точно из round-robin адресов выберет mpd, т.к. параметр $4 (адрес сервера) конечно же не будет доступен rc.d. А хочется чтобы был только один маршрут, который реально использовался, это бы упростило настройку, т.к. в rc.conf достаточно было бы:
mpd_enable=YES
ifconfig_fxp0=DHCP
И ВСЕ!!! А со всеми маршрутами бы возился up-script и down-script.

Ответить | Правка | Наверх | Cообщить модератору

58. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 14:40 
>Если не в роуте дело, то почему если роут на $l2tp_server через
>$lan_gate добавить до запуска mpd, то этот странный маршрут не появляется.

Я кажется понял. Судя из переписки, l2tp сервер похоже имеет один и тот-же адрес 195.14.38.22 внутри и снаружи туннеля. Если это так - передайте привет админам корбины и пусть они расскажут, как полагается строить роутинг в данном случае.

>Может система че-то не так делает. Если че, то у мя 7-current.

Не в версии дело, любая версия при подъеме point-to-point интерфейса поднимает роутинг на его удаленную сторону. Соответственно если у тебя роут на тот IP был задан ранее, то он вероятно и останется, а если небыло, то получится такой как ты привел.

Видятся два варианта:
1. прописывать роут до старта mpd, что не даст системе его сменить и защитит от зацикливания,
2. как-то извратиться с ipfw fwd, чтобы трафик на l2tp порты гарантированно уходил в езер.

Ответить | Правка | Наверх | Cообщить модератору

60. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 15:09 
>1. прописывать роут до старта mpd, что не даст системе его сменить
>и защитит от зацикливания,

Но почему тогда зависания в случае с pptp соединением добиться не удается?
Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и pptp - оба point-to-point, по крайнейм мере в данном случае точно.

> 2. как-то извратиться с ipfw fwd, чтобы трафик на l2tp порты гарантированно уходил в езер.

Боюсь это не реально, т.к. ip и интерфейс, форвардить который нам надо, мы не знаем, а полагаться на один и тот же ответ от dns сервер глупо, ну а форвардить весь l2tp траффик это значит не иметь больше таких тоннелей. И так, и так криво.
Хотя... можно воспользоваться костылем, т.е. up-script'ом. Но боюсь он у меня тогда получится излишне перегруженным, если я буду через него управлять правилами ipfw и анчорами pf.

Наиболее разумным мне кажется поступить так же как с pptp тоннелем, т.е. заставить фрю как-нибудь не зависать в таких случаях.

Ответить | Правка | Наверх | Cообщить модератору

61. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 15:48 
>>1. прописывать роут до старта mpd, что не даст системе его сменить
>>и защитит от зацикливания,
>
>Но почему тогда зависания в случае с pptp соединением добиться не удается?
>
>Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и
>pptp - оба point-to-point, по крайнейм мере в данном случае точно.

Они очень похожи. Не думаю что должна быть между ними разница. Скорее какие-то другие факторы вроде объема буферов или чего-то еще.

>Наиболее разумным мне кажется поступить так же как с pptp тоннелем, т.е.
>заставить фрю как-нибудь не зависать в таких случаях.

Фря виснет вследствие закольцовки трафика и бесконнечного его туннелирования. Мысли поправить это витают давно, но даже когда это поправят проблема не уйдет. Система падать перестанет, но туннель работать не начнет.
Надо как-то разруливать кривизну с роутингом. Лучше бы корбина просто дала другой IP внутри тунеля, как это делаем мы у себя. Это бы автоматом решило большинство проблем. Другого _красивого_ решения я не вижу.

Ответить | Правка | Наверх | Cообщить модератору

63. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 16:00 
>>>1. прописывать роут до старта mpd, что не даст системе его сменить
>>>и защитит от зацикливания,
>>
>>Но почему тогда зависания в случае с pptp соединением добиться не удается?
>>
>>Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и
>>pptp - оба point-to-point, по крайнейм мере в данном случае точно.
>
>Они очень похожи. Не думаю что должна быть между ними разница. Скорее
>какие-то другие факторы вроде объема буферов или чего-то еще.

Как я уже неоднократно повторяю система не просто не виснет, а траффик по этому дефолтному маршруту ИДЕТ и я могу юзать инет на всю катушку.

Отсюда вопрос: а че по pptp траффик получается не закольцовывается?

Ответить | Правка | Наверх | Cообщить модератору

64. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 12-Июл-07, 16:04 
>Как я уже неоднократно повторяю система не просто не виснет, а траффик
>по этому дефолтному маршруту ИДЕТ и я могу юзать инет на
>всю катушку.
>
>Отсюда вопрос: а че по pptp траффик получается не закольцовывается?

Сравни таблицу маршрутизации, вероятно есть какие-то отличия. PPTP - это такой-же IP трафик, что и L2TP. Только в случае PPTP используется протокол GRE, а в случае L2TP - UDP.

Ответить | Правка | Наверх | Cообщить модератору

65. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 12-Июл-07, 18:28 
>>Как я уже неоднократно повторяю система не просто не виснет, а траффик
>>по этому дефолтному маршруту ИДЕТ и я могу юзать инет на
>>всю катушку.
>>
>>Отсюда вопрос: а че по pptp траффик получается не закольцовывается?
>
>Сравни таблицу маршрутизации, вероятно есть какие-то отличия. PPTP - это такой-же IP
>трафик, что и L2TP. Только в случае PPTP используется протокол GRE,
>а в случае L2TP - UDP.

Сравнил:
Адреса серверов выбрал рандомно.
=== l2tp ===
+++ без роута до 85.21.151.106 перед запуском mpd
mpd.links: set l2tp peer 85.21.151.106
% netstat -rnf inet
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.198.0.17        UGS         0       84   fxp0
10.198.0.0/16      link#2             UC          0        0   fxp0
10.198.0.17        xx:xx:xx:xx:xx:xx  UHLW        2        0   fxp0   1189
85.21.0.11         89.178.100.244     UH          0        0    ng0
127.0.0.1          127.0.0.1          UH          0      112    lo0
127.0.0.2          127.0.0.2          UH          0        0    lo0

% ifconfig ng0 inet
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet 89.178.100.244 --> 85.21.0.11 netmask 0xffffffff

% route change default 85.21.0.11
< зависание >
Или:
% route del 85.21.0.11
% route add 85.21.0.11 10.198.0.17 # теперь я понял что это бред, т.к. это выходная точка тунннеля, тогда как входной будет 85.21.151.106. Т.е. получается что мы этой строкой заставляем траффик ходить в конец точно также как и в начало. На кой черт тогда тоннель?
% route change default 85.21.0.11 # а эта строка тогда получается обрывает начало тоннеля.
< зависание >

+++ с роутом до 85.21.151.106 перед запуском mpd
% netstat -rnf inet
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.198.0.17        UGS         0      153   fxp0
10.198.0.0/16      link#2             UC          0        0   fxp0
10.198.0.17        xx:xx:xx:xx:xx:xx  UHLW        3        0   fxp0   1194
85.21.0.11         89.178.100.244     UH          0        0    ng0
85.21.151.106      10.198.0.17        UGHS        0       17   fxp0
127.0.0.1          127.0.0.1          UH          0      112    lo0
127.0.0.2          127.0.0.2          UH          0        0    lo0

% ifconfig ng0 inet
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet 89.178.100.244 --> 85.21.0.11 netmask 0xffffffff

% route change default 85.21.0.11
< траффик пошел >

=== pptp ===
+++ без роута до 195.14.38.22 перед запуском mpd
% netstat -rnf inet
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.198.0.17        UGS         0       15   fxp0
10.198.0.0/16      link#2             UC          0        0   fxp0
10.198.0.17        xx:xx:xx:xx:xx:xx  UHLW        2        0   fxp0   1198
127.0.0.1          127.0.0.1          UH          0       38    lo0
127.0.0.2          127.0.0.2          UH          0        0    lo0
195.14.38.22       89.178.191.15      UH          0        9    ng0

% ifconfig ng0 inet
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1464
        inet 89.178.191.15 --> 195.14.38.22 netmask 0xffffffff

% route change default 195.14.38.22
< траффик не идет >
Или:
% route del 195.14.38.22
% route add 195.14.38.22 10.198.0.17 # вход и выход в одном IP, админ видать сэкономил
% route change default 195.14.38.22
< траффик пошел >

+++ с роутом до 195.14.38.22 перед запуском mpd
% netstat -rnf inet
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.198.0.17        UGS         0    15637   fxp0
10.198.0.0/16      link#2             UC          0        0   fxp0
10.198.0.17        xx:xx:xx:xx:xx:xx  UHLW        3        0   fxp0   1194
127.0.0.1          127.0.0.1          UH          0       66    lo0
127.0.0.2          127.0.0.2          UH          0        0    lo0
195.14.38.22       10.198.0.17        UGHS        0       53   fxp0

% ifconfig ng0 inet
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1464

смотрим в mpd.log и видим:
mpd: [pptp_bundle] IFACE: Adding IPv4 address to ng0 failed: File exists

Оказывается все намного интереснее. :o

Мне начинает казаться, что на сервере pptp есть какое-то хитрое перенаправление, не дающее мне прострелить себе ногу.

Осталось только догадаться как скрипту скормить входную точку на l2tp тоннеле, т.к. $4 нам дает только выходную точку. В случае с pptp это было просто.

Ответить | Правка | Наверх | Cообщить модератору

94. "Вышел mpd-4.2"  +/
Сообщение от xOr (ok), 11-Ноя-07, 23:05 
Извиняюсь не читал всё полностью,  но у Корбины реальная проблема с тем, что адрес другой стороны туннеля указывается такой же как и адрес VPN сервера.

Решения два - или удалять маршрут на адрес VPN сервера и тут же добавлять его через правильный шлюз (корбиновский локальный):
route delete ${4}
route add ${4} ${corbrt}

Или же заменить адрес другой стороны туннеля в настройках на любой другой:
set ipcp ranges 0.0.0.0/0 192.168.х.х/32

К чему это может привести не знаю, но вроде никаких проблем это не создает.

Проблемы у меня другие были, зато большие...
Под вечер соединение начинает рваться очень часто (раз в 10-20 минут).
В логи пишет:
mpd: [vpn0] LCP: rec'd Terminate Ack #2 link 0 (Closing)
или
mpd: pptp0-0: peer call disconnected res=lost carrier err=none

То есть похоже рвет сервер со стороны корбины.  При этом пинг до VPN сервера идеальный. И сам интернет до момента разрыва работает без проблем. Техподдержка так ничего и не смогла предположить.
Есть один нюанс - подключение производится через аппаратный роутер, на котором NAT поднят. Однако если бы были какие-то перебои с трафиком - то было бы отключение по тайм-ауту. А тут черным по белому пишет что получен запрос на рассоединение.

правда mpd3.18 так что видимо не в тему.
Сейчас буду пытаться поднять 4-й (у меня FreeBSD 4.9).

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

95. "Вышел mpd-4.2"  +/
Сообщение от lalaru (?), 13-Ноя-07, 01:56 
>Извиняюсь не читал всё полностью,  но у Корбины реальная проблема с
>тем, что адрес другой стороны туннеля указывается такой же как и
>адрес VPN сервера.

у мя проблем уже давно нет, бо (условие|костыль) (с|при)делал:
[ $srv = $tun ] && route -q del $tun
route -q add $srv $gate #, где

srv=$(  { ngctl msg $if:inet.in.link0.left.lower getpeername \
                || ngctl msg $if:inet.in.link0.lower getpeername # XXX link0?
        } | awk '/inet/ {
                n=$2
                sl=index(n,"/")+1
                cl=index(n,":")-sl
                if(cl > 0)
                        print substr(n,sl,cl)
                else
                        print substr(n,sl)
        }'
)
tun=${4:-$(ifconfig $if inet | awk '/inet/ { print $4 }')}
gate=$(route -n get -inet default | awk '/gateway/ { print $2 }')

Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

101. "Вышел mpd-4.2"  +/
Сообщение от mg (??), 22-Ноя-08, 02:55 
Огромное спасибо!
Поставил версию 4.4.1 последнюю на сегодня.
Сделал всё как советуют в настройке l2tp mpd для корбины - виснет намёртво!
Потратил хренову тучу времени прежде чем увидел этот пост, и только он и помог!

Я не понимаю почему в pptp всё не зацикливается а в l2tp зацикливается но это факт.
Отсюда вывод скрипты должны быть разные в каждом из случаев!!!

в случае l2tp категорический не рекомендую делать
route change default 85.21.0.11
до того как будет указан роут до l2tp сервера!

А вот в случае pptp  это возможно, тем неменее почти навсех сайтах пишут что последовательность одинаковая, ни уж то никто не пробовал это сделать на практике?

Спасибо ещё раз, очень помогло!

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

67. "Вышел mpd-4.2"  +/
Сообщение от kirguduemail (?), 12-Июл-07, 22:32 
>Я кажется понял. Судя из переписки, l2tp сервер похоже имеет один и
>тот-же адрес 195.14.38.22 внутри и снаружи туннеля. Если это так -
>передайте привет админам корбины и пусть они расскажут, как полагается строить
>роутинг в данном случае.

Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN оным не является. ну так сеть построена и сейчас сложно что-либо сделать

Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

70. "Вышел mpd-4.2"  +/
Сообщение от Alexander Motinemail (?), 13-Июл-07, 00:17 
>Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN
>оным не является.

Тарабарщина какая-то. Чем же тогда назвать VPN сервер доступа, если не шлюзом? Все что фигурирует в таблице маршрутизации в поле gateway есть шлюз. Или есть технологии доступа по IP через VPN без применения таблицы маршрутизации? VPN это все-же не ethernet bridge.

PS: Как минимум четыре ближайших ко мне умных железки по пути в интернет - это не циски. Линух зашиный в модеме и еще три FreeBSD роутера потом по дороге, первый из которых одновременно является VPN сервером. Все они являются мне или друг другу шлюзами для различных сетей.

>ну так сеть построена и сейчас сложно что-либо сделать

Очень сильно сомневаюсь, что ни адрес внутри тоннеля ни адрес снаружи нельзя сменить на какой-либо отличный. Я смутно могу представить себе обоснованную заточку на одинаковость этих адресов. Адрес внутри туннеля нигде кроме интерфейса и таблицы маршрутизации у пользователя вообще не фигурирует. А учитывая что он выдается каждый раз разный, то он по определению не может быть ни на что у клиента завязан.

Ответить | Правка | Наверх | Cообщить модератору

82. "Вышел mpd-4.2"  +/
Сообщение от favouriteemail (??), 21-Авг-07, 07:44 
>>Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN
>>оным не является.
>
>Тарабарщина какая-то. Чем же тогда назвать VPN сервер доступа, если не шлюзом?

Да, и не до того договориться можно, если сети изучать только по цисковским докам ;-)

>Очень сильно сомневаюсь, что ни адрес внутри тоннеля ни адрес снаружи нельзя
>сменить на какой-либо отличный. Я смутно могу представить себе обоснованную заточку
>на одинаковость этих адресов. Адрес внутри туннеля нигде кроме интерфейса и
>таблицы маршрутизации у пользователя вообще не фигурирует. А учитывая что он
>выдается каждый раз разный, то он по определению не может быть
>ни на что у клиента завязан.

Позволю себе маленький реальный примерчик против одинаковых адресов.
Сеть :  VPN(cisco)  --- маршрутизатор( циска провайдера) -- клиент (freebsd)

В один прекрасный день клиент переезжает в один сегмент с впном (в смысле на нем меняют сетевые настройки), после запуска mpd на клиенте - VPN-сервер ни для кого ( кроме клиента) не был доступен в течение получаса -- опция proxyarp в конфиге mpd была конечно же лишней, но раньше ведь ничего не ломалось, всё работало
;-)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру