Александр Мотин объявил (http://lists.freebsd.org/pipermail/freebsd-net/2007-June/014...) о выходе новой версии multi-link PPP daemon - mpd-4.2 (http://mpd.sourceforge.net/).
В новой версии:
- возможность принимать PPTP соединения на нескольких IP адресах;
- аутентификация по открытому ключу в L2TP;
- реализация фильтрации, шэйпинга и ограничения полосы на основе ng_bpf и ng_car;
- генерация netflow одновременно для входящего и исходящего трафика;
- добавлена поддержка mpd-drop-user атрибута для RADIUS;
- ряд изменений для повышения производительности и многое другое.
URL: http://lists.freebsd.org/pipermail/freebsd-net/2007-June/014...
Новость: http://www.opennet.me/opennews/art.shtml?num=11211
уря!!!
>добавлена поддержка mpd-drop-user атрибута для RADIUS;
так, пошел тестить эту плюшку =)
ААААА, вы забыли вот это добавить
>NetFlow generation for both incoming and outgoing packets same time
как я понял наконец сделали в обе стороны!!!!!
ну это и раньше в up-script элементарно делалось
mpd-drop-user сделали, ну наконец то :))))))))))))))))
>mpd-drop-user сделали, ну наконец то :))))))))))))))))а как пользоваться то? куда тулить этот mpd-drop-user ? (freeradius + pgsql)
или где хоть почитать про это? перерыл всё что мог, ответа нет... :( или это предназначено именно для использования со всякими костылями?
>>mpd-drop-user сделали, ну наконец то :))))))))))))))))
>
>а как пользоваться то? куда тулить этот mpd-drop-user ? (freeradius + pgsql)
>
>или где хоть почитать про это? перерыл всё что мог, ответа нет...
>:( или это предназначено именно для использования со всякими костылями?Тулить в ответ на запрос аккаунтинга. Как это сделать стандартными средствами freeradius не знаю. У меня для freeradius свой модуль авторизации и аккаунтинга написан, он умеет.
Да ну,
главное что сделали вот чего->
Added workaround for Windows 2000 PPPoE MRU negotiation bug.
ОДНО СЛОВО "УРРРАААААААААААААААААААА"
Ура!!!!
>>> генерация netflow одновременно для входящего и исходящего трафика;
mpd == Music Player Daemon.
>mpd == Music Player Daemon.
это не тот mpd ;)
угу
никак иначе и для меня не читаются новости с mpd в сабже %)
По прежнему на каждый возможный туннель требуется отдельная секция в конфиге?
Поддерживается ли autocreate bundles, как у http://www.foggy.ru/soft/mpd/ ?
> По прежнему на каждый возможный туннель требуется отдельная секция в конфиге?Да. По крайней мере две команды: new и load.
> Поддерживается ли autocreate bundles, как у http://www.foggy.ru/soft/mpd/ ?
Нет. В таком виде оно мне напоминает один большой хак, как если к запорожцу приделать крылья. Я планирую поработать над красивой реализацией этого в следующих версиях.
Огромное спасибо разработчикам! Наконец-то можно будет поставить мпд просто из портов, не доковыривая ни одного патча!
молодцы ! зач0т ! разработчикам !
А как на счёт отваливании при 1 к юзеров ? )
>молодцы ! зач0т ! разработчикам !
>А как на счёт отваливании при 1 к юзеров ? )На счет чего? Подробнее плиз.
Ничего не отваливается: 1024 юзеров.
вот проблема тут
http://groups.google.ru/group/fido7.ru.unix.bsd/browse_threa...
Этому треду уже больше года. За это время в исходниках mpd поменялись все файлы кроме копирайтов и нескольких хидеров. Свежие тесты с FreeBSD 6.2 и mpd-4.2.1 в студию.Я буквально вчера для тестов поднимал у себя на машине поочередно 950 PPPoE, PPTP и L2TP сессий без какого бы то нибыло тюнинга системы или mpd. Несколько месяцев назад также поднимал 3000 PPPoE, тоже все прошло нормально.
А возможно ди сейчас или в дальнейшем штатными средствами mpd и радиуса, пайпы, шейпы или дроп на юзера выполнять, после того как например пользователь выкачал за сессию 1 гиг? Если это уже возможно, то ткните в пример.
Так чтобы совсем автоматом - нельзя. Если твой радиус это сможет, то с 4.2 он мог бы при получении очередного accounting update пакета с превышением байтиков ответить атрибутом mpd-drop-user.
>Так чтобы совсем автоматом - нельзя. Если твой радиус это сможет, то
>с 4.2 он мог бы при получении очередного accounting update пакета
>с превышением байтиков ответить атрибутом mpd-drop-user.А можете подсказать как в FreeRadius это сделать(как на account-request дать ответ?)
Спасибо
Уважаемые разраблтчики, а планируется ли NetFlow v9 в mpd4? Все же он пофункциональнее. Очень нехватает timestamp-а для более точного соотнесения трафика на пользователей.
это не в mpd это в ng_netflow должно быть
Тогда встречный вопрос, как это в ng_netflow реализовать?
vi /usr/src/sys/netgraph/netflow/ng_netflow.c надо полагать Ж8)
Ну чего? В продакшн можно ставить? Или буду подопытным?
Запулите, плиз, в дерево протов его!
он почти сразу там появился, обновите свое дерево портов.
-----------------------
в продакшен я его уже пустил полен нормальный
У меня на freebsd 6.* обычный pppoed вызывает kernel trap в ng_pppoe
после нескольких дней работы, причём чем больше туннелей, тем быстрее упадёт,
но точный момент предсказать нельзя.На freebsd 5.* пашет без сбоев. И pptp на freebsd 6.* тоже пашет без сбоев.
Соответственно вопрос:
1) кто-нибудь с этим сталкивался?
2) кто-нибудь держит mpd или pppoed для нескольких сотен PPPoE-туннелей на 6.2?
3) кто-нибудь может проиллюстрировать цифрами выигрыш от перехода с pppoed на mpd?
>2) кто-нибудь держит mpd или pppoed для нескольких сотен PPPoE-туннелей на 6.2?Держу кучу серверов с боле полутысячи активных PPPoE на каждом на 6.2 на mpd4. Проблем не наблюдаю.
А под 5.5 не собирается,
затык в NG_CAR: ng_car.c 642-я строка : 'NG_NOFLAGS' undeclaredКто что подскажет ?
>затык в NG_CAR: ng_car.c 642-я строка : 'NG_NOFLAGS' undeclaredне было MFC в 5.x, см. netgraph.c rev.1.53
#define NG_NOFLAGS 0x00000000 /* no special options */
iface.c: In function `IfaceInitMSS':
iface.c:2123: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)
iface.c:2123: error: (Each undeclared identifier is reported only once
iface.c:2123: error: for each function it appears in.)
iface.c: In function `IfaceInitLimits':
iface.c:2301: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)на тойже 5.х
>iface.c: In function `IfaceInitMSS':
>iface.c:2123: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)
>iface.c:2123: error: (Each undeclared identifier is reported only once
>iface.c:2123: error: for each function it appears in.)
>iface.c: In function `IfaceInitLimits':
>iface.c:2301: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)
>
>на тойже 5.х
#define NG_TCPMSS_NODE_TYPE "tcpmss" в iface.c
>iface.c: In function `IfaceInitMSS':
>iface.c:2123: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)
>iface.c:2123: error: (Each undeclared identifier is reported only once
>iface.c:2123: error: for each function it appears in.)
>iface.c: In function `IfaceInitLimits':
>iface.c:2301: error: `NG_TCPMSS_NODE_TYPE' undeclared (first use in this function)
>
>на тойже 5.хЗамени оба эти NG_TCPMSS_NODE_TYPE на NG_BPF_NODE_TYPE, как оно должно быть. В CVS исправил.
в порты эти изменения для 5.x!
В 6.2-STABLE не собирается:srv-uln03# uname -a
FreeBSD srv-uln03.xxx 6.2-STABLE FreeBSD 6.2-STABLE #11: Wed Apr 25 11:16:45 MSD 2007 sda@srv-uln03.xxx:/usr/src/sys/i386/compile/SRV-ULN03 i386srv-uln03# cd /usr/ports/net/mpd4
srv-uln03# make
===> mpd-4.2.1 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
ng_car-0.4: Makefile error: category kld not in list of valid categories.
*** Error code 1Stop in /usr/ports/net/ng_car.
*** Error code 1Stop in /usr/ports/net/mpd4.
Выход 1
$FreeBSD: ports/net/mpd4/Makefile,v 1.13 2007/06/27 13:37:07 sem Exp $
P.S. Выяснил. В файле /usr/ports/net/ng_car/Makefile есть лишнее:
CATEGORIES= net kld (нужно удалить kld) - тогда собирается все ок...
Ответственные за порт, подправьте
Иерархию kld добавили пару дней назад. Или чего-то забыли или ты не все порты накатил.
>Иерархию kld добавили пару дней назад. Или чего-то забыли или ты не
>все порты накатил.Прошу прощения, уже понял.. Не все дерево портов обновил :)
Спасибо :)
Выпустил обновления ng_car-0.5 и mpd-4.2.2 для совместимости с FreeBSD 5.x.
Скоро должны появиться в портах.
l2tp & default route freeze - http://homenet.corbina.net/index.php?showtopic=90275
>l2tp & default route freeze - http://homenet.corbina.net/index.php?showtopic=90275Заворачивать роутинг на удаленную сторону тунеля внутрь самого тунеля вредно для здоровья. В данном случае это вызывает зацикливание и переполнение чего-то в ядре.
Как там и писалось, надо с самого начала при загрузке четко прибить роутинг на L2TP сервер по езеру:
route add 195.14.38.17 10.59.0.17
>>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/shl2tp_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/
>route -q change default $l2tp_server # about 2 sec to freezeИ эта строчка не приводила бы к зависанию... Если бы... Если бы... mpd не прописывал странные маршруты при установке соединения...
===> 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 1Stop in /usr/ports/net/ng_car/work/ng_car-0.5/kmod.
*** Error code 1Stop in /usr/ports/net/ng_car/work/ng_car-0.5.
*** Error code 1Stop in /usr/ports/net/ng_car.
*** Error code 1Stop in /usr/ports/net/mpd4.
>===> 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.
>Как тебе это удалось? Какая система?
>У меня это успешно собирается на 5.4, 6.2-STABLE и 7-CURRENT.Сори, subj не заметил. На 4.x ng_car и не будет собираться, API netgraph другой, в порту даже проверка на это стоит.
Подхачь порт mpd на предмет зависимостей и собери без ng_car. mpd на 4.x без него соберется нормально.
>>Как тебе это удалось? Какая система?
>>У меня это успешно собирается на 5.4, 6.2-STABLE и 7-CURRENT.
>
>Сори, subj не заметил. На 4.x ng_car и не будет собираться, API
>netgraph другой, в порту даже проверка на это стоит.
>Подхачь порт mpd на предмет зависимостей и собери без ng_car. mpd на
>4.x без него соберется нормально.
Проверка не проходит. Старый добрый способ ручками - гут. ;) Спасибо.
>>route -q change default $l2tp_server # about 2 sec to freeze
>
>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>mpd не прописывал странные маршруты при установке соединения...Ничего mpd непрописывает. После запуска этой строчки у тебя остался роут на l2tp сервер смотрящий в езер? Сомневаюсь.
>>>route -q change default $l2tp_server # about 2 sec to freeze
>>
>>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>>mpd не прописывал странные маршруты при установке соединения...
>
>Ничего mpd непрописывает. После запуска этой строчки у тебя остался роут на
>l2tp сервер смотрящий в езер? Сомневаюсь.А почему он должен удалится? Вообще мой up-script прекрасно работает (и удаляет странный маршрут) на pptp соединении и прекрасно ВЕШАЕТ систему на l2tp. Случаи почти одинаковые (см. конфиги), но route change default работает по-разному.
>>>>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.
>>>>>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 :(
>>route -q change default $l2tp_server # about 2 sec to freeze
>
>И эта строчка не приводила бы к зависанию... Если бы... Если бы...
>mpd не прописывал странные маршруты при установке соединения...Вызывай не напрямую скрипт, в котором команды производятся - а сначала другой скрипт, в котором нужный запускается в бакграунде. Тогда если команды займут много времени MPD не зависнет, так как будет работать параллельно.
>А почему 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, отличия пока минимальны.
>Я не очень понял что ты имееш в виду, но если 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/shgate=`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.
>Если не в роуте дело, то почему если роут на $l2tp_server через
>$lan_gate добавить до запуска mpd, то этот странный маршрут не появляется.Я кажется понял. Судя из переписки, l2tp сервер похоже имеет один и тот-же адрес 195.14.38.22 внутри и снаружи туннеля. Если это так - передайте привет админам корбины и пусть они расскажут, как полагается строить роутинг в данном случае.
>Может система че-то не так делает. Если че, то у мя 7-current.
Не в версии дело, любая версия при подъеме point-to-point интерфейса поднимает роутинг на его удаленную сторону. Соответственно если у тебя роут на тот IP был задан ранее, то он вероятно и останется, а если небыло, то получится такой как ты привел.
Видятся два варианта:
1. прописывать роут до старта mpd, что не даст системе его сменить и защитит от зацикливания,
2. как-то извратиться с ipfw fwd, чтобы трафик на l2tp порты гарантированно уходил в езер.
>1. прописывать роут до старта mpd, что не даст системе его сменить
>и защитит от зацикливания,Но почему тогда зависания в случае с pptp соединением добиться не удается?
Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и pptp - оба point-to-point, по крайнейм мере в данном случае точно.> 2. как-то извратиться с ipfw fwd, чтобы трафик на l2tp порты гарантированно уходил в езер.
Боюсь это не реально, т.к. ip и интерфейс, форвардить который нам надо, мы не знаем, а полагаться на один и тот же ответ от dns сервер глупо, ну а форвардить весь l2tp траффик это значит не иметь больше таких тоннелей. И так, и так криво.
Хотя... можно воспользоваться костылем, т.е. up-script'ом. Но боюсь он у меня тогда получится излишне перегруженным, если я буду через него управлять правилами ipfw и анчорами pf.Наиболее разумным мне кажется поступить так же как с pptp тоннелем, т.е. заставить фрю как-нибудь не зависать в таких случаях.
>>1. прописывать роут до старта mpd, что не даст системе его сменить
>>и защитит от зацикливания,
>
>Но почему тогда зависания в случае с pptp соединением добиться не удается?
>
>Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и
>pptp - оба point-to-point, по крайнейм мере в данном случае точно.Они очень похожи. Не думаю что должна быть между ними разница. Скорее какие-то другие факторы вроде объема буферов или чего-то еще.
>Наиболее разумным мне кажется поступить так же как с pptp тоннелем, т.е.
>заставить фрю как-нибудь не зависать в таких случаях.Фря виснет вследствие закольцовки трафика и бесконнечного его туннелирования. Мысли поправить это витают давно, но даже когда это поправят проблема не уйдет. Система падать перестанет, но туннель работать не начнет.
Надо как-то разруливать кривизну с роутингом. Лучше бы корбина просто дала другой IP внутри тунеля, как это делаем мы у себя. Это бы автоматом решило большинство проблем. Другого _красивого_ решения я не вижу.
>>>1. прописывать роут до старта mpd, что не даст системе его сменить
>>>и защитит от зацикливания,
>>
>>Но почему тогда зависания в случае с pptp соединением добиться не удается?
>>
>>Разве он тоже не должен зацикливается по вашим словам? Ведь l2tp и
>>pptp - оба point-to-point, по крайнейм мере в данном случае точно.
>
>Они очень похожи. Не думаю что должна быть между ними разница. Скорее
>какие-то другие факторы вроде объема буферов или чего-то еще.Как я уже неоднократно повторяю система не просто не виснет, а траффик по этому дефолтному маршруту ИДЕТ и я могу юзать инет на всю катушку.
Отсюда вопрос: а че по pptp траффик получается не закольцовывается?
>Как я уже неоднократно повторяю система не просто не виснет, а траффик
>по этому дефолтному маршруту ИДЕТ и я могу юзать инет на
>всю катушку.
>
>Отсюда вопрос: а че по pptp траффик получается не закольцовывается?Сравни таблицу маршрутизации, вероятно есть какие-то отличия. PPTP - это такой-же IP трафик, что и L2TP. Только в случае PPTP используется протокол GRE, а в случае L2TP - UDP.
>>Как я уже неоднократно повторяю система не просто не виснет, а траффик
>>по этому дефолтному маршруту ИДЕТ и я могу юзать инет на
>>всю катушку.
>>
>>Отсюда вопрос: а че по 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 это было просто.
Извиняюсь не читал всё полностью, но у Корбины реальная проблема с тем, что адрес другой стороны туннеля указывается такой же как и адрес 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).
>Извиняюсь не читал всё полностью, но у Корбины реальная проблема с
>тем, что адрес другой стороны туннеля указывается такой же как и
>адрес 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 }')
Огромное спасибо!
Поставил версию 4.4.1 последнюю на сегодня.
Сделал всё как советуют в настройке l2tp mpd для корбины - виснет намёртво!
Потратил хренову тучу времени прежде чем увидел этот пост, и только он и помог!Я не понимаю почему в pptp всё не зацикливается а в l2tp зацикливается но это факт.
Отсюда вывод скрипты должны быть разные в каждом из случаев!!!в случае l2tp категорический не рекомендую делать
route change default 85.21.0.11
до того как будет указан роут до l2tp сервера!А вот в случае pptp это возможно, тем неменее почти навсех сайтах пишут что последовательность одинаковая, ни уж то никто не пробовал это сделать на практике?
Спасибо ещё раз, очень помогло!
>Я кажется понял. Судя из переписки, l2tp сервер похоже имеет один и
>тот-же адрес 195.14.38.22 внутри и снаружи туннеля. Если это так -
>передайте привет админам корбины и пусть они расскажут, как полагается строить
>роутинг в данном случае.Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN оным не является. ну так сеть построена и сейчас сложно что-либо сделать
>Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN
>оным не является.Тарабарщина какая-то. Чем же тогда назвать VPN сервер доступа, если не шлюзом? Все что фигурирует в таблице маршрутизации в поле gateway есть шлюз. Или есть технологии доступа по IP через VPN без применения таблицы маршрутизации? VPN это все-же не ethernet bridge.
PS: Как минимум четыре ближайших ко мне умных железки по пути в интернет - это не циски. Линух зашиный в модеме и еще три FreeBSD роутера потом по дороге, первый из которых одновременно является VPN сервером. Все они являются мне или друг другу шлюзами для различных сетей.
>ну так сеть построена и сейчас сложно что-либо сделать
Очень сильно сомневаюсь, что ни адрес внутри тоннеля ни адрес снаружи нельзя сменить на какой-либо отличный. Я смутно могу представить себе обоснованную заточку на одинаковость этих адресов. Адрес внутри туннеля нигде кроме интерфейса и таблицы маршрутизации у пользователя вообще не фигурирует. А учитывая что он выдается каждый раз разный, то он по определению не может быть ни на что у клиента завязан.
>>Как как. Ближайшая умная до тебя железка (Циска) является шлюзом. А VPN
>>оным не является.
>
>Тарабарщина какая-то. Чем же тогда назвать VPN сервер доступа, если не шлюзом?Да, и не до того договориться можно, если сети изучать только по цисковским докам ;-)
>Очень сильно сомневаюсь, что ни адрес внутри тоннеля ни адрес снаружи нельзя
>сменить на какой-либо отличный. Я смутно могу представить себе обоснованную заточку
>на одинаковость этих адресов. Адрес внутри туннеля нигде кроме интерфейса и
>таблицы маршрутизации у пользователя вообще не фигурирует. А учитывая что он
>выдается каждый раз разный, то он по определению не может быть
>ни на что у клиента завязан.Позволю себе маленький реальный примерчик против одинаковых адресов.
Сеть : VPN(cisco) --- маршрутизатор( циска провайдера) -- клиент (freebsd)В один прекрасный день клиент переезжает в один сегмент с впном (в смысле на нем меняют сетевые настройки), после запуска mpd на клиенте - VPN-сервер ни для кого ( кроме клиента) не был доступен в течение получаса -- опция proxyarp в конфиге mpd была конечно же лишней, но раньше ведь ничего не ломалось, всё работало
;-)
Не собирается ng_car на FreeBSD 4.11===> 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-qual -fformat-extensions -ansi -DKLD_MODULE -nostdinc -I- -I. -I@ -I@/../include -mpreferred-stack-boundary=2 -Wall -Wredundant-decls -Wnested-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 1Stop in /usr/ports/net/ng_car/work/ng_car-0.5/kmod.
*** Error code 1Stop in /usr/ports/net/ng_car/work/ng_car-0.5.
*** Error code 1Stop in /usr/ports/net/ng_car.
>Не собирается ng_car на FreeBSD 4.11Уже отвечал. На 4.x ng_car и не будет собираться, API netgraph другой.
Подхачь порт mpd на предмет зависимостей и собери без ng_car. mpd на
4.x без него соберется нормально.
имеются пара проблем с подсчетом трафика в mpd ч/з netflow:
1. при подключении пользователя появляется node netflow, но пакеты на коллектор не идут (см. tcpdump'ом). после того, как вручную выполняю
msg _соотв_нода_ksocket_ connect inet/192.168.25.7:9996
пакеты вроде начинают ходить, но недолго
2. трафик считается только исходящий - что на ноде ngX, что на физ. интерфейсе.
####### ос:
free62# uname -a
FreeBSD free62.domain.ru 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Thu Jun 14 17:47:18 MSD 2007 aleksey@free62.domain.ru:/usr/src/sys/i386/compile/CUBXL i386####### версия mpd4:
free62# /usr/local/sbin/mpd4 -v
Version 4.2.2 (root@free62.domain.ru 00:07 19-Jul-2007)####### конфиг. mpd.conf:
#set enable TCP-Wrapper (hosts_access(5)) to block unfriendly clients
set global enable tcp-wrapper
# configure the console
set console port 5005
set console ip 0.0.0.0
set console user foo bar
set console user foo1 bar1
set console open
# configure netflow
set netflow export 192.168.25.7 9996default:
load client0
load client1
load client2
...
load client18
load client19
#
client0:
new -i ng0 pptp0 pptp0
set ipcp ranges 10.10.10.1/32 10.10.10.0/24
load client_standard
#
client1:
new -i ng1 pptp1 pptp1
set ipcp ranges 10.10.10.1/32 10.10.10.0/24
load client_standard
...
#
client19:
new -i ng19 pptp19 pptp19
set ipcp ranges 10.10.10.1/32 10.10.10.0/24
load client_standard
#
client_standard:
# bundle conf
# set bundle enable multilink
set bundle enable compression
set bundle enable encryption
# set bundle enable crypt-reqd
#
# interface conf
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set iface enable netflow-in
set iface enable netflow-in
#
# ipcp conf
set ipcp dns 192.168.25.202
set ipcp nbns 192.168.25.202
#
# link conf
set link enable chap
set link accept chap
set link enable keep-ms-domain
set link mtu 1456
set link keep-alive 10 60
#
# compression conf
set ccp yes mppc
# set ccp yes mpp-compress
set ccp yes mpp-e40
set ccp yes mpp-e56
set ccp yes mpp-e128
#
# encryption conf
#
# auth conf
set auth disable internal
set auth acct-update 300
set auth enable radius-auth
set auth enable radius-acct
# set auth enable mppc-pol
#
# eap conf
#
# radius conf
set radius server 192.168.25.235 _shared_secret_ 1812 1813
set radius timeout 10
set radius retries 3
set radius me 192.168.25.4
set radius enable message-authentic
######## конф. mpd.links:
pptp1:
set link type pptp
set pptp self 192.168.25.4
set pptp enable incoming
set pptp disable originate
set pptp disable windowingpptp2:
set link type pptp
set pptp self 192.168.25.4
set pptp enable incoming
set pptp disable originate
set pptp disable windowing
...
pptp19:
set link type pptp
set pptp self 192.168.25.4
set pptp enable incoming
set pptp disable originate
set pptp disable windowing
вах-вах... сам дурак:
set iface enable netflow-in
!!! set iface enable netflow-in !!!
up:
проблема с подсчетом трафика в обе стороны была из-за моей глупости/невнимательности/разгилдяйства и т.д., но вот проблема с отсутствием пакетов netflow после перезапуска mpd4 жива и по сей день: перезапустив сервис налюдаю, что netflow analyzer не ловит, а freebsd не шлет пакеты, пока сам не выполню команду
ngctl msg _ksocket_item_: connect inet/192.168.25.7:9996
mpd 4.2.2 не хочет ставиться на FreeBSD 6.2 AMD64# сd
/usr/ports/net/mpd4
# make install
===> 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
===> ng_car-0.5 this port requires kernel sources.
*** Error code 1Stop in /usr/ports/net/ng_car.
*** Error code 1Stop in /usr/ports/net/mpd4.
#Не хочет ставиться из за ng_car который непонятно зачем вобще мне нужен на 6.2 версии.
Все порты обновил сначало cvsup потом на всякий случай еще и portsnap`ом, :) скачал все исходники. Всеравно та же ошибка...
>===> ng_car-0.5 this port requires kernel sources.Таки действительно требует исходников ядра. Я планирую выпустить обновленную версию mpd не требующую обязательного наличия ng_car, а пока можно или поставить исходники ядра или применением небольшого напильника собрать его без ng_car.
>>===> ng_car-0.5 this port requires kernel sources.
>
>Таки действительно требует исходников ядра. Я планирую выпустить обновленную версию mpd не
>требующую обязательного наличия ng_car, а пока можно или поставить исходники ядра
>или применением небольшого напильника собрать его без ng_car.А можно немного поподробнее.. Я не силен в UNIXах )
Как я писал все исходники были скачаны в том числе и ядра в /usr/src/sys/amd64
Если работать с напильником, то в каком месте его приложить?
Спасибо!
>А можно немного поподробнее.. Я не силен в UNIXах )
>
>Как я писал все исходники были скачаны в том числе и ядра
>в /usr/src/sys/amd64Исходники ядра - это весь каталог /usr/src/sys/. В sys/amd64 лежит только малая часть специфичная для amd64.
>Если работать с напильником, то в каком месте его приложить?
К Makefile порта mpd4, дабы он не требовал ng_car, а потом к файлику defs.h в исходниках mpd дабы он тоже его не хотел.
>Исходники ядра - это весь каталог /usr/src/sys/. В sys/amd64 лежит только малая
>часть специфичная для amd64.Так и есть ВСЕ ИСХОДНИКИ т.е. все что входит в /usr/src.
>К Makefile порта mpd4, дабы он не требовал ng_car, а потом к
>файлику defs.h в исходниках mpd дабы он тоже его не хотел.В таком случае дождусь версии mpd4 не требующей ng_car :)
P.S. у знакомого на FreeBSD 6.2 i386 ng_car и mpd4 установились без этих сложностей.
После напильника работает, спасибо.
почему то netflow не показывает кол-во байтов проходящих через интерфейс, вместо этого показывает тока пакеты
вот вывод flowctl:SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
vr0 x.x.12.232 ng1 y.y.200.0 6 0050 119b 17933
vr0 x.x.12.232 ng1 y.y.200.0 6 0050 11a6 3945
vr0 x.x.12.232 ng1 y.y.200.0 6 0050 11a4 7881
vr0 x.x.12.232 ng1 y.y.200.0 6 0050 1198 23482
vr0 x.x.12.232 ng1 y.y.200.0 6 0050 11ae 6это так и должно быть или я чего-то не докрутил?
вот часть конфига
startup:
set netflow export 1.1.1.1 9996
client_standard:
set iface enable netflow-in
set iface enable netflow-outна коллекторе (netup utm5) показано, что netflow пакеты принимаются, а в данных о трафике пусто. с другим туеадщц сенсором все работает
>почему то netflow не показывает кол-во байтов проходящих через интерфейс, вместо этого
>показывает тока пакеты
>это так и должно быть или я чего-то не докрутил?Так и должно. Это подобие поведения циски. Почему только так - вопросы к автору flowctl. Вообще flowctl это больше интрумент отладки и ловли флуда чем подсчета трафика.
2 месяца спустя...не может не радовать что на 4-ке оно собирается и живёт! (с хаком порта на тему ng_car - оно очевидно)
ну и конечно винь 2000 - долбаный дефолтный мультилинк!
PS я афигел... у меня пинги до ya.ru с размером 22384 байта (вроде это число) ходят через пптп!!! на 3-18 затык был после пары кб 8-)
>ну и конечно винь 2000 - долбаный дефолтный мультилинк!О чем речь? Что не так с мультилинком?
>Так чтобы совсем автоматом - нельзя. Если твой радиус это сможет, то
>с 4.2 он мог бы при получении очередного accounting update пакета
>с превышением байтиков ответить атрибутом mpd-drop-user.А можете подсказать как в FreeRadius это сделать(как на account-request дать ответ?)
Спасибо
Стандартными средствами не знаю, я их никогда не использовал. У меня собственный модуль к FreeRADIUS написан.
А не собирается ли автор в будущих версиях реализовать LDAP-аутентификацию? Нет, я понимаю, тот же FreeRADIUS работает с LDAP-ом, но все же имхо не очень хорошо использовать такую мощную и сложную вещь только как прослойку для LDAP...
>А не собирается ли автор в будущих версиях реализовать LDAP-аутентификацию?Со LDAP-ом я сталкивался давно и поверхностно и, если честно, мне не понравилось.
Я не очень уверен в удобности и полезности этого. С тем-же виндовым доменом можно состыковаться через виндовый RADIUS сервер.Заниматься этим у меня желания нет. Но если будет что включить в релиз и аргументы зачем это надо, то можно обсудить.
>Я не очень уверен в удобности и полезности этого.Ну, допустим, аккаунтинг через LDAP вряд ли реализуем... Но вот аутентификация вполне неплохо раьотает. А по удобству - мне лично "дерево" кажется удобнее кучи таблиц... Но это мое имхо :) Опять же, хочется иметь единую, централизованую систему аутентификации и хранения данных пользователей (у меня сейчас на LDAP завязаны mail-server, Jabber, FTP).
>Заниматься этим у меня желания нет. Но если будет что включить в
>релиз и аргументы зачем это надо, то можно обсудить.Ок, возможно, попытаюсь патчик написать, только разберусь с тем, как модули аутентификации подключаются...
Подскажите, имеется ли возможность создать мультилинк pppoe(как вариант pptp) с ограничением полосы каждого саблинка?Ситуация такова - удаленная площадка, через мультиплексоры из E1 под ethernet отдано 1.5Mb, есть возможность протянуть туда же еще один E1, конверторы на ethernet есть(а вот возможности подачи других типов канала нет). Очень хочется объединить 2 канала ethernet в 1 vpn, даже ценой установки дополнительных машин.
Реализация через lagg мне не нравится по 2 причинам:
1. При разрыве канала Е1 интерфейс на машине не падает, соответственно и трафик по нему должен пойти.
2. Не знаю, как объяснить машине, что то что оно видит 10Мб скорость карточки - это еще не вся правда, в реальности там меньше.
>Подскажите, имеется ли возможность создать мультилинк pppoe(как вариант pptp) с ограничением полосы
>каждого саблинка?Ограничить полосы для каждого линка невозможно, но как правило и ненужно.
Если линки имеют неравную ширину - можно задать mpd ширину и латентность каждого из них. Это позволит mpd раскидать трафик между ними пропоорионально их способностям для достижения макмимальной общей полосы и минимальной общей латентности.
Вот что получилось:
2 машины, соединены 2мя ethernet(на одном сеть 192.168.10/24, на втором 192.168.11/0), мультилинк между 2мя машинами поднялся - что не может не радовать.
Пытаюсь качать по ftp большой файл, параллельно смотрю trafshow скорости на сетевых картах.
Скорость по 1 линку соответствует настройкам, скорость второго - не ограничивается. И не понятно, почему.
Конфиги:
сервер
default:
load mvpnmvpn:
new mvpn vpn0 vpn1
set iface disable on-demand
set iface idle 0
set bundle enable multilink
set ipcp yes vjcomp
set ipcp ranges 192.168.211.1/32 192.168.212.1/32
link vpn0
set link latency 1500
set link bandwidth 1500000
set link yes acfcomp protocomp
set link no pap
set link yes chap
set link mtu 1460
set link keep-alive 2 15
link vpn1
set link latency 1400
set link bandwidth 2000000
set link yes acfcomp protocomp
set link no pap
set link yes chap
set link mtu 1460
set link keep-alive 2 15vpn0:
set phys type pptp
set pptp self 192.168.10.1
set pptp peer 192.168.10.2
set pptp enable incoming
set pptp disable originatevpn1:
set phys type pptp
set pptp self 192.168.11.1
set pptp peer 192.168.11.2
set pptp enable incoming
set pptp disable originateклиент:
default:
load mvpnmvpn:
new mvpn vpn0 vpn1
set iface disable on-demand
set iface idle 0
set bundle enable multilink
set ipcp yes vjcomp
set ipcp ranges 192.168.212.1/32 192.168.211.1/32
link vpn0
set link latency 1500
set link bandwidth 1500000
set link yes acfcomp protocomp
set link mtu 1460
set link keep-alive 2 15
set auth authname "1234"
set auth password "4321"
set link max-redial 0
open
link vpn1
set link latency 1400
set link bandwidth 2000000
set link yes acfcomp protocomp
set link mtu 1460
set link keep-alive 2 15
set auth authname "1234"
set auth password "4321"
set link max-redial 0
openvpn0:
set link type pptp
set pptp self 192.168.10.2
set pptp peer 192.168.10.1
set pptp enable originate
set pptp disable incomingvpn1:
set link type pptp
set pptp self 192.168.11.2
set pptp peer 192.168.11.1
set pptp enable originate
set pptp disable incoming
>Вот что получилось:
>2 машины, соединены 2мя ethernet(на одном сеть 192.168.10/24, на втором 192.168.11/0), мультилинк
>между 2мя машинами поднялся - что не может не радовать.Если у тебя там чистый ethernet - выгоднее использовать PPPoE, overhead меньше, а производительность больше.
>Пытаюсь качать по ftp большой файл, параллельно смотрю trafshow скорости на сетевых
>картах.
>Скорость по 1 линку соответствует настройкам, скорость второго - не ограничивается. И
>не понятно, почему.Как я уже сказал выше - скорость линков не ограничивается заданными величинами. Они являются только коэффициентами при построении плана распреления трафика между линками.