Bushi Posted April 7, 2005 Posted April 7, 2005 Всем привет! Существует NAS-сервер на mpd с динамическими ip-адресами. Есть ли какая нибудь возможность для учета трафика по направлениям (классы трафика по ip-адресу назначения и источника). На ум приходит только netflow, но из-за использование динамических адресов использование netflow лишено смысла, так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю. Вставить ник Quote
Bender Posted April 7, 2005 Posted April 7, 2005 cd /usr/ports/netams/ http://www.netams.com в новой версии отдали биллинг бесплатно Вставить ник Quote
Kuzmich Posted April 7, 2005 Posted April 7, 2005 Никак. Mpd не биллинговая система. Вставить ник Quote
Vicus Posted April 7, 2005 Posted April 7, 2005 На ум приходит только netflow, но из-за использование динамических адресов использование netflow лишено смысла, так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю. Почему? У нас агреггируется netflow-поток (правда с циски, но не суть важно) с динамических адресов. Раз в десять минут производится расчет накопленой статистики. Обсчитываются все пользователи. Если пользователь, вышел до очередного обсчета, то ip-адрес блокируется для использования, пока не произойдет обсчет, после этого следующий пользователь может использовать этот ip. Да, начало и конец сесси привязываются к accounting-start и accounting-end, соответственно, пакетам NAS. Вставить ник Quote
Bushi Posted April 10, 2005 Author Posted April 10, 2005 Вопрос к знатокам mpd и netgraph - как к mpd прикрутить ng_netflow или ng_ipacct? mpd создает такой граф: [iface ngX] ---inet---iface---[bpf]---ppp---inet---[ppp]---.... То есть чтобы подключть ng_ipacct или ng_netflow, нужно в цепочку вставить tee, к которому подкючить уже ipacct или netflow: right2left-----+ | | [iface ngX] ---inet---right--[tee]--left-+-iface---[bpf]---... | | left2right | | | in | | | [ipacct] | | | out--------+ Но ведь граф создает сам mpd, есть ли способ при создании интерфейса вставить в цепочку tee? Вставить ник Quote
ToSHiC Posted April 10, 2005 Posted April 10, 2005 править исходники.... там в принципе несложно, вс довольно понятно написано. Вставить ник Quote
TruthSeeker Posted April 14, 2005 Posted April 14, 2005 а через скрипты mpd? Которые вызываются при подьеме/опускании интерфейса? Вставить ник Quote
Bushi Posted April 14, 2005 Author Posted April 14, 2005 Почему? У нас агреггируется netflow-поток (правда с циски, но не суть важно) с динамических адресов. Раз в десять минут производится расчет накопленой статистики. Обсчитываются все пользователи. Если пользователь, вышел до очередного обсчета, то ip-адрес блокируется для использования, пока не произойдет обсчет, после этого следующий пользователь может использовать этот ip. Да, начало и конец сесси привязываются к accounting-start и accounting-end, соответственно, пакетам NAS. Можете поделиться логикой работы коллектора? Просто сырые данные льются в базу и там хранятся, а расчет уже идет идет выборками из базы и сопоставление потоков с идентификаторами сессий? Можно ли гарантированно привязывать время начала потока к сессии, используя accounting-start<netflow_start<accounting-end для уникальной сессии? Ведь в этом случае нет смысла блокировать ip на время обсчета. а через скрипты mpd?Которые вызываются при подьеме/опускании интерфейса? Скриптами не выйдет, ng_tee необходимо вставлять не при поднятии интерфейса, а при создании bundle, то есть непосредственно при запуске mpd. Кстати, оказывается mpd 4.0 это умеет (ключик есть специальный), но mpd 4.0 имеет статус beta. Кто нибудь использовал 4.0 в реальной коммерческой эксплуатации? Вставить ник Quote
Mikhail Krivtsov Posted April 22, 2005 Posted April 22, 2005 вот фрагмент моего скрипта: # inject tap $NGCTL name ${IFACE}:inet.ppp.bypass ${IFACE}_bypass $NGCTL rmhook ${IFACE}:inet ppp $NGCTL mkpeer ${IFACE}:inet tee ppp left $NGCTL name ${IFACE}:inet.ppp ${IFACE}_tap $NGCTL connect ${IFACE}_tap: ${IFACE}_bypass:bypass right inet # # tap ipacct $NGCTL mkpeer ${IFACE}_tap: ipacct left2right ${IFACE}_out $NGCTL name ${IFACE}_tap:left2right ${IFACE}_ipacct $NGCTL connect ${IFACE}_tap: ${IFACE}_ipacct: right2left ${IFACE}_in $IPACCTCTL ${IFACE}_ipacct:${IFACE} dlt RAW $IPACCTCTL ${IFACE}_ipacct:${IFACE} threshold ${THRESHOLD} $IPACCTCTL ${IFACE}_ipacct:${IFACE} verbose ${VERBOSE} $IPACCTCTL ${IFACE}_ipacct:${IFACE} savetime ${SAVETIME} Вставить ник Quote
Guest Posted April 22, 2005 Posted April 22, 2005 Данил! могу помочь!.. Есть такой биллинг stargazer, он по умолчанию с vpn не работает, но я его прикрутить к mpd сумел! Темболее что пров у нас с тобой один! Хотел связаться с тобой но не получилось! вот мыло моё если что admin собака info-teh.ru Вставить ник Quote
Bushi Posted April 24, 2005 Author Posted April 24, 2005 Данил! могу помочь!..Есть такой биллинг stargazer, он по умолчанию с vpn не работает, но я его прикрутить к mpd сумел! Темболее что пров у нас с тобой один! Хотел связаться с тобой но не получилось! вот мыло моё если что admin собака info-teh.ru Да херня этот stargazer. Гора скриптов для учета по файрвольным счетчикам, либо через divert. А мне необходимо несколько NAS обсчитывать, причем некоторые NAS работают на циске. Решение должно быть универсальное. Поэтому наверное лучше netflow сложно придумать. Кстати вопрос по ng_netflow. Столкнулся с проблемой - модуль неправильно определяет source interface, если пакет приходит на интерфейс ngX (ng_iface). Всегда использует индекс 1, а вручную индекс не меняется. Цепляю ng0 к уже готовой ноде netflow: connect ng0:inet netflow: right2left iface3 msg netflow: setdlt { iface = 3 dlt = 12 } msg netflow: setifindex { iface = 3 index = 3 } Однако никакой реакции на заданный индекс. Пингую какой-нибудь хост (для примера 192.168.5.5 с адреса 192.168.1.23) через ng0 и в итоге получаю: # flowctl netflow show SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts fxp0 192.168.1.23 fxp0 192.168.5.5 1 0000 0000 4 -> ICMP Request, SrcIf должен быть ng0 fxp0 192.168.5.5 ng0 192.168.1.23 1 0000 0000 4 -> ICMP Reply, все верно Кто нибудь сталкивался с такой проблемой? Вставить ник Quote
Guest Posted April 25, 2005 Posted April 25, 2005 Да херня этот stargazer. Гора скриптов для учета по файрвольным счетчикам, либо через divert. Абсолюная неправда! Вопервых: подсчёт через bpf и счётчики ipfw не используются, во вторых за всё отвечает серверная программа! Вставить ник Quote
Mich12 Posted April 25, 2005 Posted April 25, 2005 А мне необходимо несколько NAS обсчитывать, причем некоторые NAS работают на циске. Решение должно быть универсальное. Поэтому наверное лучше netflow сложно придумать. Посмотри на http://bgbilling.bitel.ru весьма приятный продукт, хоть и не идеальный, но очень перспективный. PS. Это не реклама. Просто перешел на него после UTM и Град-Р, кстати оба комерческие и купленные :) Очень доволен! Вставить ник Quote
shs Posted April 26, 2005 Posted April 26, 2005 Вопрос к знатокам mpd и netgraph - как к mpd прикрутить ng_netflow или ng_ipacct? mpd создает такой граф: [iface ngX] ---inet---iface---[bpf]---ppp---inet---[ppp]---.... То есть чтобы подключть ng_ipacct или ng_netflow, нужно в цепочку вставить tee, к которому подкючить уже ipacct или netflow: right2left-----+ | | [iface ngX] ---inet---right--[tee]--left-+-iface---[bpf]---... | | left2right | | | in | | | [ipacct] | | | out--------+ Но ведь граф создает сам mpd, есть ли способ при создании интерфейса вставить в цепочку tee? Где-то в гугле пробегал патчик к mpd который добавлял в граф ng_tee Вставить ник Quote
Bushi Posted April 27, 2005 Author Posted April 27, 2005 Где-то в гугле пробегал патчик к mpd который добавлял в граф ng_tee На sourceforge.net/projects/mpd в трэкере нашел нужный патч. Теперь все замечтательно работает, осталось придумать механизм, как сопоставлять сессии в радиусе и потоки netflow на NAS-сервере с динамическими адресами. Готовых решений я не нашел. Вышеперечисленные биллинги это не умеют. Вставить ник Quote
Sheriff(SPb) Posted April 27, 2005 Posted April 27, 2005 А к gif-туннелю никто ng_ipacct не присобачивал? Я вообще не совсем понимаю как к нему что-то цеплять, когда у него один только хук. Вставить ник Quote
Mich12 Posted May 3, 2005 Posted May 3, 2005 http://bg-billing.bitel.ru/v3.2/doc/ch02s08.html Читать до прояснения :) В данном билинге все это уже есть ! Вставить ник Quote
Guest Posted May 4, 2005 Posted May 4, 2005 http://nibs.net.ua ну или можешь написать сам с использованием в качестве аутенификатора radius.. mpd с tacacs работать неможет насколько мне известно... Вставить ник Quote
Guest Posted May 6, 2005 Posted May 6, 2005 Sheriff(SPb), у gif-туннеля должен быть интерфейс, а трафик через этот интерфейс можно зарулить через ipfw tee на диверт сокет, этот сокет может слушать ng_ksocket или ng_socket, уже не помню, ну а далее в ng_ipacct _______ ky Вставить ник Quote
-=nix=- Posted May 7, 2005 Posted May 7, 2005 Гость, блин... сколько действий сдлать то надо... а не проще radius поставить и с него данные по трафику брать по стоповой записи ??? Вставить ник Quote
Bushi Posted May 7, 2005 Author Posted May 7, 2005 Гость, блин... сколько действий сдлать то надо... а не проще radius поставить и с него данные по трафику брать по стоповой записи ??? Был вопрос - как считать трафик в зависимости от направлений классы трафика по ip-адресу назначения и источника). Один радиус не поможет. Вставить ник Quote
Guest Posted November 2, 2005 Posted November 2, 2005 Вопрос к знатокам mpd и netgraph - как к mpd прикрутить ng_netflow или ng_ipacct? mpd создает такой граф: [iface ngX] ---inet---iface---[bpf]---ppp---inet---[ppp]---.... То есть чтобы подключть ng_ipacct или ng_netflow, нужно в цепочку вставить tee, к которому подкючить уже ipacct или netflow: right2left-----+ | | [iface ngX] ---inet---right--[tee]--left-+-iface---[bpf]---... | | left2right | | | in | | | [ipacct] | | | out--------+ Но ведь граф создает сам mpd, есть ли способ при создании интерфейса вставить в цепочку tee? Где-то в гугле пробегал патчик к mpd который добавлял в граф ng_tee Вставить ник Quote
networks Posted November 5, 2005 Posted November 5, 2005 так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю. Но ведь существует в Netflow v5 поле start time - время начала потока. Вот его и надо сравнивать с временными границами сессии пользователя, или может я чего-то не понимаю в этой жизни? Вставить ник Quote
Bushi Posted November 5, 2005 Author Posted November 5, 2005 так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю. Но ведь существует в Netflow v5 поле start time - время начала потока. Вот его и надо сравнивать с временными границами сессии пользователя, или может я чего-то не понимаю в этой жизни? Да, но ведь поток на NAS не закроется (если не закрыта tcp-сессия или используется другой протокол), даже если и закроется сессия клиента. Если на этот же порт соединиться другой клиент с тем же ip-адресом, то есть вероятность, что поток продолжиться и трафик запишется предыдущему клиенту. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.