Вы рассматриваете конфигурацию экспорта NetFlow с выходящими (egress) потоками? А знаете ли вы, почему вам следует или не следует экспортировать выходные потоки?
Большинство из нас экспортирует NetFlow v5, который поддерживает только входящие потоки. Это означает, что трафик, приходящий на интерфейс, контролируется и экспортируется в датаграммы NetFlow. А что с трафиком, который выходит из интерфейса? А вот он не контролируется с помощью NetFlow v5.
Большинство производителей контролируют входящие потоки на приемном интерфейсе. При этом, используя эту информацию, вы можете определить выходную утилизацию на любом интерфейсе, если (это важно!) вы включили NetFlow на всех интерфейсах коммутатора или маршрутизатора.
Давайте рассмотрим ситуацию, когда NetFlow включен на интерфейсах 1 и 2 из трех интерфейсов маршрутизатора. Трафик, приходящий на интерфейс 3, который является приемником для интерфейсов 1 и 2, будет исчезать, когда анализатор NetFlow будет рассчитывать выходную утилизацию этих интерфейсов. Если коротко, когда вы используете NetFlow v5 или v9 (только входные потоки), при включении NetFlow на всех интерфейсах, выходящая утилизация на любом интерфейсе рассчитывается с помощью входящих потоков на других интерфейсах. Очень многие системы отчетности на базе NetFlow работают таким образом.
Зачем включать Egress NetFlow?NetFlow v9 поддерживает и входящий (ingress) и выходящий (egress) NetFlow. В большинстве инсталляций входящие потоки, включенные на всех интерфейсах маршрутизатора или коммутатора, предоставляют вам информацию, в которой вы нуждаетесь. Но есть несколько причин использовать выходящие потоки:
- В среде WAN с сжатием (Cisco WAAS, Riverbed, и др.) нам необходимо видеть трафик после сжатия. Используя входящие потоки вы неправильно определите выходную утилизацию на интерфейсе WAN. А вот выходные потоки будут учитываться уже после сжатия.
- В среде multicast входные потоки в качестве принимающего интерфейса имеют 0, поскольку роутер не знает, какой интерфейс их будет принимать, пока не будут обработаны датаграммы. Экспортируя выходящие потоки мы знаем приемные интерфейсы и, как результат, множество потоков будет экспортироваться, если потоки будут направлены на множество интерфейсов.
- Когда NetFlow экспортируется только с одного интерфейса маршрутизатора или коммутатора. Включив оба режима на интерфейсе, вы обеспечиваете возможность экспорта в датаграмму и входных и выходных потоков.
Хороший анализатор NetFlow должен учитывать выходящие потоки при расчете выходной утилизации. Если он обнаруживает включенные выходные потоки на интерфейсе, то должен их использовать. Если же функция выходящих потоков отключена, он должен рассчитывать выходную утилизацию на базе входных потоков с других интерфейсов.
Включение Ingress и EgressНиже приведены команды для конфигурировании маршрутизатора Cisco для включения ingress- и egress-потоков:
Router > enable
Router#: configure terminal
! Посылаем NetFlow на коллектор
Router(config)# ip flow-export destination 10.1.1.1
! Посылаем NetFlow на 2-й коллектор
Router(config)# ip flow-export destination 10.1.1.2
! Вам надо установить параметры Flexible NetFlow для экспорта в более, чем два приемника
! Используем NetFlow v9, поскольку NetFlow v5 не поддерживает egress NetFlow
Router(config)# ip flow-export version 9
! Суммируем и экспортируем долгоживущие потоки каждую минуту
Router(config)# ip flow-cache timeout active 1
! Экспортируем потоки, которые бездействуют 15 секунд и более
Router(config)# ip flow-cache timeout inactive 15
! Экспортируем NetFlow с интерфейса, конфигурированного как loopback.
Router(config)# ip flow-export source loopback 0
! Включаем NetFlow на каждом интерфейсе, который нам нужен
! Конфигурируем первый интерфейс
Router(config)# interface Ethernet 0/0
Router(config-if)# ip flow ingress
Router(config-if)# ip flow egress
Router(config-if)# exit
! Меняем следующий интерфейс
Router(config)# interface Ethernet 0/1
Router(config-if)# ip flow ingress
Router(config-if)# ip flow egress
Router(config-if)# exit
! Сохраните это в памяти, если вы хотите потом использовать эту конфигурацию
Ingress, Egress или оба Используя командный интерфейс Cisco вы можете набрать следующие команды, чтобы увидеть включены или не включены igress и engress.
Также и система отчетности на базе NetFlow должна вам сказать, включены на интерфейсе ingress и egress или нет.
Контролируете направлениеВы можете определить направление, поскольку NetFlow v9 экспортирует поле Direction по умолчанию и это говорит нам о том, какой это поток (ingress или egress). В Flexible NetFlow, который базируется на NetFlow v9, поле Direction не экспортируется по умолчание.
Если система анализа NetFlow не умеет толком обращаться с входными и выходными потоками, то можно будет существенно ошибаться в значении выходной утилизации и пропускной способности.
Двунаправленные потокиХотя такие пока мы наблюдали только на Cisco ASA, двунаправленные потоки - вещь интересная. В традиционном NetFlow поток из А в Б как правило создаст второй поток из Б в А. С двунаправленным NetFlow, когда при создании потока А->Б начинается обмен, в кэше роутера записывается только один поток. Затем, когда появляется поток Б->А, в поток A->Б добавляются байты, а вторая запись не создается.