Jump to content

Recommended Posts

Posted

Всем привет!

 

Существует NAS-сервер на mpd с динамическими ip-адресами. Есть ли какая нибудь возможность для учета трафика по направлениям (классы трафика по ip-адресу назначения и источника). На ум приходит только netflow, но из-за использование динамических адресов использование netflow лишено смысла, так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю.

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

Почему? У нас агреггируется netflow-поток (правда с циски, но не суть важно) с динамических адресов. Раз в десять минут производится расчет накопленой статистики. Обсчитываются все пользователи. Если пользователь, вышел до очередного обсчета, то ip-адрес блокируется для использования, пока не произойдет обсчет, после этого следующий пользователь может использовать этот ip. Да, начало и конец сесси привязываются к accounting-start и accounting-end, соответственно, пакетам NAS.

Posted

Вопрос к знатокам 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?

Posted
Почему? У нас агреггируется 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 в реальной коммерческой эксплуатации?

Posted

вот фрагмент моего скрипта:

# 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}

Posted

Данил! могу помочь!..

Есть такой биллинг stargazer, он по умолчанию с vpn не работает, но я его прикрутить к mpd сумел! Темболее что пров у нас с тобой один!

Хотел связаться с тобой но не получилось! вот мыло моё если что admin собака info-teh.ru

Posted
Данил! могу помочь!..

Есть такой биллинг 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, все верно

 

Кто нибудь сталкивался с такой проблемой?

Posted
Да херня этот stargazer. Гора скриптов для учета по файрвольным счетчикам, либо через divert.

Абсолюная неправда! Вопервых: подсчёт через bpf и счётчики ipfw не используются, во вторых за всё отвечает серверная программа!

Posted
А мне необходимо несколько NAS обсчитывать, причем некоторые NAS работают на циске. Решение должно быть универсальное. Поэтому наверное лучше netflow сложно придумать.

 

Посмотри на http://bgbilling.bitel.ru весьма приятный продукт, хоть и не идеальный, но очень перспективный.

 

PS. Это не реклама. Просто перешел на него после UTM и Град-Р, кстати оба комерческие и купленные :) Очень доволен!

Posted
Вопрос к знатокам 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

Posted
Где-то в гугле пробегал патчик к mpd который добавлял в граф ng_tee

 

На sourceforge.net/projects/mpd в трэкере нашел нужный патч. Теперь все замечтательно работает, осталось придумать механизм, как сопоставлять сессии в радиусе и потоки netflow на NAS-сервере с динамическими адресами. Готовых решений я не нашел. Вышеперечисленные биллинги это не умеют.

Posted

http://nibs.net.ua

ну или можешь написать сам с использованием в качестве аутенификатора radius..

mpd с tacacs работать неможет насколько мне известно...

Posted

Sheriff(SPb),

 

у gif-туннеля должен быть интерфейс,

а трафик через этот интерфейс можно зарулить через ipfw tee на диверт сокет,

этот сокет может слушать ng_ksocket или ng_socket, уже не помню,

ну а далее в ng_ipacct

 

_______

ky

Posted

Гость,

блин... сколько действий сдлать то надо... а не проще radius поставить и с него данные по трафику брать по стоповой записи ???

Posted
Гость,  

блин... сколько действий сдлать то надо... а не проще radius поставить и с него данные по трафику брать по стоповой записи ???

 

Был вопрос - как считать трафик в зависимости от направлений классы трафика по ip-адресу назначения и источника). Один радиус не поможет.

  • 5 months later...
Posted
Вопрос к знатокам 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

Posted
так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю.

 

Но ведь существует в Netflow v5 поле start time - время начала потока. Вот его и надо сравнивать с временными границами сессии пользователя, или может я чего-то не понимаю в этой жизни?

Posted
так как нет четской привязки окончания потока netflow к окончанию сессии. То есть после окончания сессии поток может быть не завершен и трафик может записаться другому пользователю.

 

Но ведь существует в Netflow v5 поле start time - время начала потока. Вот его и надо сравнивать с временными границами сессии пользователя, или может я чего-то не понимаю в этой жизни?

 

Да, но ведь поток на NAS не закроется (если не закрыта tcp-сессия или используется другой протокол), даже если и закроется сессия клиента. Если на этот же порт соединиться другой клиент с тем же ip-адресом, то есть вероятность, что поток продолжиться и трафик запишется предыдущему клиенту.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.