Биллинговая система Nodeny

Главная категория => Nodeny 50 => Тема начата: bnet от 05 Июня 2010, 14:05:57



Название: Неучтенный трафик
Отправлено: bnet от 05 Июня 2010, 14:05:57
Случайно заметил, что таблица traf_lost имеет почти 100 миллионов записей, размером почти на 6 Гб,
Код:
mysql> delete from traf_lost;
Query OK, 99787112 rows affected (3.34 sec)

В админке куча неучтенного трафика,
не могу понять откуда, и почему он сюда записывается...

P.S. папка аплоад на сервере заполнена, так-что скрин вставляю как есть..
http://clip2net.com/clip/m23857/1275739479-clip-44kb.png


Название: Re: Неучтенный трафик
Отправлено: elite от 05 Июня 2010, 16:25:06
потому что у тебя этих ип нет в бд клиентов
наверное...


Название: Re: Неучтенный трафик
Отправлено: stix от 05 Июня 2010, 17:00:37
я по кронтабу чищу таблицу периодически
хотелось бы опционально, чтобы можно было включать/отключать Lost


Название: Re: Неучтенный трафик
Отправлено: Efendy от 05 Июня 2010, 17:10:24
при правильной настройке неучтенного трафика не должно быть. Неучтеный трафик - признак, что есть дыры в вашей системе. Например, вы думаете, что разрешив жестко в фаерволе вне NoDeny  порт 53 вы разрешили ДНС? Ответ неправильный - вы открыли халявный канал ip over dns


Название: Re: Неучтенный трафик
Отправлено: stix от 05 Июня 2010, 17:32:17
все верно, да.

но например в моем случае роутер, который отправляет по нетфлоу потоки с интерфейса, отправляет еще и туннельный трафик, который с инкапсулированными данными.

если я буду отправлять по нетфлоу с другого интерфейса, то там у меня НАТ и потоки будут под натом.


Название: Re: Неучтенный трафик
Отправлено: bnet от 05 Июня 2010, 18:21:21
потому что у тебя этих ип нет в бд клиентов
наверное...
они есть у меня в базе, и доспуп в инет для них разрешен

при правильной настройке неучтенного трафика не должно быть. Неучтеный трафик - признак, что есть дыры в вашей системе. Например, вы думаете, что разрешив жестко в фаерволе вне NoDeny  порт 53 вы разрешили ДНС? Ответ неправильный - вы открыли халявный канал ip over dns
может есть описание типовых ошибок в настройке, которые к этому приводят?


Название: Re: Неучтенный трафик
Отправлено: elite от 05 Июня 2010, 19:22:36
А еще у пользователей всех отключена авторизация (всегда онлайн)


Название: Re: Неучтенный трафик
Отправлено: Efendy от 05 Июня 2010, 19:34:41
они есть у меня в базе, и доспуп в инет для них разрешен
если они есть в базе,  то трафик им будет начислен. Если нет - значит NoDeny получает информацию так, как будто его клиентом является удаленный ip, а удаленным ip-  его клиент. Например, коллектор говорит NoDeny: вот от нашего клиента ya.ru пошел пакет в инет на айпи 10.0.0.3.

Какой коллектор используется и как в него попадает инфа?


Название: Re: Неучтенный трафик
Отправлено: Efendy от 05 Июня 2010, 19:35:07
А еще у пользователей всех отключена авторизация (всегда онлайн)
это не должно приводить к "неучтенному трафику"


Название: Re: Неучтенный трафик
Отправлено: elite от 05 Июня 2010, 20:49:19
если они есть в базе,  то трафик им будет начислен. Если нет - значит NoDeny получает информацию так, как будто его клиентом является удаленный ip, а удаленным ip-  его клиент. Например, коллектор говорит NoDeny: вот от нашего клиента ya.ru пошел пакет в инет на айпи 10.0.0.3.

Какой коллектор используется и как в него попадает инфа?
айпикад у него стоит, фаервол вроде дефолтный, надо проверить...


Название: Re: Неучтенный трафик
Отправлено: blackjack от 05 Июня 2010, 21:50:43
1. если трафик загоняется в коллектор через фаерволл, то снимать статистику в любом случае надо на интерфейсе смотрящем внутрь.
2. Если между сервером/серверами доступа и интернетом стоит бордер и на бордере ваша белая сеть маршрутизируется в сторону сервера/серверовов доступа, то на серверах доступа эту сеть надо роутить в нуль. Поскольку если этого не сделать, то у вас получится роутлуп на адресах которые не используются в данный момент. В результате этого вы будете гонять к никому неидущие пакеты между бордером и сервером доступа пока ттл не станет равным нулю, тоесть 64/128/256 раз.
На фряхе это делается так
Код:
route add -net x.x.x.x/24 -iface lo0 -blackhole 
это если статика, если динамика то в зебре делаем так
Код:
ip route x.x.x.0/24 Null0
Это еще не все, если у вас сеть /22 или /23, то в нуль надо отправлять всю вашу сеть на бордере
Код:
ip route x.x.x.0/22 Null0
а в локалку роутить /24.
Исходя из вышеописаных фактов возможно попадание трафика в таблицу траф_лозт, если этого не сделать.


Название: Re: Неучтенный трафик
Отправлено: Efendy от 05 Июня 2010, 22:52:22
1. если трафик загоняется в коллектор через фаерволл, то снимать статистику в любом случае надо на интерфейсе смотрящем внутрь.
не все так просто. Пользуясь случаем, настрочу небольшую лекцию, ибо доку никто не читает. Было бы полезно это прочитать всем, чтоб понимать в чем же соль подсчета трафика.

Классифицировать трафик - это на самом деле нетривиальная задача, как ни странно. Почему странно - ведь сетевые технологии развиваются дофига лет, значит должны были все предусмотреть. Фишка в том, что в домашних сетях есть особый нюанс, который отличает их от всемирного подхода, если так выразиться. А именно:
1) в сетевых технологиях принято считать весь трафик
2) в домашних сетях в подавляющем количестве случаев считают только тот трафик, который разрешено считать. А именно: если клиент в заблокированном состоянии, то пусть он хоть дос-атаку устраивает, мы не должны считать этот трафик. Ессно, блокируем, но это иной вопрос.

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

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

Поэтому просто так повесить на интерфейс коллектор - не катит. Вы можете это сделать, будет работать, но главное условие не будет выполняться. Более того, поскольку трафик еще и натится, на интерфейсе, смотрящем в мир, пакеты не будут нести информацию о наших клиентах, ибо на роутер трафик приходит с подмененным ip этого роутера. Т.е. даже на этом этапе не может выполняться условие "считаем только входящий трафик". Приходится вешать на интерфейс, смотрящий на клиента и слушать трафик в обоих направлениях.

Но и здесь, кроме основной проблемы с подсчетом блокированного трафика, возникает вторая, с которой многие, в основном маленькие сети, не сталкиваются - при наличии 2х и более клиентских интерфейсов трафик будет считаться дважды. Почему? А очень просто. Допустим клиент 10.0.0.1 посылает пакет на 10.1.0.1, пакет проходит роутер, регистрируется на входе и на выходе как "пакет от 10.0.0.1 на 10.1.0.1 столько-то байт". В коллекторе эти записи абсолютно ничем не отличаются. В ipcad можно регистрировать имя интерфейса, но это требует подсказки ядру какая сеть на каком интерфейсе находится. Это, кстати, есть в настройках, в админке. Обычно там стоит звездочка-подчеркивание-звездочка, и я думаю мало кто вникал,  что это за фигня вообще))

Более того, когда сеть состоит из кучи маршрутизаторов,  настроить без ошибок по предыдущей схеме все труднее и труднее.

Несколько лет назад, я задался вопросом как же построить универсальное решение, не зависящее от топологии сети и корректно считающее трафик по нашим условиям. Я пообщался с многими "щарящими людьми", которые сначала выдавали фразу "элементарно", но после уточнения всех нюансов сдавались. Но, тем не менее, схему я такую разработал.

Минусом такой схемы является то, что обычно в ней никто нихрена не понимает. Да, там всего несколько строк фаервола, но его апгрейд  обычно делается по образу и подобию, не вникая в сам принцип, поэтому и появляется т.н. "неучтенный трафик".

Повторюсь, что означает "неучтенный трафик" - это информация, полученная от коллекторов, которую ядро не смогло идентифицировать с клиентом. Обратите внимание - трафик может быть связан с клиентом, но ядро не смогло по мною заложенным правилам правильно однозначно расшифровать эту информацию.

Принцип, на самом деле простой. Нодени нужно знать всего один параметр - имя интерфейса, который не связан с клиентом. На основе этого, он строит такие предпосылки:

1) трафик идущий на сервер с не_внешнего_интерфейса - засчитывается клиенту как исходящий
2) трафик идущий на клиента с не_внешнего_интерфейса - засчитывается клиенту как входящий
3) трафик идущий на клиента с не_внешнего_интерфейса и при этом вошел в роутер с не_внешнего_интерфейса - это трафик между клиентами, засчитывается обоим.

Самое трудное для понимания правило 3 - в фаерволе это правило обеспечивается ${f} add 400 skipto 450 ip from any to any recv ${ifOut} (только это инверсия правила - делает пропуск следующего правила подсчета трафика ).

Вот это, кто делает апгрейд логики NoDeny должен учитывать. По умолчанию - это все учтено, если вы хотите добавить своей изюминки - будьте добры, изучите эти сраные несколько строк в фаерволе. Именно изучите, а не клонируйте по образу и подобию.

Да, надеюсь, понятно, что фраза
Цитировать
если трафик загоняется в коллектор через фаерволл, то снимать статистику в любом случае надо на интерфейсе смотрящем внутрь
не имеет смысла в NoDeny?


Название: Re: Неучтенный трафик
Отправлено: blackjack от 05 Июня 2010, 23:26:05
Цитировать
Так вот. Это не работает в концепции домашних сетей, где повторяюсь, мы не должны считать трафик, который пришел от клиента, если клиент в заблокированном состоянии.
если используется pppoe/pptp, то можно через dhcp либо статикой, неважно как назначать адреса сетевому адаптеру абонента, а в фаерволе строить правила которые загоняют трафик в коллектор так, чтобы туда попадал лиш трафик с адресов pppoe/pptp. Абонентов в заблокированном состоянии не поключать через ппп. Но как быть, если по dhcp выдаются еще и маршруты для локального трафика чтобы не гонять все через ппп концентратор? Вобщем тема сложная и требует настройки, адаптации и доработки для конкретной схемы сети.
Правило которое вы привели мне ничего не говорит,
Код:
${f} add 400 skipto 450 ip from any to any recv ${ifOut}
у меня переписан nofire.pl и свой конфиг фаервола - неучтенного трафика раньше небыло и сейчас нет поскольку снимаю статистику с циски через нетфлоу. А перешел на нетфлоу изза того что начал юзать кернел нат и используя логику загона трафика в коллектор надо было устанавливать one_pass=0 что не есть гуд.


Название: Re: Неучтенный трафик
Отправлено: elite от 05 Июня 2010, 23:50:08
А перешел на нетфлоу изза того что начал юзать кернел нат и используя логику загона трафика в коллектор надо было устанавливать one_pass=0 что не есть гуд.
почему не есть гуд?


Название: Re: Неучтенный трафик
Отправлено: blackjack от 05 Июня 2010, 23:56:21
потому что после прохождения tee/ngtee/nat/pipe трафик возвращается обратно в фаерволл и после надо добавлять еще allow в нужном нам месте. После отказа от такого метода сбора статистики загрузка процессора в час пик упала на 50%


Название: Re: Неучтенный трафик
Отправлено: elite от 06 Июня 2010, 00:02:40
как вариант, использовать ng_ipacct + ng_nat ?


Название: Re: Неучтенный трафик
Отправлено: blackjack от 06 Июня 2010, 00:08:35
дык ng_ipacct и юзался только с кернел натом, это сути не меняет


Название: Re: Неучтенный трафик
Отправлено: elite от 06 Июня 2010, 00:30:18
дык ng_ipacct и юзался только с кернел натом, это сути не меняет
загонять траф в нетграф, а там уже делать ng_ipacct и там же ng_nat без выхода пакета в фаервол


Название: Re: Неучтенный трафик
Отправлено: Efendy от 06 Июня 2010, 00:40:34
Абонентов в заблокированном состоянии не поключать через ппп.
это неправильный подход. Клиент должен понимать из-за чего нет соединения - из-за бабла или из-за технической проблемы. Статистика забирает на себя большинство вопросов клиентов (можете проверить) - вы должны ее подсовывать максимально отдаляя контакт со службой техподдержки т.к. это наиболее уязвимое звено в системе, которое нельзя перегружать либо расширять просто невыгодно в финансовом плане.

у меня переписан nofire.pl и свой конфиг фаервола - неучтенного трафика раньше небыло и сейчас нет поскольку снимаю статистику с циски через нетфлоу.
у нефлоу тоже есть правильна настройка, читайте внимательно доки NoDeny


Название: Re: Неучтенный трафик
Отправлено: Efendy от 06 Июня 2010, 00:43:26
изза того что начал юзать кернел нат и используя логику загона трафика в коллектор надо было устанавливать one_pass=0 что не есть гуд.
кернел нат, который явно в фаере прописывется? Вот поэтому я и рекомендую pf nat


Название: Re: Неучтенный трафик
Отправлено: stix от 06 Июня 2010, 07:26:21
я думаю еще правильный вариант будет отправлять нетфлоу потоки с L2-L3 свича.
по-сути у него будет все фейковый роуты, интерфейсы в обе стороны....
хотя не, опять же будет двойной трафик из-за того, что GRE туннели будет тоже снимать.

значит нужно фильтр ставить + netflow 5 использовать.
насколько я понял Efendy, то ноденай может смотреть в netflow v5 ?


Название: Re: Неучтенный трафик
Отправлено: blackjack от 06 Июня 2010, 08:10:55
кернел нат, который явно в фаере прописывется? Вот поэтому я и рекомендую pf nat
это неправильный подход. Клиент должен понимать из-за чего нет соединения - из-за бабла или из-за технической проблемы. Статистика забирает на себя большинство вопросов клиентов (можете проверить) - вы должны ее подсовывать максимально отдаляя контакт со службой техподдержки т.к. это наиболее уязвимое звено в системе, которое нельзя перегружать либо расширять просто невыгодно в финансовом плане.
у нефлоу тоже есть правильна настройка, читайте внимательно доки NoDeny
поверьте я внимательно перечитываю нужную мне доку время от времени, но зачем мучать пс роутер если рядом стоит циска в режиме л3 и роутит всю сеть?
короче я все делаю неправильно, ладно не буду спорить


Название: Re: Неучтенный трафик
Отправлено: Efendy от 06 Июня 2010, 08:54:27
но зачем мучать пс роутер если рядом стоит циска в режиме л3 и роутит всю сеть?
никто не заставляет юзать роутер при наличии циски. При правильной настройке, неучтенного трафика и в этом случае не должно быть.


Название: Re: Неучтенный трафик
Отправлено: elite от 06 Июня 2010, 09:49:20
я думаю еще правильный вариант будет отправлять нетфлоу потоки с L2-L3 свича.
а нетфлоу только циски умеют


Название: Re: Неучтенный трафик
Отправлено: elite от 06 Июня 2010, 09:52:06
кернел нат, который явно в фаере прописывется? Вот поэтому я и рекомендую pf nat
pf плох на многопроцессорных машинах, т.к. не распределяется по процам


Название: Re: Неучтенный трафик
Отправлено: stix от 06 Июня 2010, 10:09:14
а нетфлоу только циски умеют
а у меня кроме цисок ничего нету ))
ну и микротик тоже еще посылает


Название: Re: Неучтенный трафик
Отправлено: md5 от 06 Июня 2010, 19:56:39
а у меня кроме цисок ничего нету ))
ну и микротик тоже еще посылает

тогда чего ты трафик с цысок не дерешь ?


Название: Re: Неучтенный трафик
Отправлено: stix от 06 Июня 2010, 20:27:52
я писал

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