Биллинговая система Nodeny
26 Ноября 2024, 00:08:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Неучтенный трафик  (Прочитано 12630 раз)
bnet
NoDeny
Пользователь
*

Карма: 6
Offline Offline

Сообщений: 85


Просмотр профиля
« : 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
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #1 : 05 Июня 2010, 16:25:06 »

потому что у тебя этих ип нет в бд клиентов
наверное...
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #2 : 05 Июня 2010, 17:00:37 »

я по кронтабу чищу таблицу периодически
хотелось бы опционально, чтобы можно было включать/отключать Lost
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #3 : 05 Июня 2010, 17:10:24 »

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

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #4 : 05 Июня 2010, 17:32:17 »

все верно, да.

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

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

Карма: 6
Offline Offline

Сообщений: 85


Просмотр профиля
« Ответ #5 : 05 Июня 2010, 18:21:21 »

потому что у тебя этих ип нет в бд клиентов
наверное...
они есть у меня в базе, и доспуп в инет для них разрешен

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

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #6 : 05 Июня 2010, 19:22:36 »

А еще у пользователей всех отключена авторизация (всегда онлайн)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #7 : 05 Июня 2010, 19:34:41 »

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

Какой коллектор используется и как в него попадает инфа?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #8 : 05 Июня 2010, 19:35:07 »

А еще у пользователей всех отключена авторизация (всегда онлайн)
это не должно приводить к "неучтенному трафику"
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #9 : 05 Июня 2010, 20:49:19 »

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

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

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #10 : 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.
Исходя из вышеописаных фактов возможно попадание трафика в таблицу траф_лозт, если этого не сделать.
« Последнее редактирование: 05 Июня 2010, 21:54:01 от blackjack » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #11 : 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?
Записан
blackjack
NoDeny
Старожил
*

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #12 : 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 что не есть гуд.
« Последнее редактирование: 05 Июня 2010, 23:31:29 от blackjack » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #13 : 05 Июня 2010, 23:50:08 »

А перешел на нетфлоу изза того что начал юзать кернел нат и используя логику загона трафика в коллектор надо было устанавливать one_pass=0 что не есть гуд.
почему не есть гуд?
Записан
blackjack
NoDeny
Старожил
*

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #14 : 05 Июня 2010, 23:56:21 »

потому что после прохождения tee/ngtee/nat/pipe трафик возвращается обратно в фаерволл и после надо добавлять еще allow в нужном нам месте. После отказа от такого метода сбора статистики загрузка процессора в час пик упала на 50%
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!