27.06.11 @ 18:15 Vadim Goncharov wrote:

22.06.11 @ 18:53 Oleg Cherevko wrote:

На данный момент ng_netflow, в силу его внутреннего устройства, до этого идеала далеко. У него проблемы с broadcast- и multicast-трафиком, с пакетами, отсеяными firewall'ом, с ipfw fwd, с локальным трафиком и,

С fwd можно справляться, навешивая ноду непосредственно на ng_ether, а не через файрвол, и включая соответствующие флаги в конфигурации узла, чтобы не считало дважды тот же трафик.

возможно, еще с чем-то, до чего я пока не добрался. Справедливости ради следует сказать, что все вышеперечисленное обычно не является определяющим в общем объеме трафика, так что ng_netflow для основного трафика на машине без особых изысков в конфигурации -- вполне рабочий инструмент. Но мне хочется перевести его из фазы "make it work" в фазу "make it right", (ну а затем и в "make it fast", если понадобится).

Боюст, это опять потребует архитектурных изменений :)

Здесь я о том, что в архитектуре Cisco IOS, насколько мне известно, netflow генерируется в одном месте, том же, которое занимается непосредственно форвардингом, т.е. это просто экспорт состояния самого движка, как если бы это были ipfw dynamic rules или pf states (хотя и это - неточная аналогия). Во FreeBSD же ng_netflow "прилеплен сбоку" стека.

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

исправить в /usr/src/sys/netgraph/netflow/ng_netflow.с и заменить строчку

                 mtag = m_tag_alloc(MTAG_NETFLOW, MTAG_NETFLOW_CALLED,

на

mtag = m_tag_alloc(MTAG_NETFLOW, MTAG_NETFLOW_CALLED | MTAG_PERSISTENT,

Ну и как обычно, send-pr с соответствующим полем fix, особенно если ничего не сломается.

Я тут подумал повнимательнее, в общем, сломать оно может разве что сам netflow - а именно, если mbuf где-то реюзаются для других целей, то узлы netflow с флагами *ONCE начнут этот трафик игнорировать, т.е. терять в подсчетах. На стабильность системы никак повлиять не должно.

--
WBR, Vadim Goncharov

Ответить