re all
Стандартная ситуация: роутер (FreeBSD 5.4, ipfw & natd) обслуживает небольшую локальную сеть. Задача: считать трафик на роутере, причем нужно считать как трафик каждой машины в сети (внешний и внутренний), так и трафик самого роутера (пользователи ходят с роутера, например, по ssh во вне).
Решение задачи организовал пользуясь трилогией с dreamcatcher.ru:
http://dreamcatcher.ru/docs/monitor_netflow.html
http://dreamcatcher.ru/docs/netflow_report.html
http://dreamcatcher.ru/docs/netflow_visio.htmlт.е. softflowd -> flow-capture -> [flow-tools, flowdumper, flowscan etc.]
И тут возникла в принципе ожидаемая проблема:
в пакетах из локальной сети src_ip меняется nat'ом.
Как в таких условиях считать трафик ?1) Пробовал брать netflow c внешнего интерфеса, но тогда не понятно как обсчитывать трафик машин из локальной сети. (?)
2) Пробовал брать netflow с внутреннего интерфейса, но при этом не обсчитывается внешний трафик самого роутера. (?)
3) Брать netflow с обоих интерфейсов, но тогда, насколько я понимаю, трафик будет дублироваться, что тоже очень неудобно. (этот вариант я не пробовал настраивать)Смотрел форумы по цискам - там в аналогичных случаях рекомендуют ставить 2 роутера - один с NAT, c другого снимать netflow. Такой вариант мне тоже не подходит, так как денег на дополнительный роутер нет.
Как лучше поступить в такой ситуации ?
Можно ли как-то снять netflow поток с внешнего интерфейса, до того как пакеты попадут к natd (может netgraph такое позволит или еще что-то) ?
Честно говоря, не очень понятно, откуда вы взяли "аналогичные случаи" с cisco, потому что там эта проблема решается совершенно не так (ещё не хватало - ставить вторую циску ради такой ерунды).
Она решается там путем заворачивания входящего трафика, прошедшего NAT, на loopback и подсчете его на loopback'е. Поскольку у этих пакетов dst address уже изменен NATом, входящий трафик для каждого хоста локальной сети будет подсчитываться корректно.
Как такое изобразить на FreeBSD, честно говоря, не знаю, но не вижу, почему это было бы не возможно.
ОБЯЗАТЕЛЬНО НАДО брать на 2-х интерфейсах: это связано с тем, что netflow собирает только входящий(или исходящий... что в принципе неважно :) траф НА ИНТЕРФЕЙС.
Во нашёл ссылку
http://forum.bestcom.ru/index.php?showtopic=15
>Во нашёл ссылку
>http://forum.bestcom.ru/index.php?showtopic=15Спасибо за ссылку.
Пошел изучать netgraph :)