URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3604
[ Назад ]

Исходное сообщение
"ipfw count - чтото не так..."

Отправлено drone , 17-Ноя-04 12:03 
FreeBSD 5.2.1.
Поднял VPN сервер (mpd). На внешнем интерфейсе стоит NAT.
Допустим, клиент коннектится и ему выдается IP 10.10.10.10.
Надо посчитать трафик, скаченный им из инета.

ipfw add 100 count ip from any to 10.10.10.10 in

по идее все должно быть ровно :)
Но я качаю из инета файл 1.5 мега, а счетчик показывает меньше
число байт. Хотя должен показывать даже чуть больше...
Расхождение не сильное, но если качать много, то плохо :(
Перед скачкой счетчик обнуляю.

Может, чтото не так делаю. Лажа какаято.


Содержание

Сообщения в этом обсуждении
"ipfw count - чтото не так..."
Отправлено kir , 17-Ноя-04 15:11 

а клинет случаем не M$ машина ? :)))) - если да то забудь - M$ слчиают по своему

хочешь что бы сходлся траффик - считай на интерфейсе ngX


"ipfw count - чтото не так..."
Отправлено drone , 17-Ноя-04 15:17 
>
>
> а клинет случаем не M$ машина ? :)))) - если да
>то забудь - M$ слчиают по своему
>
> хочешь что бы сходлся траффик - считай на интерфейсе ngX

Ладно, пусть так.
Но тут возникает другой вопрос.
Пусть заранее существуют 100 интерфейсов ng0-ng99.
Клиент из M$Windows коннектится. Происходит соединение с каким-то
интерфейсом ngXX. Ему сервер выдает IP. Но как узнать, какой
интерфейс именно ему присвоен? Я считаю по IP, т.к. IP явно выдается
клиенту, и я его знаю. А интерфейс- нет.
Как тут быть?


"ipfw count - чтото не так..."
Отправлено drone , 17-Ноя-04 15:25 
В догонку:
тока что сделал

ipfw add 100 count ip from any to any in via ng0

ТОЖЕ не то количество байт!


"ipfw count - чтото не так..."
Отправлено drone , 17-Ноя-04 16:07 
Ну что все замолкли?
Я тут поэксперементировал немного.
Поставил на прослушку прогу с диверт сокетом и прописал:

ipfw add 100 divert all from any to any via ng0

вроде, правильно считает...

Но нужно решение с ipfw count!


"ipfw count - чтото не так..."
Отправлено kir , 17-Ноя-04 20:35 
>>
>>
>> а клинет случаем не M$ машина ? :)))) - если да
>>то забудь - M$ слчиают по своему
>>
>> хочешь что бы сходлся траффик - считай на интерфейсе ngX
>
>Ладно, пусть так.
>Но тут возникает другой вопрос.
>Пусть заранее существуют 100 интерфейсов ng0-ng99.
>Клиент из M$Windows коннектится. Происходит соединение с каким-то
>интерфейсом ngXX. Ему сервер выдает IP. Но как узнать, какой
>интерфейс именно ему присвоен? Я считаю по IP, т.к. IP явно выдается
>
>клиенту, и я его знаю. А интерфейс- нет.
>Как тут быть?


извращенци.............мля

почитайте документацию по mpd !!!!!!!!!!!


"ipfw count - чтото не так..."
Отправлено SeregaOpenNet , 18-Дек-04 18:02 
>извращенци.............мля
>
> почитайте документацию по mpd !!!!!!!!!!!

да вы ребята точно через одно место пытаетесь сделать то, что давно уже сделано

наверняка у тебя MPD авторизуется на Radius'е, если это не так то лол товарищь =)

так вот он замечательно отдает радиусу статистику, и там уж точно все до последнего битика


"ipfw count - чтото не так..."
Отправлено Grayich , 19-Дек-04 08:09 
>Ладно, пусть так.
>Но тут возникает другой вопрос.
>Пусть заранее существуют 100 интерфейсов ng0-ng99.
>Клиент из M$Windows коннектится. Происходит соединение с каким-то
>интерфейсом ngXX. Ему сервер выдает IP. Но как узнать, какой
>интерфейс именно ему присвоен? Я считаю по IP, т.к. IP явно выдается
>
>клиенту, и я его знаю. А интерфейс- нет.
>Как тут быть?

в-------- mpd.conf--------------
#  скрипт выполняющийся при поднятии интерфейса (название скрипта и месторасположение естественно своё!)
        set iface up-script /usr/local/etc/mpd/vpn_up.sh
#  скрипт выполняющийся при ронянии :)
        set iface down-script /usr/local/etc/mpd/vpn_down.sh
--------------------------------

в /usr/local/etc/mpd/vpn_up.sh пишешь
echo $@ >> /tmp/param  # все переданные параметры

далее смотришь /tmp/param и разбираешься...

собственно тебе нужно юзать только..
echo $1 >> /tmp/param   # имя интерфейса
echo $4 >> /tmp/param   # ip юзверя
echo $5 >> /tmp/param   # Имя юзверя

и правду говорят тут, если тебе нужен только трафик без подробностей то сделай через Radius...