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 такое позволит или еще что-то) ?