# Monitoreo de Netflow con NfSen - Gestión de Redes

# Introducción

## Metas

- Aprender a exportar flujos desde un enrutador Cisco

## Notas

- Los comandos precedidos por el signo de pesos “$”, deben ser ejecutados como un usuario general - y no como superusuario (root).
- Los comandos precedidos por el signo de número “#”, deben ser ejecutados por el superusuario (root).
- Los comandos precedidos por lineas de comando más específicas (Ej. “rtrX>” or “mysql>”) deben ser ejecutados en equipos remotos, o dentro de otras aplicaciones.
- Si la línea de comandos termina con una barra invertida “\”, quiere decir que el comando continua en la próxima línea y todas líneas deben ser tratadas como un comando de una sola línea.
- Referencias a “Y”, representan su número de grupo.

# Exportar flujos desde bdr1-campusY

Configurará su enrutador para que exporte datos de flujos hacia el svr1 de su grupo.

    $ ssh campusY@bdr1-campusY.ws.nsrc.org
    bdr1-campusY> enable

y ahora haga lo siguiente:

    bdr1-campusY# configure terminal
    bdr1-campusY(config)#

    flow exporter EXPORTER-1
     description Export to srv1-campusY
     destination 100.68.Y.130
     transport udp 9996
     template data timeout 60

    flow monitor FLOW-MONITOR-V4
     exporter EXPORTER-1
     record netflow ipv4 original-input
     cache timeout active 300

    interface GigabitEthernet 0/0
     ip flow monitor FLOW-MONITOR-V4 input
     ip flow monitor FLOW-MONITOR-V4 output

    snmp-server ifindex persist

Ya que no se ha especificado una versión del protocolo para los registros de flujos exportados, el enrutador utiliza el valor por defecto que es Netflow v9.

Los paquetes de flujos Netflow v9 no pueden ser decodificados por el colector hasta que se haya recibido un paquete de plantilla para los paquetes. El comando `template data timeout 60` le dice al enrutador que envíe la plantilla cada 60 segundos, para acelerar el proceso durante el labooratorio. (En producción se puede utilizar un valor de 300 seguros sin afectar la operación del sistema).

El comando `cache timeout active 300` divide los flujos con tiempo de vida largo en fragmentos de 5 minutos. Si lo dejas con el valor por defecto de 30 minutos, las gráficas de tráfico tendrán picos.

El comando `snmp-server ifindex persist` habilita globalmente la persistencia del indice de las interfaces. Esto asegura que los valores ifIndex se conserven durante el reinicio del enrutador - o cuando se añaden o eliminan interfaces a los dispositivos de red.

> Es posible exportar flujos hacia varios destinos; puede crear EXPORTER-2, EXPORTER-3 etc y listarlos bajo la sección FLOW-MONITOR-V4 en la configuración.

> Si se quiere monitorear lo flujos IPv6 tendrá que crear un nuevo monitor de flujos para IPv6 y asociarlo a la interfaz y los exportadores existentes.

>     flow monitor FLOW-MONITOR-V6
>      exporter EXPORTER-1
>      record netflow ipv6 original-input
>      cache timeout active 300
>     interface GigabitEthernet 0/0
>      ipv6 flow monitor FLOW-MONITOR-V6 input
>      ipv6 flow monitor FLOW-MONITOR-V6 output

Ahora verificaremos lo que hemos hecho:

En primer lugar, salir de la sesión de configuración:

    bdr1-campusY(config)# end

Y corra los siguientes comandos:

    bdr1-campusY# show flow exporter EXPORTER-1
    bdr1-campusY# show flow monitor FLOW-MONITOR-V4

Es posible ver los flujos activos en el enrutador:

    bdr1-campusY# show flow monitor FLOW-MONITOR-V4 cache format table

Pero en un enrutador con mucha carga habrá miles de flujos individuales, y por lo tanto esto no es tan efectivo. Presione ‘q’ si quiere salir de los resultados del comando.

En su lugar, se pueden agrupar los flujos para que pueda ver los dispositivos con mayor número de flujos “top talkers” (desde el punto de vista de tráfico enter origenes y destinos).

    bdr1-campusY# show flow monitor FLOW-MONITOR-V4 cache aggregate ipv4 source address ipv4 destination address sort counter bytes top 20

Si todo parece estar bien, entonces escribir la configuración en ejecución (running-config) a la RAM no volátil (la startup-config):

    bdr1-campusY# wr mem

Y ahora puede salir del enrutador:

    bdr1-campusY# exit

Si queremos verificar que los paquetes de flujos están llegando hacia su VM, puede utilizar el comando tcpdump:

Elija a uno de los miembros de su grupo para que haga los siguientes pasos en su servidor srv1-campusY.ws.nsrc.org:

    usuario: sysadm
    servidor: srv1-campusY.ws.nsrc.org

Una vez conectado instale y ejecute tcpdump:

    $ sudo apt install tcpdump
    $ sudo tcpdump -i br0 -nn -Tcnfp udp port 9996

Espere unos segundos y deberá ver paquetes llegando a la máquina. Estos son paquetes UDP que contienes los registros de flujos individuales. Despues de ver algunos paquetes puede presionar -C para salir de tcpdump.

Debería ver algo parecido a:

    sysadm@db:~$ sudo tcpdump -i br0 -nn -Tcnfp port 9996
    [sudo] password for sysadm:
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:35:10.300755 IP 100.68.0.22.63721 > 100.68.6.130.9996: NetFlow v9
    15:35:21.327925 IP 100.68.0.22.63721 > 100.68.6.130.9996: NetFlow v9
    15:35:24.303433 IP 100.68.0.22.63721 > 100.68.6.130.9996: NetFlow v9
    ^C
    3 packets captured
    3 packets received by filter
    0 packets dropped by kernel

Una vez haya confirmado que los registros están llegando, puede salir de ambas máquonas:

    $ exit

OPCIONALMENTE: puede usar tshark (la versión de texto de wireshark), que le permite descodificar paquetes de flujos con Netflow v9:

    $ sudo apt  install tshark
    $ sudo tshark -i br0 -nnV -s0 -d udp.port==9996,cflow udp port 9996

Final de los ejercicios.