Cisco ISR NetFlow. Выборка трафика для анализа

Итак, допустим, есть в нашей сети (ее DMZ-сегменте) два сервера, собирающих телеметрические данные с электросчетчиков по всему городу. Их IP адреса: 203.0.113.195 и 203.0.113.196. Слушают они входящие запросы по портам 9502/tcp и 9799/tcp.
Стоит задача определить среднестатистический объем трафика, между счетчиками в интернете и этими серверами телеметрии. Зачем? Затем, что организация, которая сопровождает всю телеметрическую систему утверждает, что система расходует столько-то трафика и мы должны платить за него столько-то денег, а мы не уверены в их искренности.

Сначала, для лучшего восприятия, создаем группы:

object-group network TELEMETRY_SERVERS
host 203.0.113.195
host 203.0.113.196

object-group service TELEMETRY_SERVICES
tcp eq 9502
tcp eq 9799

!
object-group service TELEMETRY_SERVICES_SOURCEPORT
tcp source eq 9502
tcp source eq 9799

Теперь создаем ACL, непосредственно определяющий трафик, статистика по которому нам будет интересна:

— ACL для входящего (идущего к серверам от счетчиков) трафика:

ip access-list extended TELEMETRY_IN
permit object-group TELEMETRY_SERVICES any object-group TELEMETRY_SERVERS

— ACL для входящего (идущего к счетчикам от серверов) трафика:

ip access-list extended TELEMETRY_OUT
permit object-group TELEMETRY_SERVICES_SOURCEPORT object-group TELEMETRY_SERVERS any

Все, два ACL, описывающих трафик в обоих направлениях у нас есть. Дальше их надо будет завернуть в C3PL конструкцию, но перед этим создадим сэмплер:

flow-sampler-map TELEMETRY
mode random one-out-of 6

Сэмплер задает класс точности и в данном случае говорит о том, что из шести пакетов мы будем смотреть только на один и усреднять полученные значения. Если поставить вместо шестерки единицу — получим максимальную точность, если таковая требуется.

Все, теперь C3PL.

Создаем class-map для входящего трафика, в котором матчим соответствующий ACL:

class-map match-any TELEMETRY_IN
match access-group name TELEMETRY_IN

Создаем class-map для исходящего трафика, в котором матчим соответствующий ACL:

class-map match-any TELEMETRY_OUT
match access-group name TELEMETRY_OUT

Создаем две policy-map, в которых говорим, что для выбранного трафика нужно использовать сэмплер созданный ранее.
(Policy-mapы имеют такие названия потому, что будут «вешаться» на внутренний, смотрящий в LAN интерфейс)

policy-map INSIDE_OUT
class TELEMETRY_IN
netflow-sampler TELEMETRY

policy-map INSIDE_IN
class TELEMETRY_OUT
netflow-sampler TELEMETRY

Все. Теперь осталось только активировать NetFlow на интерфейсе:

interface GigabitEthernet0/0
service-policy input INSIDE_IN
service-policy output INSIDE_OUT

С этого момента NetFlow активирован и статистика по интересующему трафику собирается и кешируется в памяти роутера. Что-то можно посмотреть используя команды:

show flow-sampler
show ip cache verbose flow
show ip flow export template

Но так не интересно. Хочется чтобы статистика отправлялась на какой-нибудь монитор, например PRTG. Для этого добавим конструкцию, которая заставить роутер экспортировать кэш с собранной статистикой наружу:

ip flow-export source GigabitEthernet0/0
ip flow-export version 9
ip flow-export destination 10.200.4.212 8881

На этом все.


Не забывайте оставлять комментарии, если пост был вам полезен!
Опубликовано в Сети Метки: , ,
Заодно посмотрите мои фоты в моем профиле вконтакте. Любые вопросы по существу статей можете задать там же.
Hostenko — лучший WordPress-хостинг