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 мега, а счетчик показывает меньше
число байт. Хотя должен показывать даже чуть больше...
Расхождение не сильное, но если качать много, то плохо :(
Перед скачкой счетчик обнуляю.Может, чтото не так делаю. Лажа какаято.
а клинет случаем не M$ машина ? :)))) - если да то забудь - M$ слчиают по своему
хочешь что бы сходлся траффик - считай на интерфейсе ngX
>
>
> а клинет случаем не M$ машина ? :)))) - если да
>то забудь - M$ слчиают по своему
>
> хочешь что бы сходлся траффик - считай на интерфейсе ngXЛадно, пусть так.
Но тут возникает другой вопрос.
Пусть заранее существуют 100 интерфейсов ng0-ng99.
Клиент из M$Windows коннектится. Происходит соединение с каким-то
интерфейсом ngXX. Ему сервер выдает IP. Но как узнать, какой
интерфейс именно ему присвоен? Я считаю по IP, т.к. IP явно выдается
клиенту, и я его знаю. А интерфейс- нет.
Как тут быть?
В догонку:
тока что сделалipfw add 100 count ip from any to any in via ng0
ТОЖЕ не то количество байт!
Ну что все замолкли?
Я тут поэксперементировал немного.
Поставил на прослушку прогу с диверт сокетом и прописал:ipfw add 100 divert all from any to any via ng0
вроде, правильно считает...
Но нужно решение с ipfw count!
>>
>>
>> а клинет случаем не M$ машина ? :)))) - если да
>>то забудь - M$ слчиают по своему
>>
>> хочешь что бы сходлся траффик - считай на интерфейсе ngX
>
>Ладно, пусть так.
>Но тут возникает другой вопрос.
>Пусть заранее существуют 100 интерфейсов ng0-ng99.
>Клиент из M$Windows коннектится. Происходит соединение с каким-то
>интерфейсом ngXX. Ему сервер выдает IP. Но как узнать, какой
>интерфейс именно ему присвоен? Я считаю по IP, т.к. IP явно выдается
>
>клиенту, и я его знаю. А интерфейс- нет.
>Как тут быть?
извращенци.............мляпочитайте документацию по mpd !!!!!!!!!!!
>извращенци.............мля
>
> почитайте документацию по mpd !!!!!!!!!!!да вы ребята точно через одно место пытаетесь сделать то, что давно уже сделано
наверняка у тебя MPD авторизуется на Radius'е, если это не так то лол товарищь =)
так вот он замечательно отдает радиусу статистику, и там уж точно все до последнего битика
>Ладно, пусть так.
>Но тут возникает другой вопрос.
>Пусть заранее существуют 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...