Cisco Netflow
Cisco Netflow
Маршрутизаторы производства Cisco Systems, в современных версиях операционной системы IOS, поддерживают новый метод управления маршрутизацией пакетов, называемый NetFlow. Помимо всего прочего, он дает возможность собирать информацию о статистике и передавать ее внешнему устройству для обсчета. Более подробная информация о NetFlow содержится тут. Маршрутизатор посылает UDP–пакеты со статистикой на некий IP–адрес/порт, где NeTAMS может собрать информацию и обработать ее. Фильтрация трафика в таком случае невозможна, так как пересылку данных осуществляет внешнее устройство. О конкретной настройке netflow export можно почитать тут.
Помимо роутера Cisco, поток данных Netflow может слать один их множества существующих коллекторов: fprobe, ng_netflow, flowprobe, ipfw2netflow, ulog2netflow. Последние три входят в комплект поставки NeTAMS.
Приведем пример команд маршрутизатора:
ip cef
!
ip flow–cache timeout inactive 60
ip flow–cache timeout active 10
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
ip route–cache flow
!
ip flow–export version 5
ip flow–export destination 192.168.1.254 20001
Обработчик data–source в конфигурационном файле NeTAMS настраивается следующим образом:
service data–source 1
type netflow
source 192.168.1.1
listen 20001
Полный конфигурационный файл приведен здесь.
Предполагается, что UDP–пакеты NetFlow идут с маршрутизатора, имеющего IP–адрес 192.168.1.1, и поступают на локальный UDP–порт номер 20001 (его и слушает NeTAMS).
ВАЖНО!
По определению, NetFlow учитывает только входящий на роутер трафик. Это вызывает проблемы учета при использовании трансляции адресов. Действительно, пакеты от машин внутренней сети приходят на роутер и учитываются верно, но обратные ответы извне поступают с адресом dst внешнего интерфейса. Поскольку трансляция адресов происходит после учета, то статистика всего входящего трафика будет содержать сумму всего трафика, пришедшего на адрес внешнего интерфейса, и нули для адресов внутренней локальной сети. Для корректного учета, вам необходимо использовать policy routing. Установленная на роутере операционная система должна поддерживать эту функцию. Вот пример конфигурации для Cisco 2514:
ip cef
!
interface Loopback0
ip address 192.168.10.1 255.255.255.0
ip route–cache policy
ip route–cache flow
!
interface Ethernet0
ip address 195.200.200.1 255.255.255.0
ip nat outside
ip route–cache policy
ip route–cache flow
ip policy route–map MAP
!
interface Ethernet1
ip address 192.168.1.1 255.255.255.0
ip nat inside
ip route–cache policy
ip route–cache flow
!
ip nat inside source list 1 interface Ethernet0 overload
ip classless
ip flow–export version 5
ip flow–export destination 192.168.1.254 20001
!
access–list 1 permit 192.168.1.0 0.0.0.255
access–list 101 permit ip any 192.168.1.0 0.0.0.255
route–map MAP permit 10
match ip address 101
set interface Loopback0
При использовании заруливания трафика через раутмап на CPU (loopback) Cisco довольно сильно грузиться CPU, что может существенно занизить производительность устройства начиная с IOS 12.3x в IOS добавились фичи позволяющие избавиться от ненужной нагрузки на CPU маршрутизатора.
Называется фича: Egress NetFlow Accounting