Посетитель под ником Den68 прислал патч к poptop pptpd (http://www.poptop.org/) обеспечивающий возможность привязки номера ppp интерфейса к IP адресу, что позволит получать информацию о трафике пользователя отталкиваясь от счетчика на интерфейсе.
URL: http://www.opennet.me/base/patch/pptpd_fix_int.txt.html
Новость: http://www.opennet.me/opennews/art.shtml?num=4246
Я правильно понимаю это все делается чтобы было можно считать сколько трафика слопал пользователь ?Если да то патч нужен только при динамической рубке. Т.е. просто облегчает задачу выявления юзверей. Идеологически правильно считать траффик при помощи RADIUS ;)
Radius уже позволяет считать траффик до дисконнекта?
Ну например через alive пакеты...
>Radius уже позволяет считать траффик до дисконнекта?
Конечно. Как и было сказано через alive пакеты. Там много чего вкусного ;)
А никто нигде не видел патч, который бы исправлял повидение pppd при коннекте с таким же логином и паролем, чтоб вообще соединение даже не пыталось подняться? То есть нужно чтоб скрипты if-up и if-down вообще не выполнялись, если пытаются зайти под логином и паролем который уже залогинен..
Радиус тебя спасет
Радиусом идеологически правильно считать только время. Этот патч позволит вести гибкий трафик-аккаунтинг, т.е. можно будет считать денюжку при разной стоимости трафика на разные сети, если такое будет необходимо. Ну и иногда alive-пакет может просто не дойти до радиус-сервера...
Если подключен к РТКому (как большинство Россиян), то как-то все равно, в какие сети лезит юзер :)
У меня два вопроса:
1. Клиент с "опорного" IP 10.0.100.100 устанавливает PPTP сессию. Ему назначается адрес 192.168.15.7
Вопрос: Как выяснить соответствие назначенного адреса опорному?
2. Можно ли заставить интерфейс "помирать" только тогда, когда отработал скрипт "ip-down"? (или, как вариант, что бы "умерший" интерфейс поступал в распределение через определённое время после смерти?
1) Существуют патчи для pppd, чтобы передавать IP адрес инициатора PPtP соедининия Радиусу в качестве Calling-Station-Id. В радиусе же деллается (или нет) проверка на это соответствие и принимается какое-то решение...2) Это идеологически не правильно. Возможны случаи, что у клиента стоит "дозванивалка" PPtP и при разрыве соединения в течение секунды идет повторная попытка. В твоем случае у сервера будет сносит башню, т.к. произойдет попытка установить соединение при условно "не разорвавшемся" предыдущем соединении с одного и того же IP.
>1) Существуют патчи для pppd, чтобы передавать IP адрес инициатора PPtP соедининия
>Радиусу в качестве Calling-Station-Id. В радиусе же деллается (или нет) проверка
>на это соответствие и принимается какое-то решение...А кто нибудь видел тоже самое но для PPPoE? Что бы в качестве аттрибута Calling-Station-Id возвращался MAC инициатора сессии?
В Mikrotik'е это есть... и для PPtP и для PPPoE... Стоит копейки, управляется легче не придумать...
Я адаптировал под ppp-2.4.2 патч Антона Воронина (http://www.chelcom.ru/~anton/projects/pppd-tacacs+radius/) через libproc. Для PPPoE делается по аналогичным образом, просто у меня не было необходимости тогда.
А такое и есть.
pppoed выставляет пременную окружения HISMACADDR в которой и наличиствует MAC адрес клиента. (Эх - если-бы Cisco еще так делала :( ).
Так. А можно тут немного поподробнее?
Хорошо. Тогда подскажите, как сделать правильно?
Опишу ситуацию:
Юзверь "дозванивается", ему выделяется IP, он начинает работать.
Каждые 5 минут скрипт делает c сервера sh ip accounting и заносит кореспондирующие адреса в БД (это необходимо и не обсуждается).
Юзверь рвёт коннект в интервале между отработками этих скриптов.
Соответственно отрабатывается завершающий скрипт, который делает то же что и промежуточный. Однако, исполняться он может довольно долго.
В это время, другой юзверь входит в систему и получает IP и порт те же самые, что и предыдущего юзверя. Соответственно, остаток трафика предыдущего пользователя будет вешаться на него. Как победить такую ситуацию?
>Хорошо. Тогда подскажите, как сделать правильно?
>Опишу ситуацию:
>Юзверь "дозванивается", ему выделяется IP, он начинает работать.
>Каждые 5 минут скрипт делает c сервера sh ip accounting и заносит
Стоп ^^^^^^^^^^^^^^^^^
Это у Вас Cisco ????>кореспондирующие адреса в БД (это необходимо и не обсуждается).
>Юзверь рвёт коннект в интервале между отработками этих скриптов.
>Соответственно отрабатывается завершающий скрипт, который делает то же что и промежуточный. Однако,
>исполняться он может довольно долго.
>В это время, другой юзверь входит в систему и получает IP и
>порт те же самые, что и предыдущего юзверя. Соответственно, остаток трафика
>предыдущего пользователя будет вешаться на него. Как победить такую ситуацию?
Я эту проблему решил - но таким гемморойным путём.
Так что если это Cisco - могу поделится рецептом. Но сразу готовтесь - там участует netflow.
>Это у Вас Cisco ????
В данный момент - ipcad, но собираюсь перетащить на Cisco, так что...>Я эту проблему решил - но таким гемморойным путём.
>Так что если это Cisco - могу поделится рецептом. Но сразу готовтесь
>- там участует netflow.
Выслушаю с благодарностью. Кроме того, у меня есть ещё несколько вопросов касательно НетФлау. Но может личным письмом? (что бы не выглядеть в сети полным ламером :) )