Configuring NetFlow
Use this chapter to configure NetFlow to characterize IP traffic based on its source, traffic destination, timing, and application information, giving visibility into traffic transiting the virtual switch. This information can be used to assess network availability and performance, assist in meeting regulatory requirements (compliance), and help with troubleshooting.
This chapter includes the following sections:
•Configuration Guidelines and Limitations
•Verifying the NetFlow Configuration
•NetFlow Example Configuration
Information About NetFlow
NetFlow lets you evaluate IP traffic and understand how and where it flows. NetFlow gathers data that can be used in accounting, network monitoring, and network planning.
This section includes the following topics:
•Exporting Flows to the NetFlow Collector Server
What is a Flow
A flow is a one-directional stream of packets that arrives on a source interface (or subinterface), matching a set of criteria. All packets with the same source/destination IP address, source/destination ports, protocol interface and class of service are grouped into a flow and then packets and bytes are tallied. This condenses a large amount of network information into a database called the NetFlow cache.
Figure 11-1 Creating a Flow in the NetFlow Cache
You create a flow by defining the criteria it gathers. Flows are stored in the NetFlow cache.
Flow information tells you the following:
•Source address tells you who is originating the traffic.
•Destination address tells who is receiving the traffic.
•Ports characterize the application using the traffic.
•Class of service examines the priority of the traffic.
•The device interface tells how traffic is being used by the network device.
•Tallied packets and bytes show the amount of traffic.
Flow Record Definition
A flow record defines the information that NetFlow gathers, such as packets in the flow and the types of counters gathered per flow. You can define new flow records or use the pre-defined Cisco Nexus 1000V flow record.
To create a record, see the "Defining a Flow Record" procedure.
The following table describes the criteria defined in a flow record.
Predefined Flow Records
Cisco Nexus 1000V includes the following pre-defined flow records.
•Cisco Nexus 1000V Predefined Flow Record: Netflow-Original
•Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Original-Input
•Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Original-Output
•Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Protocol-Port
Example 11-1 Cisco Nexus 1000V Predefined Flow Record: Netflow-Original
n1000v# show flow record netflow-original
Flow record netflow-original:
Description: Traditional IPv4 input NetFlow with origin ASs
No. of users: 0
Template ID: 0
Fields:
match ipv4 source address
match ipv4 destination address
match ip protocol
match ip tos
match transport source-port
match transport destination-port
match interface input
match interface output
match flow direction
collect routing source as
collect routing destination as
collect routing next-hop address ipv4
collect transport tcp flags
collect counter bytes
collect counter packets
collect timestamp sys-uptime first
collect timestamp sys-uptime last
n1000v#
Note Although the following lines appear in the output of the show flow record command, the commands they are based on are not currently supported in Cisco Nexus 1000V. The use of these commands has no affect on the configuration.
collect routing source as
collect routing destination as
collect routing next-hop address ipv4
Example 11-2 Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Original-Input
n1000v# show flow record netflow ipv4 original-input
Flow record ipv4 original-input:
Description: Traditional IPv4 input NetFlow
No. of users: 0
Template ID: 0
Fields:
match ipv4 source address
match ipv4 destination address
match ip protocol
match ip tos
match transport source-port
match transport destination-port
match interface input
match interface output
match flow direction
collect routing source as
collect routing destination as
collect routing next-hop address ipv4
collect transport tcp flags
collect counter bytes
collect counter packets
collect timestamp sys-uptime first
collect timestamp sys-uptime last
n1000v#
Example 11-3 Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Original-Output
switch# show flow record netflow ipv4 original-output
Flow record ipv4 original-output:
Description: Traditional IPv4 output NetFlow
No. of users: 0
Template ID: 0
Fields:
match ipv4 source address
match ipv4 destination address
match ip protocol
match ip tos
match transport source-port
match transport destination-port
match interface input
match interface output
match flow direction
collect routing source as
collect routing destination as
collect routing next-hop address ipv4
collect transport tcp flags
collect counter bytes
collect counter packets
collect timestamp sys-uptime first
collect timestamp sys-uptime last
switch#
Example 11-4 Cisco Nexus 1000V Predefined Flow Record: Netflow IPv4 Protocol-Port
switch# show flow record netflow ipv4 protocol-port
Flow record ipv4 protocol-port:
Description: Protocol and Ports aggregation scheme
No. of users: 0
Template ID: 0
Fields:
match ip protocol
match transport source-port
match transport destination-port
match interface input
match interface output
match flow direction
collect counter bytes
collect counter packets
collect timestamp sys-uptime first
collect timestamp sys-uptime last
switch#
Accessing NetFlow Data
There are two primary methods used to access NetFlow data:
Command Line Interface (CLI)
To view what is happening in your network now, the CLI can be used. NetFlow CLI is very useful for troubleshooting. To see a list of available show commands, see the "Verifying the NetFlow Configuration" section.
The CLI uses the following tools to capture and export flow records to the Netflow Collector:
Flow Monitor
A flow monitor creates an association between the following NetFlow components:
•a flow record—consisting of matching and collection criteria
•a flow exporter—consisting of the export criteria
This flow monitor association enables a set, consisting of a record and an exporter, to be defined once and re-used many times. Multiple flow monitors can be created for different needs. A flow monitor is applied to a specific interface in a specific direction.
See the "Defining a Flow Monitor" procedure, and "Assigning a Flow Monitor to an Interface" procedure.
Flow Exporter
Use the flow exporter to define where and when the flow records are sent from the cache to the reporting server, called the NetFlow Collector.
An exporter definition includes the following.
•Destination IP address
•Source interface
•UDP port number (where the collector is listening)
•Export format
Note NetFlow export packets use the IP address assigned to the source interface. If the source interface does not have an IP address assigned to it, the exporter will be inactive.
See the "Defining a Flow Exporter" procedure.
Export Formats
Cisco Nexus 1000V supports the NetFlow Version 9 export format.
Note Cisco Nexus 1000V supports UDP as the transport protocol for exporting data to up to two exporters per monitor.
NetFlow Collector
You can export NetFlow from the Cisco Nexus 1000V NetFlow cache to a reporting server called the NetFlow Collector. The NetFlow Collector assembles the exported flows and combines them to produce reports used for traffic and security analysis. NetFlow export, unlike SNMP polling, pushes information periodically to the NetFlow reporting collector. The NetFlow cache is constantly filling with flows. Cisco Nexus 1000V searches the cache for flows that have terminated or expired and exports them to the NetFlow collector server. Flows are terminated when the network communication has ended, that is, when a packet contains the TCP FIN flag.
The following steps implement NetFlow data reporting:
•NetFlow records are configured to define the information that NetFlow gathers.
•Netflow monitor is configured to capture flow records to the NetFlow cache.
•NetFlow export is configured to send flows to the collector.
•Cisco Nexus 1000V searches the NetFlow cache for flows that have terminated and exports them to the NetFlow collector server.
•Flows are bundled together based on space availability in the UDP export packet or based on export timer.
•The NetFlow collector software creates real-time or historical reports from the data.
Exporting Flows to the NetFlow Collector Server
Timers determine when a flow is exported to the NetFlow Collector Server.
A flow is ready for export when one of the following occurs:
•The flow is inactive for a certain time during which no new packets are received for the flow.
•The flow has lived longer than the active timer, for example, a long FTP download.
•A TCP flag indicates the flow is terminated. That is, a FIN or RST flag is present.
•The flow cache is full and some flows must be aged out to make room for new flows.
Figure 11-2 Exporting Flows to the NetFlow Collector Server
What NetFlow Data Looks Like
The following figure shows an example of NetFlow data.
Figure 11-3 NetFlow Cache Example
High Availability
Cisco Nexus 1000V supports stateful restarts for NetFlow. After a reboot or supervisor switchover, Cisco Nexus 1000V applies the running configuration.
Prerequisites for NetFlow
•You must be aware of resource requirements since NetFlow consumes additional memory and CPU resources.
•Memory and CPU resources are provided by the VEM hosting the flow monitor interface. Resources are limited by the number of CPU cores present on the VEM.
Configuration Guidelines and Limitations
NetFlow has the following configuration guidelines and limitations:
•If a source interface is not configured, the NetFlow exporter will remain disabled.
•In Cisco Nexus 1000V, Mgmt0 interface is configured by default as the source interface for an exporter. You can change the source interface if needed.
•Cisco Nexus 1000V includes the following predefined flow records that can be used instead of configuring a new one. For more information, see the "Flow Record Definition" section:
–netflow-original
Cisco Nexus 1000V predefined traditional IPv4 input NetFlow with origin ASs
Note The routing-related fields in this predefined flow record are ignored.
–netflow ipv4 original-input
Cisco Nexus 1000V predefined traditional IPv4 input NetFlow
–netflow ipv4 original-output
Cisco Nexus 1000V predefined traditional IPv4 output NetFlow
–netflow ipv4 protocol-port
Cisco Nexus 1000V predefined protocol and ports aggregation scheme
•Up to 256 NetFlow interfaces are allowed per DVS.
•Up to 32 NetFlow interfaces are allowed per host
•A maximum of one flow monitor per interface per direction is allowed.
•Up to 8 flow monitors are allowed per VEM.
•Up to 2 flow exporters are permitted per monitor.
•Up to 32 NetFlow Policies are allowed per DVS.
•Up to 8 NetFlow Policies are allowed per host.
Configuring NetFlow
The following flow chart is designed to guide you through the netflow configuration process. After completing each procedure, return to the flow chart to make sure you complete all required procedures in the correct sequence.
Flow Chart: Configuring NetFlow
Defining a Flow Record
Use this procedure to create a flow record.
Note Optionally, you can use the Cisco Nexus 1000V pre-defined record shown in the "Flow Record Definition" section. See the "Defining a Flow Monitor" section to apply a pre-defined record to a flow monitor.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
•You know which of the options you want this flow record to match.
•You know which options you want this flow record to collect.
For more information, see the"Flow Record Definition" section .
Note Although the following lines appear in the output of the show flow record command, the commands they are based on are not currently supported in Cisco Nexus 1000V. The use of these commands has no affect on the configuration.
collect routing source as
collect routing destination as
collect routing next-hop address ipv4
SUMMARY STEPS
1. config t
2. flow record name
3. description string
4. match {ip {protocol | tos} | ipv4 {destination address | source address} | transport {destination-port | source-port}}
5. collect {counter {bytes [long] | packets [long]} | timestamp sys-uptime | transport tcp flags}
6. show flow record [name]
7. copy running-config startup-config
DETAILED STEPS
The following is an example of creating a flow record:
n1000v# config t
n1000v(config)# flow record RecordTest
n1000v(config-flow-record)# description Ipv4flow
n1000v(config-flow-record)# match ipv4 destination address
n1000v(config-flow-record)# collect counter packets
n1000v(config-flow-record)# show flow record RecordTest
Flow record RecordTest:
Description: Ipv4flow
No. of users: 0
Template ID: 0
Fields:
match ipv4 destination address
match interface input
match interface output
match flow direction
collect counter packets
n1000v(config-flow-record)#
Defining a Flow Exporter
Use this procedure to create a Flow Exporter defining where and how Flow Records are exported to the NetFlow Collector Server.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
•A maximum of two flow exporters per monitor are permitted.
•You know destination IP address of the NetFlow Collector Server.
•You know the source interface that Flow Records are sent from.
•You know the transport UDP that the Collector is listening on.
•Export format version 9 is the version supported.
SUMMARY STEPS
1. config t
2. flow exporter name
3. description string
4. destination {ipv4-address | ipv6-address} use-vrf {vrf-name}
5. dscp value
6. source mgmt 0
7. transport udp {port-number}
8. version 9
9. option {exporter-stats | interface-table} timeout seconds
10. template data timeout seconds
11. show flow exporter [name]
12. copy running-config startup-config
DETAILED STEPS
The following is an example of creating a flow exporter:
n1000v(config)# flow exporter ExportTest
n1000v(config-flow-exporter)# description ExportHamilton
n1000v(config-flow-exporter)# destination 192.0.2.1
n1000v(config-flow-exporter)# dscp 2
n1000v(config-flow-exporter)# source mgmt 0
n1000v(config-flow-exporter)# transport udp 200
n1000v(config-flow-exporter)# version 9
n1000v(config-flow-exporter-version-9)# option exporter-stats timeout 1200
n1000v(config-flow-exporter-version-9)# template data timeout 1200
n1000v(config-flow-exporter-version-9)# show flow exporter ExportTest
Flow exporter ExportTest:
Description: ExportHamilton
Destination: 192.0.2.1
VRF: default (1)
Destination UDP Port 200
Source Interface Mgmt0
DSCP 2
Export Version 9
Exporter-stats timeout 1200 seconds
Data template timeout 1200 seconds
Exporter Statistics
Number of Flow Records Exported 0
Number of Templates Exported 0
Number of Export Packets Sent 0
Number of Export Bytes Sent 0
Number of Destination Unreachable Events 0
Number of No Buffer Events 0
Number of Packets Dropped (No Route to Host) 0
Number of Packets Dropped (other) 0
Number of Packets Dropped (LC to RP Error) 0
Number of Packets Dropped (Output Drops) 1
Time statistics were last cleared: Never
n1000v(config-flow-exporter-version-9)#
Defining a Flow Monitor
Use this procedure to create a Flow Monitor and associate a Flow Record and a Flow Exporter to it.
BEFORE YOU BEGIN
•A maximum of one flow monitor per interface per direction is permitted.
•You know the name of an existing Flow Exporter to associate with this flow monitor.
•You know the name of an existing Flow Record to associate with this flow monitor. You can use either a flow record you previously created, or one of the following Cisco Nexus 1000V predefined flow records:
–netflow-original
–netflow ipv4 original-input
–netflow ipv4 original-output
–netflow ipv4 protocol-port
For more information about Flow Records, see the "Flow Record Definition" section
SUMMARY STEPS
1. config t
2. flow monitor name
3. description string
4. exporter name
5. record name
6. timeout {active value | inactive value}
7. cache {size value}
8. show flow monitor [name]
9. copy running-config startup-config
DETAILED STEPS
The following is an example of creating a flow exporter:
n1000v(config)# flow monitor MonitorTest
n1000v(config-flow-monitor)# description Ipv4Monitor
n1000v(config-flow-monitor)# exporter ExportTest
n1000v(config-flow-monitor)# record RecordTest
n1000v(config-flow-monitor)# cache size 15000
n1000v(config-flow-monitor)# timeout inactive 600
n1000v(config-flow-monitor)# show flow monitor MonitorTest
Flow Monitor monitortest:
Use count: 0
Inactive timeout: 600
Active timeout: 1800
Cache Size: 15000
n1000v(config-flow-monitor)#
Assigning a Flow Monitor to an Interface
Use this procedure to assign a flow monitor to an interface.
BEFORE YOU BEGIN
•You know the name of the flow monitor you want to use for the interface.
•You know the interface type and its number.
SUMMARY STEPS
1. config t
2. interface interface-type interface-number
3. ip flow monitor name {input | output}
4. show flow interface-type interface-number
5. copy running-config startup-config
DETAILED STEPS
The following is an example showing how to assign a flow monitor to an interface:
n1000v(config)# interface veth 2
n1000v(config-if)# ip flow monitor MonitorTest output
n1000v(config-if)# show flow interface veth 2
Interface veth 2:
Monitor: MonitorTest
Direction: Output
n1000v(config-if)#
NetFlow Example Configuration
Example 11-5 Flow monitor using a new flow record and applying it to an interface
n1000v# config t
n1000v(config)# flow record RecordTest
n1000v(config-flow-record)# description Ipv4flow
n1000v(config-flow-record)# match ipv4 destination address
n1000v(config-flow-record)# collect counter packets
n1000v(config-flow-record)# exit
n1000v(config)# flow exporter ExportTest
n1000v(config-flow-exporter)# description ExportHamilton
n1000v(config-flow-exporter)# destination 192.0.2.1
n1000v(config-flow-exporter)# dscp 2
n1000v(config-flow-exporter)# source mgmt 0
n1000v(config-flow-exporter)# transport udp 200
n1000v(config-flow-exporter)# version 9
n1000v(config-flow-exporter-version-9)# option exporter-stats timeout 1200
n1000v(config-flow-exporter-version-9)# template data timeout 1200
n1000v(config-flow-exporter-version-9)# exit
n1000v(config-flow-exporter)# exit
n1000v(config)# flow monitor MonitorTest
n1000v(config-flow-monitor)# description Ipv4Monitor
n1000v(config-flow-monitor)# exporter ExportTest
n1000v(config-flow-monitor)# record RecordTest
n1000v(config-flow-monitor)# exit
n1000v(config)# interface veth 2
n1000v(config-if)# ip flow monitor MonitorTest output
n1000v(config-if)# show flow interface veth 2
Interface veth 2:
Monitor: MonitorTest
Direction: Output
n1000v(config-if)#
Example 11-6 Flow monitor using a pre-defined record and applying it to an interface
n1000v# config t
n1000v(config)# flow exporter ExportTest
n1000v(config-flow-exporter)# description ExportHamilton
n1000v(config-flow-exporter)# destination 192.0.2.1
n1000v(config-flow-exporter)# dscp 2
n1000v(config-flow-exporter)# source mgmt 0
n1000v(config-flow-exporter)# transport udp 200
n1000v(config-flow-exporter)# version 9
n1000v(config-flow-exporter-version-9)# option exporter-stats timeout 1200
n1000v(config-flow-exporter-version-9)# template data timeout 1200
n1000v(config-flow-exporter-version-9)# exit
n1000v(config-flow-exporter)# exit
n1000v(config)# flow monitor MonitorTest
n1000v(config-flow-monitor)# description Ipv4Monitor
n1000v(config-flow-monitor)# exporter ExportTest
n1000v(config-flow-monitor)# record netflow-original
n1000v(config-flow-monitor)# exit
n1000v(config)# interface veth 2
n1000v(config-if)# ip flow monitor MonitorTest output
n1000v(config-if)# show flow interface veth 2
Interface veth 2:
Monitor: MonitorTest
Direction: Output
n1000v(config-if)#
Verifying the NetFlow Configuration
To verify the NetFlow configuration, use the commands in Table 11-1:
|
|
---|---|
show flow exporter [name] |
Displays information about NetFlow flow exporter maps. See Example 11-7. |
show flow interface [interface-type number] |
Displays information about NetFlow interfaces. See Example 11-8. |
show flow monitor [name [cache module number |statistics module number]] |
Displays information about NetFlow flow monitors. Note The show flow monitor cache command differs from the show flow monitor statistics command in that the cache command also displays cache entries . Since each processor has its own cache, all output of these commands is based on the number of processors on the server (also called module or host). When more than one processor is involved in processing packets for a single flow, then the same flow appears for each processor. See the following examples: •Show flow monitor cache module |
show flow record [name] |
Displays information about NetFlow flow records. |
Example 11-7 Show flow exporter
n1000v(config-flow-exporter-version-9)# show flow exporter ExportTest
Flow exporter ExportTest:
Description: ExportHamilton
Destination: 192.0.2.1
VRF: default (1)
Destination UDP Port 200
Source Interface 2
DSCP 2
Export Version 9
Exporter-stats timeout 1200 seconds
Data template timeout 1200 seconds
Exporter Statistics
Number of Flow Records Exported 0
Number of Templates Exported 0
Number of Export Packets Sent 0
Number of Export Bytes Sent 0
Number of Destination Unreachable Events 0
Number of No Buffer Events 0
Number of Packets Dropped (No Route to Host) 0
Number of Packets Dropped (other) 0
Number of Packets Dropped (LC to RP Error) 0
Number of Packets Dropped (Output Drops) 1
Time statistics were last cleared: Never
n1000v(config-flow-exporter-version-9)#
Example 11-8 Show flow interface
n1000v(config-if)# show flow interface VEth2
Interface veth2:
Monitor: MonitorTest
Direction: Output
n1000v(config-if)#
Example 11-9 Show flow monitor
n1000v(config)# show flow monitor
Flow Monitor MonitorTest:
Description: Ipv4Monitor
Use count: 1
Flow Record: test
Flow Exporter: ExportTest
Inactive timeout: 15
Active timeout: 1800
Cache Size: 15000
Flow Monitor MonitorIpv4:
Description: exit
Use count: 70
Flow Record: RecordTest
Flow Exporter: ExportIpv4
Inactive timeout: 15
Active timeout: 1800
Cache Size: 4096
n1000v(config)#
Example 11-10 Show flow monitor cache module
n1000v# show flow monitor test_mon cache module 5
Cache type: Normal
Cache size (per-processor): 4096
High Watermark: 2
Flows added: 102
Flows aged: 099
- Active timeout 0
- Inactive timeout 099
- Event aged 0
- Watermark aged 0
- Emergency aged 0
- Permanent 0
- Immediate aged 0
- Fast aged 0
Cache entries on Processor0
- Active Flows: 2
- Free Flows: 4094
IPV4 SRC ADDR IPV4 DST ADDR IP PROT INTF INPUT INTF OUTPUT FLOW DIRN
=============== =============== ======= ==================== ==================== =========
0.0.0.0 255.255.255.255 17 Veth1 Input
7.192.192.10 7.192.192.2 1 Veth1 Eth5/2 Input
Cache entries on Processor1
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor2
- Active Flows: 1
- Free Flows: 4095
IPV4 SRC ADDR IPV4 DST ADDR IP PROT INTF INPUT INTF OUTPUT FLOW DIRN
=============== =============== ======= ==================== ==================== =========
7.192.192.10 7.192.192.1 1 Veth1 Eth5/2 Input
Cache entries on Processor3
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor4
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor5
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor6
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor7
- Active Flows: 0
- Free Flows: 4096
Example 11-11 Show flow monitor statistics module
NX-1000v# show flow monitor test_mon statistics module 5
Cache type: Normal
Cache size (per-processor): 4096
High Watermark: 2
Flows added: 105
Flows aged: 103
- Active timeout 0
- Inactive timeout 103
- Event aged 0
- Watermark aged 0
- Emergency aged 0
- Permanent 0
- Immediate aged 0
- Fast aged 0
Cache entries on Processor0
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor1
- Active Flows: 1
- Free Flows: 4095
Cache entries on Processor2
- Active Flows: 1
- Free Flows: 4095
Cache entries on Processor3
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor4
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor5
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor6
- Active Flows: 0
- Free Flows: 4096
Cache entries on Processor7
- Active Flows: 0
- Free Flows: 4096
Example 11-12 Show flow record
n1000v(config-flow-record)# show flow record RecordTest
Flow record RecordTest:
Description: Ipv4flow
No. of users: 0
Template ID: 0
Fields:
match ipv4 destination address
match interface input
match interface output
match flow direction
collect counter packets
n1000v(config-flow-record)#
Default Settings
Table 11-2 lists the default settings for NetFlow parameters.
Additional References
For additional information related to implementing NetFlow, see the following sections:
Related Documents
|
|
---|---|
Cisco NetFlow Overview |
http://cisco.com/en/US/products/ps6601/products_ios_protocol_group_home.html |
Standards
|
|
---|---|
No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature. |
— |
Feature History for NetFlow
This section provides the NetFlow feature release history.
|
|
|
---|---|---|
NetFlow |
4.0(4)SV1(1) |
This feature was introduced. |