Configuring NetFlow

A NetFlow flow is a unidirectional sequence of packets that arrive on a single interface (or subinterface), and have the same values for key fields.

NetFlow is useful for the following:

  • Accounting/Billing—NetFlow data provides fine grained metering for highly flexible and detailed resource utilization accounting.

  • Network Planning and Analysis—NetFlow data provides key information for strategic network planning.

  • Network Monitoring—NetFlow data enables near real-time network monitoring capabilities.

Feature History for Configuring NetFlow

Release

Modification

Release 3.9.1

This feature was introduced.

Release 4.0.0

IPv6 Sampled NetFlow feature was introduced.

Release 4.2.0

Destination-based Netflow Accounting feature was introduced.

Release 5.2.0

The VRF table was added:

Options Template Overview

Release 6.0.1

Flow Filter and IPFIX features were introduced.

Release 6.1.2

Enhancement to the Netflow Records to Capture BGP IPv6 Next-hop feature was introduced.

This module includes these sections:

Prerequisites for Configuring NetFlow

To perform these configuration tasks, your Cisco IOS XR software system administrator must assign you to a user group associated with a task group that includes the corresponding command task IDs. If you need assistance with your task group assignment, contact your system administrator.

To configure NetFlow, for certain cards, you must first set the feature profile. You must set it to the default profile because the L2 feature profile does not support NetFlow.

The Cisco ASR 9000 Ethernet Line Card is a card for which you must set the feature profile as a prerequisite to configuring NetFlow. This prerequisite is not applicable for Cisco ASR 9000 Enhanced Ethernet Line Card and Cisco ASR 9000 High Density 100GE Ethernet Line Cards.

For more information on configuring feature profiles, refer Information About Feature Profiles section of the System Management Configuration Guide for Cisco ASR 9000 Series Routers.

Restrictions for Configuring NetFlow

Consider these restrictions when configuring NetFlow in Cisco IOS XR software:

  • A source interface must always be configured. If you do not configure a source interface, the exporter will remain in a disabled state.

  • The export format Version 9 and IPFIX is supported.

  • A valid record map name must always be configured for every flow monitor map.

  • Only Sampled NetFlow is supported in the Satellite Gigabit Ethernet network interface. Destination-based NetFlow Accounting (DBA) is not supported on this interface.

  • The CPU policer rate is equally shared among all the Network Processors (NPs) of a Line Card (LC) even if a single NP of the LC owns at least one interface from the Pseudowire Headend (PWHE) interface list.

  • When Netflow is applied on PWHE interfaces, the ing_lnks and egr_lnks fields in the show flow platform nfea policer np command are not updated.

    This issue is observed in the third and fourth generation of ASR 9000 Enhanced Ethernet line cards.


    Note


    The ing_lnks field indicates that the Netflow is configured in ingress direction for a particular interface corresponding to the NP. Similarly, eng_lnks indicates that the Netflow is configured in egress direction.


  • The input interface of a router is updated with a nonzero value for all the egress ICMP replies.

  • When the rewrite-pop option is enabled, the fourth and fifth generation of the Cisco ASR 9000 line cards do not support capturing of the VLAN information on an L2 interface.

  • IPFIX supports L2, L3, MPLS packets.

  • IPFIX is only supported on third, fourth, and fifth generation of ASR 9000 line cards.

  • BGP NextHop field in is not supported on the third generation of ASR 9000 line cards, which uses MPLS-IPv4 as a record type with version as IPFIX.

  • IPFIX is supported only in ingress direction.

  • PW-Ether interface doesn't support IPv6/MPLS NetFlow sampling.


Tip


Don’t use the management interface to export the NetFlow packets.


Supported Record Types

Record types are also known as flow records. Flow record is created by inspecting packet headers and by adding a description of the packet information to the NetFlow cache. Cisco ASR9000 Series Routers support the following record types:

Table 1. Supported Record Types

Record Type

Supported On

IPv4

V9

IPv6

V9

MPLS (IPv4/IPv6/IPv4-IPv6)

V9

IPv4

IPFIX

IPv6

IPFIX

Datalinkframesection

IPFIX

Datalink-record

IPFIX

MPLS (IPv4/IPv6/IPv4-IPv6)

IPFIX

Information About Configuring NetFlow

NetFlow Overview

A flow is exported as part of a NetFlow export User Datagram Protocol (UDP) datagram under these circumstances:

  • The flow has been inactive or active for too long.

  • The flow cache is getting full.

  • One of the counters (packets and or bytes) has wrapped.

  • The user forces the flow to export.

NetFlow export UDP datagrams are sent to an external flow collector device that provides NetFlow export data filtering and aggregation. The export of data consists of expired flows and control information.

The NetFlow infrastructure is based on the configuration and use of these maps:

  • Exporter map

  • Monitor map

  • Sampler map

These maps are described in the sections that follow.

Exporter Map Overview

An exporter map contains user network specification and transport layer details for the NetFlow export packet. The flow exporter-map command allows you to configure collector and version attributes. You can configure these collector information:

  • Export destination IP address

  • DSCP value for export packet

  • Source interface

  • UDP port number (This is where the collector is listening for NetFlow packets.)

  • Transport protocol for export packets


Note


In Cisco IOS XR Software, UDP is the only supported transport protocol for export packets.



Note


NetFlow export packets use the IP address that is assigned to the source interface. If the source interface does not have an IP address assigned to it, the exporter will be inactive.


You can also configure these export version attributes:

  • Template timeout

  • Template data timeout

  • Template options timeout

  • Interface table timeout

  • Sampler table timeout


Note


A single flow monitor map can support up to eight exporters.


Monitor Map Overview

A monitor map contains name references to the flow record map and flow exporter map. Monitor maps are applied to an interface. You can configure these monitor map attributes:

  • Number of entries in the flow cache

  • Type of cache (permanent or normal); permanent caches entries aren’t removed from the cache unless they are explicitly cleared by the user.

  • Active flow timeout

  • Inactive flow timeout

  • Update timeout

  • Default timeouts

  • Record type of packets sampled and collected


    Note


    The record name specifies the type of packets that NetFlow samples as they pass through the router. Currently, MPLS, IPv4, MAP-T and IPv6 packet sampling are supported.



Note


The active flow and inactive flow timeouts are associated with a normal cache type. The update timeout is associated with the permanent cache type.


Sampler Map Overview

The sampler map specifies the rate at which packets (one out of n packets) are sampled. The sampler map configuration is typically geared for high-speed interfaces to optimize CPU utilization. To achieve this, start by setting the sampling rate after evaluating your network parameters such as traffic rate, number of total flows, cache size, active and inactive timers.

Sampling rate per interface = (Average number of packet per NP / Policer rate per NP) * (Total number of directions with NetFlow configuration)

  • The maximum supported sampling rate is 1:1, where every packet is processed.

  • The minimum supported sampling rate is 1:65,535, indicating that only one out of every 65,535 packets is processed.

  • Typical sampling rates are 1:8,000 or 1:16,000. The ideal sampling rate depends on the packets per second on sampling-enabled interfaces, total packet flows, and the rate of flows you want to monitor.

Consider these points before applying sampler map:

  • Remove the existing Netflow configurations before applying a new sampler map on an already existing netflow interface configuration.

  • Sub-interfaces and physical interfaces under a port must have the same sampler map configuration.


Note


To check the NetFlow policer rate programmed on an NP use the, show flow platform nfea policer npnp-number location node-id command.

To find the NP number of the NetFlow interface, use the show controllers np ports all command.


The Policer rate is based on the network processor (NP). If netflow is applied on 1 NP, the aggregated maximum flow packet processing rate per line card (LC) is 100k flow packets per second for the ASR 9000 Ethernet LC and 200k flow packets per second for the ASR 9000 Enhanced Ethernet LC (irrespective of the direction and the number of interface netflow that is applied in that NP). However, depending on the Netflow monitor configuration distribution among NPs in an LC, policing of flow packet can take effect with an aggregated rate that is less than the aggregated maximum flow packet processing rate. For example for the ASR 9000 Ethernet LC, if Netflow is applied to 1 interface per NP in a 4 NP LC, then the Policer rate per NP is 25K packets per second.


Note


On Cisco ASR 9000 High Density 100GE Ethernet line cards, when the configured sampling rate is one of the following values, the sampling behavior is random with a deviation of more than 10 percent:

  • 2048

  • 4096

  • 8192

  • 16384

  • 32768

  • 65535


Restriction

The Netflow sampling is random on the fourth generation of ASR 9000 Series Ethernet line cards. You can configure a sampling rate. However, during a sampling period, the number of packets sampled may vary from the configured value.

In-line Modification of Netflow Configuration

The In-line modification of Netflow configuration enables to add or remove flow attributes of a flow entity that is already applied to an interface.

A flow entity can be a monitor map, exporter map or a sampler map.

Netflow does not support in-line modification of all its configuration items. This table lists flow entries and flow attributes that are in-line modifiable.


Note


In-line modification of flow items clears the cache counters. As a result there could be flow accounting mismatch.



Note


The In-line modification of Netflow configuration is supported on Cisco IOS XR 64 bit software.


Table 2. In-line Modifiable Flow Entities and Flow Attributes

Flow Entity

Flow Attribute

Monitor map

Note

 

Any modification to the cache attributes results in resetting of the cache counters. The cache flows are dropped not exported.

cache timeout active seconds

cache timeout inactive seconds

cache timeout update seconds

cache timeout rate-limit seconds

exporter

cache entries

cache permanent

option outphysint | bgstrings

Exporter Map

Note

 

Any modification to an exporter map results in resetting of the exporter counter.

source <source interface>

destination <destinaiton address>

dscp <dscp_value>

version v9 | ipfix

Sampler Map

sampling interval

Restriction

  • In-line modification of the record ipv4 flow attribute is not supported.

Use Case

Consider a netflow configuration as shown below applied on Bundle interface.

RP/0/RP1/CPU0:router#show running-config interface bundle-ether 8888
Thu Oct 26 14:17:17.459 UTC
interface Bundle-Ether8888
ipv4 address 192.168.108.1 255.255.255.252
 ipv6 address 192:168:108::1/126
flow ipv6 monitor MONITOR-8k sampler SAMPLER-8k ingress
!
RP/0/RP1/CPU0:router#show running-config flow monitor-map MONITOR-8k
Thu Oct 26 14:17:32.581 UTC
flow monitor-map MONITOR-8k
 record ipv6
 exporter NF-2
 cache timeout update 30
!

The Netflow configuration includes:

  • flow monitor map—MONITOR-8k: The flow monitor map do not have cache entries configured. Cache entries are the number of entries in the flow cache.

  • exporter map—NF-2

  • sampler map—SAMPLE-8k

The cache entries attribute is in-line modifiable. Let us configure the cache entries, while the flow monitor map is in use:


RP/0/RP1/CPU0:router#config
RP/0/RP1/CPU0:router(config)#flow monitor-map MONITOR-8k
RP/0/RP1/CPU0:router(config-fmm)#cache entries 8000
RP/0/RP1/CPU0:router(config-fmm)#commit
Thu Oct 26 14:18:24.625 UTC
RP/0/RP1/CPU0:Oct 26 14:18:24.879 : config[67366]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user '<username>'. 
Use 'show configuration commit changes 1000000556' to view the changes.  /*configuration commit is successfull. */

The above configuration changes are committed successfully.

Verification

To verify if the monitor map has chache entries of 8000 configured, use the show flow monitor-map command for MONITOR-8k map:


RP/0/RSP0/CPU0:router# show flow monitor-map MONITOR-8k

Flow Monitor Map : MONITOR-8k
-------------------------------------------------
Id:                1
RecordMapName:     ipv6
ExportMapName:     NF-2
CacheAgingMode:    Permanent
CacheMaxEntries:   8000
CacheActiveTout:   N/A
CacheInactiveTout: N/A
CacheUpdateTout:   30 seconds

Options Template Overview

NetFlow version 9 is a template-based version. The templates provide an extensible design to the record format. This feature allows enhancements to NetFlow services without requiring concurrent changes to the basic flow-record format. An options template is a special type of template record that is used to communicate the format of data related to the NetFlow process. Rather than supplying information about IP flows, the options are used to supply metadata about the NetFlow process itself. The sampler options template and the interface options template are different forms of options templates. These two tables are exported by the NetFlow process. From release 5.2.0, the NetFlow process will also export the VRF table.

Sampler Table

The sampler options template consists of sampler tables. Similarly, the interface option templates consist of interface tables. By enabling the options for sampler table and interface table, it becomes easier for the collector to determine the information on data flow.

The sampler table consists of information on the active samplers. It is used by the collector to estimate the sampling rate for each data flow. The sampler table consists of the following information for each sampler:
Field Name Value

FlowSamplerID

This ID is assigned to the sampler. It is used by the collector to retrieve information about the sampler for a data flow record.

FlowSamplerMode

This field indicates the mode in which the sampling has been performed. The default value for this field is 1 for deterministic sampling and 2 for random sampling.

FlowSamplerRandomInterval

This field indicates the rate at which the sampling is performed.

SamplerName

This field indicates the name of the sampler.

Interface Table

The interface table consists of information on interfaces that are being monitored for data flow. By using this information, the collector determines the names of interfaces associated with the data flow. The interface table consists of the following information:

Field Name Value

ingressInterface

This field indicates the SNMP index assigned to the interface. By matching this value to the Ingress interface and the Egress Interface in the data flow record, the collector is able to retrieve the name of the interface.

interfaceDescription

This field indicates the name of the interface.

VRF Table

The VRF table consists of mapping of VRF IDs to the VRF names. By using this information, the collector determines the name of the required VRF. The VRF table consists of the following information:

Field Name Value

ingressVRFID

The identifier of the VRF with the name in the VRF-Name field.

VRF-Name

The VRF name which has the VRFID value ingressVRFID. The value "default" indicates that the interface is not assigned explicitly to a VRF.

The data records contain ingressVRFID and egressVRFID fields as extra fields in each record. The values of these fields are used to lookup the VRF Table to find the VRF names. A value 0 in these fields indicates that the VRF is unknown.

The VRF table is exported at intervals specified by the optional timeout keyword that can be configured manually. The default value is 1800 seconds.

NetFlow Configuration Submodes

In Cisco IOS XR Software, NetFlow map configuration takes place in map-specific submodes. Cisco IOS XR Software supports these NetFlow map configuration submodes:


Note


The Cisco IOS XR Software allows you to issue most commands available under submodes as one single command string from global configuration mode. For example, you can issue the record ipv4 command from the flow monitor map configuration submode as follows:



RP/0/RSP0/CPU0:router(config)# flow monitor-map fmm
RP/0/RSP0/CPU0:router(config-fmm)# record ipv4

Alternatively, you can issue the same command from global configuration mode, as shown in the following example:


RP/0/RSP0/CPU0:router(config)# flow monitor-map fmm record ipv4

Flow Exporter Map Configuration Submode

Table 3. Feature History Table

Feature Name

Release Information

Description

sFlow Agent Address Assignment

Release 7.10.1

You can now monitor traffic from a specific source by configuring the sFlow agent ID with the specific IPv4 or IPv6 address.

Upon configuration, you can determine the source of the sFlow data.

Earlier, by default, the sFlow agent ID had the source address of the sFlow export packet.

The feature introduces these changes:

CLI

New Command:

Modified Command:

YANG Data Model

When you issue the flow exporter-map fem-name command in global configuration mode, the command-line interface (CLI) prompt changes to “config-fem,” indicating that you have entered the flow exporter map configuration submode.

In this sample output, the question mark (?) online help function displays all the commands available under the flow exporter map configuration submode:


RP/0/RSP0/CPU0:router(config)# flow exporter-map fem

RP/0/RSP0/CPU0:router(config-fem)# ? 

clear        Clear the uncommitted configuration
clear        Clear the configuration
commit       Commit the configuration changes to running
describe     Describe a command without taking real actions
destination  Export destination configuration
do           Run an exec command
dscp         Specify DSCP value for export packets
exit         Exit from this submode
no           Negate a command or set its defaults
pwd          Commands used to reach current submode
root         Exit to the global configuration mode
router-id    router-id or agent-id configuration
show         Show contents of configuration
source       Source interface
transport    Specify the transport protocol for export packets
version      Specify export version parameters

Note


If you enter the version command, you enter the flow exporter map version configuration submode.



Note


A single flow monitor map can support up to eight exporters.


Flow Exporter Map Version Configuration Submode

When you issue the version v9 command in the flow exporter map configuration submode, the CLI prompt changes to “config-fem-ver,” indicating that you have entered the flow exporter map version configuration submode.

In this sample output, the question mark (?) online help function displays all the commands available under the flow exporter map version configuration submode:


RP/0/RSP0/CPU0:router(config-fem)# version v9

RP/0/RSP0/CPU0:router(config-fem-ver)# ?

commit    Commit the configuration changes to running
describe  Describe a command without taking real actions
do        Run an exec command
exit      Exit from this submode
no        Negate a command or set its defaults
options   Specify export of options template
show      Show contents of configuration
template  Specify template export parameters

Flow Monitor Map Configuration Submode

When you issue the flow monitor-map map_name command in global configuration mode, the CLI prompt changes to “config-fmm,” indicating that you have entered the flow monitor map configuration submode.

In this sample output, the question mark (?) online help function displays all the commands available under the flow monitor map configuration submode:


RP/0/RSP0/CPU0:router(config)# flow monitor-map fmm

RP/0/RSP0/CPU0:router(config-fmm)# ?

cache     Specify flow cache attributes
commit    Commit the configuration changes to running
describe  Describe a command without taking real actions
do        Run an exec command
exit      Exit from this submode
exporter  Specify flow exporter map name
no        Negate a command or set its defaults
record    Specify a flow record map name
show      Show contents of configuration

Sampler Map Configuration Submode

When you issue the sampler-map map_name command in global configuration mode, the CLI prompt changes to “config-sm,” indicating that you have entered the sampler map configuration submode.

In this sample output, the question mark (?) online help function displays all the commands available under the sampler map configuration submode:


RP/0/RSP0/CPU0:router(config)# sampler-map fmm

RP/0/RSP0/CPU0:router(config-sm)# ?
clear     Clear the uncommitted configuration
clear     Clear the configuration
commit    Commit the configuration changes to running
describe  Describe a command without taking real actions
do        Run an exec command
exit      Exit from this submode
no        Negate a command or set its defaults
pwd       Commands used to reach current submode
random    Use random mode for sampling packets
root      Exit to the global configuration mode
show      Show contents of configuration

Enabling the NetFlow BGP Data Export Function

Use the bgp attribute-download command to enable NetFlow BGP routing attribute collection. The routing attributes are then exported. When no routing attributes are collected, zeroes (0) are exported.

When BGP attribute download is enabled, BGP downloads the attribute information for prefixes (community, extended community, and as-path) to the Routing Information Base (RIB) and Forwarding Information Base (FIB). This enables FIB to associate the prefixes with attributes and send the NetFlow statistics along with the associated attributes.

MPLS Flow Monitor with IPv4 and IPv6 Support

Cisco IOS XR Software supports the NetFlow collection of MPLS packets. It also supports the NetFlow collection of MPLS packets carrying IPv4, IPv6, or both IPv4 and IPv6 payloads.

MPLS Cache Reorganization to Support Both IPv4 and IPv6

In Cisco IOS XR Software, at a time, you can have only one MPLS flow monitor running on an interface. If you apply an additional MPLS flow monitor to the interface, the new flow monitor overwrites the existing one.

At a time, you can apply only one flow monitor on an interface per direction. You can apply either the same flow monitor to an interface in both directions, or each direction can have its own flow monitor.

At a time, you can apply one sampler map on an interface per direction per protocol.

You can configure the MPLS flow monitor to collect IPv4 fields, IPv6 fields, or IPv4-IPv6 fields. IPv4-IPv6 configuration collects both IPv4 and IPv6 addresses using one MPLS flow monitor. IPv4 configuration collects only IPv4 addresses. IPv6 configuration collects only IPv6 addresses.

The MPLS flow monitor supports up to 1,000,000 cache entries. NetFlow entries include these types of fields:

  • IPv4 fields

  • IPv6 fields

  • MPLS with IPv4 fields

  • MPLS with IPv6 fields

The maximum number of bytes per NetFlow cache entry is as follows:

  • IPv4–88 bytes per entry

  • MPLS–88 bytes per entry

  • IPv6–108 bytes per entry

  • MPLS with IPv4 fields–108 bytes per entry

  • MPLS with IPv6 fields–128 bytes per entry


Note


The different types of NetFlow entries are stored in separate caches. Consequently, the number of NetFlow entries on a line card can significantly impact the amount of available memory on the line card. Also, even though the sampling rate for IPv6 is the same as the sampling rate for IPv4, the CPU utilization for IPv6 is higher due to the longer keys used by the IPv6 fields.


MPLS Packets with IPv6 Flows

The collection of IPv6 flows in MPLS packets is an option. The CPU uses 128 bytes for each IPv6 field. IPv6 flows may contain these types of information:

  • Source IP address

  • Destination IP address

  • Traffic class value

  • Layer 4 protocol number

  • Layer 4 source port number

  • Layer 4 destination port number

  • Flow ID

  • Header option mask

To collect the IPv6 fields in MPLS packets, you must activate the MPLS record type, ipv6-fields by running the record mpls ipv6-fields command. You can also specify the number of labels to be used for aggregation with this command.

MPLS Aware Netflow Support

MPLS aware netflow for L2VPN traffic is supported on the Cisco ASR 9000 Series Aggregation Services Router High Density Ethernet Line Card. The feature supports capturing the MPLS records at the PW-tail end node in ingress direction, but the OutputInterface value is 0. However, these are not supported in release 5.3.2:
  • Capturing netflow records for L2VPN traffic on P (transit node) node for both ingress & egress direction.

  • Capturing netflow records for L2VPN traffic on PE (head-end node) node in egress direction.

  • Mapping top Label to IP prefix for tailend node ingress netflow records.

Use Case
Consider a three router L2VPN topology, with access and core links on one of the PE router over Cisco ASR 9000 Series Aggregation Services Router High Density Ethernet Line Card or ASR 9000 Enhanced Ethernet Line Card. The PE1 router is configured with MPLS netflow, while the traffic flow is from Traffic Generator 2 to Traffic Generator 1.
Figure 1. Three Router L2VPN Topology


Configuration
Here is the flow monitor configuration fmm-mpls-ipv4-ipv6:

flow monitor-map fmm-mpls-ipv4-ipv6
 record mpls ipv4-ipv6-fields 
 cache entries 10000 
 cache timeout active 600
 cache timeout inactive 600
!

Here is the sampler map configuration fsm1:

sampler-map fsm1
 random 1 out-of 1000
!

Now apply the flow monitor map and the sampler map in the ingress direction of TenGigE interface (of PE1 router):

interface TenGigE0/2/0/6/1
 ipv4 address 81.1.1.2 255.255.255.0
 ipv6 address 30:1::1/32
 flow mpls monitor fmm-mpls-ipv4-ipv6 sampler fsm1 ingress

Verification
Here is the show flow monitor command output that shows the OutputInterface value is 0 in last two rows for captured ingress netflow records on PW-tail end node; the command is executed on the PE1 router:
RP/0/RSP0/CPU0:router#show flow monitor fmm-mpls-ipv4-ipv6 cache location 0/0/cPU0
Cache summary for Flow Monitor fmm-mpls-ipv4-ipv6:
Cache size:                          10000
Current entries:                        20
Flows added:                            20
Flows not added:                         0
Ager Polls:                             77
  - Active timeout                       0
  - Inactive timeout                     0
  - TCP FIN flag                         0
  - Emergency aged                       0
  - Counter wrap aged                    0
  - Total                                0
Periodic export:
  - Counter wrap                         0
  - TCP FIN flag                         0
Flows exported                           0

LabelType Prefix/Length      Label1-EXP-S     Label2-EXP-S     Label3-EXP-S     Label4-EXP-S     Label5-EXP-S     Label6-EXP-S     InputInterface  OutputInterface ForwardStatus        FirstSwitched   LastSwitched    ByteCount    PacketCount  Dir SamplerID  InputVRFID                        OutputVRFID
  Unknown 0.0.0.0/0                 0-0-0        16001-0-1           -                -                -                -          AT0/1/1/2.1     Gi0/0/0/0       Fwd                  00 00:50:37:458 00 00:50:48:947 69078        1047         Egr 3          default                           default
  Unknown 0.0.0.0/0                 0-0-0        16057-0-1           -                -                -                -          AT0/1/1/2.58    Gi0/0/0/0       Fwd                  00 00:50:37:464 00 00:50:48:953 69078        1047         Egr 3          default                           default
  Unknown 0.0.0.0/0                 0-0-0        16059-0-1           -                -                -                -          AT0/1/1/2.6     Gi0/0/0/0       Fwd                  00 00:50:37:459 00 00:50:48:947 69078        1047         Egr 3          default                           default
  Unknown 0.0.0.0/0                 0-0-0        16022-0-1           -                -                -                -          AT0/1/1/2.26    Gi0/0/0/0       Fwd                  00 00:50:42:339 00 00:50:48:950 39336        596          Egr 3          default                           default
  Unknown 0.0.0.0/0                 0-0-0        16041-0-1           -                -                -                -          Gi0/0/0/0       0               Fwd                  00 00:50:42:340 00 00:50:48:951 39336        596          Ing 1          default                           0
  Unknown 0.0.0.0/0                 0-0-0        16023-0-1           -                -                -                -          Gi0/0/0/0       0               Fwd                  00 00:50:42:339 00 00:50:48:950 39336        596          Ing 1          default                           0

Destination-based NetFlow Accounting

Destination-based NetFlow accounting (DBA) is a usage-based billing application that tracks and records traffic according to its destination. It enables service providers to do destination-specific accounting and billing. The destination-based NetFlow accounting record includes the destination peer autonomous system (AS) number and the BGP next-hop IP address.


Note


When an EBGP neighborship is established towards a directly connected peer (neighborship toward's the Peer routers Global IPv6 address configured on the directly connected interface), the EBGPv6 peer will advertise both the Link Local Next Hop (LL NH) and the Global Next Hop.


IPv4 DBA is already supported in CRS. In Release 4.3.1, the support for IPv6 DBA support is added.

DBA is supported on ASR9000 Gigabit Ethernet and ASR9000 Enhanced Gigabit Ethernet linecards.

In destination-based NetFlow accounting, these parameters are collected and exported to destination:

  • Destination peer AS number

  • BGP next-hop IP address

  • Ingress interface

  • Egress interface

  • Forwarding status

  • Incoming IPv4 TOS

  • Counter of packets in the flow

  • Counter of bytes in the flow

  • Timestamp for the first and last packets in the flow

  • Counter of packets in the flow (64 bits)

  • Counter of bytes in the flow (64 bits)

  • Timestamp for the first and last packet in the flow. This is the timestamp when the flow is reported from hardware to the NetFlow server. 

Destination-based NetFlow accounting supports:

  • IPv4 and IPv6 addresses

  • Configuration on physical interfaces, bundle interfaces, and logical subinterfaces

  • IPv4 unicast and multicast traffic

  • IPv6 unicast and multicast traffic

  • Only ingress traffic

  • Only full mode NetFlow

  • NetFlow export format Version 9 over User Datagram Protocols (UDPs)

  • All line cards (LCs)

  • Normal cache type (active and inactive timeout aged flow records)

  • Permanent cache type (no aging for flow records)

Destination-based NetFlow accounting does not support:

  • MPLS IPv4 and IPv6

  • Configuration for individual Modular QoS Command-Line Interface (MQC) classes

  • Simultaneous configuration of destination-based NetFlow accounting with IPv4 and IPv6 sampled NetFlow on the same interface, in the same direction.

  • Layer 2 switched MPLS traffic

  • Egress traffic

  • Sampled mode NetFlow

  • NetFlow export formats version 5, version 8, IP Flow Information Export (IPFIX), or Stream Control Transmission Protocol (SCTP).

  • Immediate cache type

Enhancement to the Netflow Records to Capture BGP IPv6 Next-hop

This enhancement enables Netflow records to download recursive IPv6 global next-hops instead of IPv6 link-local next-hops for directly connected eBGP IPv6 neighbors. Downloading the IPv6 global next-hops helps Netflow records to capture BGP attributes (source AS and BGP IPv6 nexthop).

To enable this feature, use the set next-hop ipv6-global command in route-policy configuration mode.

This sample configuration shows how to enable Netflow records to download recursive IPv6 global next-hops:

RP/0/RSP0/CPU0:router(config)# route-policy sample-table
RP/0/RSP0/CPU0:router(config-rpl)# set next-hop ipv6-global
RP/0/RSP0/CPU0:router(config-rpl)# end-policy

RP/0/RSP0/CPU0:router(config)# router bgp 100
RP/0/RSP0/CPU0:router(config-bgp)# address-family ipv6 unicast
RP/0/RSP0/CPU0:router(config-bgp-af)# table-policy sample-table
RP/0/RSP0/CPU0:router(config-bgp-af)# commit
  
	

Flow Filter

NetFlow provides highly granular per-flow traffic statistics in a Cisco router. The router accumulates NetFlow statistics of all the flows in a NetFlow cache and exports them to an external device for further processing. But in some cases, you might want to gather NetFlow data on only a subset of these flows. The flow filter feature provides the capability to gather NetFlow data on only a specific user-defined subset of flow.

The flow filter feature is configured on interfaces in ingress or egress direction. The flow filter feature uses ACL and QoS bits to filter the NetFlow data; the match criteria is based on five tuple and DSCP bits. The filtered Netflow data is sampled (not all interface flows are sampled) and exported to a collector.

When both security ACL and Netflow filtering ACL are configured on an interface, the security ACL takes precedence over Netflow filtering ACL.

The Flow Filter supports:

  • NetFlow v9 and IPFIX export formats.

  • Yang data model for dynamic provisioning.


Note


This feature is supported only on the Cisco ASR 9000 Third Generation High Density Ethernet LCs.


Restrictions

These are the restrictions for the flow filter feature:

  • Supported on physical interface, physical subinterface, bundle interface, and bundle subinterface

  • Not supported on satellite access interface, ICL interface and clusters.

  • MPLS netflow filtering is not supported.

Configuring Flow Filter

Consider SP-PE use case where SP (Service Provide) cloud is connected to the PE (Provider Edge) router through gigabit ethernet.

Figure 2. SP-PE Topology


Configuring NetFlow on PE router involves:

  1. Configuring ACL based filter criteria for NetFlow

  2. Configuring Monitor map with filter netflow object

  3. Configuring Sampler map

  4. Configuring Exporter map

  5. Applying the NetFlow flow filter ACL configuration and Monitor map to an interface

Configuring ACL based filter criteria for NetFlow


ipv4 access-list nf_ex
   10 permit ipv4 192.168.1.1/24 any capture
   

Configuring Monitor map with filter netflow object


flow monitor-map fmm1
   record ipv4
    option filtered 
   exporter fem1
   cache entries 10000
   cache timeout active 1800
   cache timeout inactive 15
   exit 

Configuring Sampler map


sampler-map fsm1 
 random 1 out-of 65535
exit

Configuring Exporter map

flow exporter-map fem1 
 destination 10.1.1.1
 source Loopback 0
 transport udp 1024
 dscp 10
exit
version v9
 template data timeout 600
 options interface-table
exit

Applying the NetFlow Flow filter ACL configuration and Monitor map to an interface


interface 10GE0/0/0/1
ipv4 access-group nf_ex_ing
flow ipv4 monitor fmm1 sampler fsm1 ingress 
exit

Verification

Use the show flow monitor command to verify the flow filter configuration successfully applied on the PE router:

RP/0/RSP0/CPU0:router# show flow monitor fmm1 location 0/0/CPU0

Flow Monitor :        fmm1                        
---------------------------------------------
  Flow definition:    ipv4-raw                        
  Cache configuration:
    Type:             Normal                          
    Cache size:                      65535 entries
    Inactive timeout:                   15 seconds
    Active timeout:                   1800 seconds
    Update timeout:                    N/A
    Rate limit:                       2000 entries per second
    Options:                      filtered

Netflow over BVI

NetFlow monitoring on Bridge-Group Virtual Interface (BVI) enables traffic monitoring, capacity planning, accounting, security threat detection and billing.


Note


This feature is supported only on ASR 9000 Enhanced Ethernet Line Cards. This feature is not supported on A9K-SIP-700 Line Cards and ASR 9000 Ethernet Line Cards..


Supported Features

The supported features are as follows:

  • Netflow monitor configuration

  • All NPs on all LCs should share per-LC CPU SPIO bandwidth of 200Kpps

  • Bundles and Pseudowires could be part of the BVI bridge domain

  • Egress NetFlow on a BVI interface with the limitation that it is applied on the ingress LC of the L3 packet

  • IPv4, IPv6 and DBA flow monitoring on BVI

NetFlow for IPv6 Pseudowire Headend Interfaces

Table 4. Feature History Table

Feature Name

Release

Description

NetFlow for IPv6 Pseudowire Headend Interface

Release 7.11.1

In this release, we have introduced NetFlow support for IPv6 Pseudowire Headend (PWHE) interfaces. This enhancement helps monitor traffic congestion and make decisions for the efficient operation of networks. This is achieved by providing increased visibility into IPv6 traffic on PWHE interfaces that allows termination of pseudowire connections from legacy non-IP traffic sources and their encapsulation into native IP packets.

NetFlow can monitor and manage traffic on Pseudowire Headend (PWHE) interfaces, which plays a crucial role in monitoring legacy services over modern IP/MPLS networks. Positioned at the network edge, a PWHE router specializes in terminating pseudowire connections from diverse sources of legacy non-IP traffic and encapsulating them into native IP packets.

Prior to IOS-XR software release 7.11.1, NetFlow support for PWHE interfaces was limited to IPv4 traffic flows. The enhanced NetFlow support for PWHE interfaces enables the network administrator to effectively monitor both IPv4 and IPv6 traffic flows on PWHE interfaces. This update empowers network administrators to make informed decisions and ensure optimal network performance.

Configure NetFlow on Pseudowire Headend (PWHE) Interfaces

This section explains how to configure NetFlow on IPv6 Pseudowire Headend (PWHE) Interfaces:

  1. Configure an Exporter Map using the flow exporter-map command in global configuration mode.

    
    RP/0/RSP0/CPU0:router(config)# flow exporter-map FLOW-EXP-MAP
    RP/0/RSP0/CPU0:router(config-fem)#  version v9
    RP/0/RSP0/CPU0:router(config-fem)#  options interface-table timeout 600
    RP/0/RSP0/CPU0:router(config-fem)#  options sampler-table timeout 600
    RP/0/RSP0/CPU0:router(config-fem)#  template data timeout 600
    RP/0/RSP0/CPU0:router(config-fem)#  template options timeout 600
    RP/0/RSP0/CPU0:router(config)#  exit
    RP/0/RSP0/CPU0:router(config)#  dscp 16
    RP/0/RSP0/CPU0:router(config)#  transport udp 5000
    RP/0/RSP0/CPU0:router(config)#  source Loopback0
    RP/0/RSP0/CPU0:router(config)#  destination 122.2.168.37
    
  2. Configure an Monitor Map using the flow monitor-map command in global configuration mode

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map IPv6-MONITOR-MAP
    RP/0/RSP0/CPU0:router(config-fmm)#  record ipv6
    RP/0/RSP0/CPU0:router(config-fmm)#  exporter FLOW-EXP-MAP
    RP/0/RSP0/CPU0:router(config-fmm)#  cache entries 250000
    RP/0/RSP0/CPU0:router(config-fmm)#  cache timeout active 600
    
  3. Configure a Sampler Map using the sampler-map command to define the rate at which the packet sampling should be performed at the Pseudowire Headend interface where NetFlow is enabled.

    
    RP/0/RSP0/CPU0:router(config)# sampler-map FNF-SAMPLER-MAP 
    RP/0/RSP0/CPU0:router(config-sm)#  random 1 out-of 1000
    RP/0/RSP0/CPU0:router(config)#  exit
    
  4. Apply a Monitor Map and a Sampler Map to a physical interface using the flow command to enable NetFlow on the ingress and egress of the Pseudowire Headend interface router.

    
    RP/0/RSP0/CPU0:router(config)# interface PE1313
    RP/0/RSP0/CPU0:router(config-if)#  flow ipv6 monitor IPv6-MONITOR-MAP sampler FNF-SAMPLER-MAP ingress
    RP/0/RSP0/CPU0:router(config)#   flow ipv6 monitor IPv6-MONITOR-MAP sampler FNF-SAMPLER-MAP egress
    
  5. Verify the monitor map configuration using the show flow monitor-map command.

    RP/0/RSP1/CPU0:BGL15#sh flow monitor IPv6-MONITOR-MAP cache location 0/0/CPU0
    Tue Nov  8 13:29:46.058 UTC
    Cache summary for Flow Monitor IPv6-MONITOR-MAP:
    Cache size:                         250000
    Current entries:                         1
    Flows added:                             1
    Flows not added:                         0
    Ager Polls:                            229
      - Active timeout                       0
      - Inactive timeout                     0
      - Immediate                            0
      - TCP FIN flag                         0
      - Emergency aged                       0
      - Counter wrap aged                    0
      - Total                                0
    Periodic export:
      - Counter wrap                         0
      - TCP FIN flag                         0
    Flows exported                           0
    
    	IPv6SrcAddr                              IPv6DstAddr                              BGPDstOrigAS BGPSrcOrigAS BGPNextHopV6                             IPv6TC IPv6FlowLabel  IPv6OptHdrs  IPV6Prot L4SrcPort  L4DestPort L4TCPFlags   IPV6DstPrfxLen  IPV6SrcPrfxLen  InputInterface  OutputInterface ForwardStatus        FirstSwitched   LastSwitched    ByteCount    PacketCount  Dir SamplerID  InputVRFID                        OutputVRFID
    	31::1                                    31::2                                    0            0            ::                                       0      0              0x10         59       0          0          0            0               64              PE1313          0               TermForUs            00 01:04:59:644 00 01:08:44:750 23861130     225105       Ing 1          default                           0
    
    	Matching entries:                        1
    

Verification

This section guides you in verifying NetFlow on IPv6 Pseudowire Headend (PWHE) Interfaces by checking flow producer statistics using the "show flow platform producer" command.

RP/0/RSP1/CPU0:BGL15#sh flow platform producer statistics location 0/0/CPU0
Tue Nov  8 13:18:16.303 UTC
Netflow Platform Producer Counters:
IPv4 Ingress Packets:                            0
IPv4 Egress Packets:                             0
IPv6 Ingress Packets:                        18402
IPv6 Egress Packets:                             0
MPLS Ingress Packets:                            0
MPLS Egress Packets:                             0
Section Ingress Packets:                         0
Sflow Ingress Packets:                           0
Mapt Logging Ingress Packets:                    0
Drops (no space):                                0
Drops (other):                              0
Unknown Ingress Packets:                    0
Unknown Egress Packets:                     0
Worker waiting:                             0
SPP Packets:                            18370
Flow Packets:                           18402
Flow Packets per SPP Frame:                 1

How to Configure NetFlow on Cisco IOS XR Software

The steps that follow provide a general overview of NetFlow configuration:

SUMMARY STEPS

  1. Create and configure an exporter map.
  2. Create and configure a monitor map and a sampler map.
  3. Apply the monitor map and sampler map to an interface.

DETAILED STEPS


Step 1

Create and configure an exporter map.

Step 2

Create and configure a monitor map and a sampler map.

Note

 

The monitor map must reference the exporter map you created in Step 1. If you do not apply an exporter-map to the monitor-map, the flow records are not exported, and aging is done according to the cache parameters specified in the monitor-map.

Step 3

Apply the monitor map and sampler map to an interface.

These steps are described in detail in these sections:


Configuring an Exporter Map

Configure an exporter map and apply it to the monitor map with the flow monitor-map map_name exporter map_name command. You can configure the exporter map prior to configuring the monitor map, or you can configure the monitor map first and then configure and apply an exporter map later on.


Note


Cisco IOS XR Software supports the configuration of a single collector only in the exporter map.


The steps that follow describe how to create and configure an exporter map and enable exporting of the sampler table or the interface table.

SUMMARY STEPS

  1. configure
  2. flow exporter-map map_name
  3. destination hostname_or_IP_address
  4. dscp dscp_value
  5. source type interface-path-id
  6. transport udp port
  7. version v9
  8. options {interface-table | sampler-table | vrf-table} [timeout seconds]
  9. template [data | options] timeout seconds
  10. commit
  11. exit
  12. exit
  13. show flow exporter-map map_name

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Step 2

flow exporter-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# flow exporter-map fem

Creates an exporter map, configures the exporter map name, and enters flow exporter map configuration mode.

Step 3

destination hostname_or_IP_address

Example:


RP/0/RSP0/CPU0:router(config-fem)# destination 170.1.1.11

Configures the export destination for the flow exporter map. The destination can be a hostname or an IPv4/IPv6 address.

Step 4

dscp dscp_value

Example:


RP/0/RSP0/CPU0:router(config-fem)# dscp 55

(Optional) Specifies the differentiated services codepoint (DSCP) value for export packets. Replace the dscp_value argument with a value in the range from 0 through 63.

Step 5

source type interface-path-id

Example:


RP/0/RSP0/CPU0:router(config-fem)# source gigabitEthernet 0/0/0/0

Specifies a source interface, in the format type interface-path-id .

Step 6

transport udp port

Example:


RP/0/RSP0/CPU0:router(config-fem)# transport udp 9991

(Optional) Specifies the destination port for UDP packets. Replace port with the destination UDP port value, in the range from 1024 through 65535.

Step 7

version v9

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# version v9

(Optional) Enters flow exporter map version configuration submode.

Step 8

options {interface-table | sampler-table | vrf-table} [timeout seconds]

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# options sampler-table timeout 2000

(Optional) Configures the export timeout value for the sampler table. Replace seconds with the export timeout value, in the range from 1 through 604800 seconds.

Default is 1800 seconds.

Step 9

template [data | options] timeout seconds

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# template data timeout 10000

(Optional) Configures the export period for data packets. Replace seconds with the export timeout value, in the range from 1 through 604800 seconds.

Step 10

commit

Step 11

exit

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# exit

Exits flow exporter map version configuration submode.

Step 12

exit

Example:


RP/0/RSP0/CPU0:router(config)# exit

Exits global configuration mode.

Step 13

show flow exporter-map map_name

Example:


RP/0/RSP0/CPU0:router# show flow exporter-map fem

Displays exporter map data.

Configuring a Sampler Map

Perform these steps to create and configure a sampler map.

SUMMARY STEPS

  1. configure
  2. sampler-map map_name
  3. random 1 out-of sampling_interval
  4. commit
  5. exit
  6. exit
  7. show sampler-map map_name

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Step 2

sampler-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# sampler-map sm
RP/0/RSP0/CPU0:router(config-sm)#

Creates a sampler map and enters sampler map configuration mode.

Keep the following in mind when configuring a sampler map:

Step 3

random 1 out-of sampling_interval

Example:


RP/0/RSP0/CPU0:router(config-sm)# random 1 out-of 65535

Configures the sampling interval to use random mode for sampling packets. Replace the sampling_interval argument with a number, in the range from 1 through 65535 units.

Step 4

commit

Step 5

exit

Example:


RP/0/RSP0/CPU0:router(config-sm)# exit

Exits sampler map configuration mode and enters the global configuration mode.

Step 6

exit

Example:


RP/0/RSP0/CPU0:router(config)# exit

Exits the global configuration mode and enters EXEC mode.

Step 7

show sampler-map map_name

Example:


RP/0/RSP0/CPU0:router# show sampler-map fsm

Displays sampler map data.

Configuring a Monitor Map

Perform these steps to create and configure a monitor map.

SUMMARY STEPS

  1. configure
  2. flow monitor-map map_name
  3. Do one of the following:
    • record ipv4
    • record ipv4 [peer as]
    • record ipv6
    • record mpls [labels number]
    • record mpls [ipv4-fields] [labels number]
    • record mpls [ipv6-fields] [labels number]
    • record mpls [ipv4-ipv6-fields] [labels number]
    • record mapt
  4. cache entries number
  5. cache permanent
  6. cache timeout {active timeout_value | inactive timeout_value | update timeout_value}
  7. exporter map_name
  8. Use the commit or end command.
  9. exit
  10. exit
  11. show flow monitor-map map_name

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

flow monitor-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# flow monitor-map fmm
RP/0/RSP0/CPU0:router(config-fmm)#

Creates a monitor map and configures a monitor map name and enters flow monitor map configuration submode.

Step 3

Do one of the following:

  • record ipv4
  • record ipv4 [peer as]
  • record ipv6
  • record mpls [labels number]
  • record mpls [ipv4-fields] [labels number]
  • record mpls [ipv6-fields] [labels number]
  • record mpls [ipv4-ipv6-fields] [labels number]
  • record mapt

Example:


RP/0/RSP0/CPU0:router(config-fmm)# record ipv4

Configures the flow record map name for IPv4, IPv6, or MPLS.

  • Use the record ipv4 command to configure the flow record map name for IPv4. By default, you collect and export the originating autonomous system (AS) numbers.

  • Use the record ipv4 [peer-as] command to record peer AS. Here, you collect and export the peer AS numbers.

Note

 

Ensure that the bgp attribute-download command is configured. Else, no AS is collected when the record ipv4 or record ipv4 peer-as command is configured.

  • Use the record ipv6 command to configure the flow record map name for IPv6.

  • Use the record mpls labels command with the number argument to specify the number of labels that you want to aggregate. By default, MPLS-aware NetFlow aggregates the top six labels of the MPLS label stack. The maximum value is 6.

  • Use the record mpls ipv4-fields command to collect IPv4 fields in the MPLS-aware NetFlow.

  • Use the record mpls ipv6-fields command to collect IPV6 fields in the MPLS-aware NetFlow.

  • Use the record mpls ipv4-ipv6-fields command to collect IPv4 and IPv6 fields in the MPLS-aware NetFlow.

  • Use the record mapt command to collect the IPv4 and IPv6 addresses that were translated to the respective IPv6 and IPv4 addresses.

    Note

     

    MAP-T is supported on 4th generation ASR 9000 line cards running Cisco IOS XR 64-bit.

Step 4

cache entries number

Example:


RP/0/RSP0/CPU0:router(config-fmm)# cache entries 10000

(Optional) Configures the number of entries in the flow cache. Replace the number argument with the number of flow entries allowed in the flow cache, in the range from 4096 through 1000000.

The default number of cache entries is 65535.

Step 5

cache permanent

Example:


RP/0/RSP0/CPU0:router(config-fmm)# flow monitor-map fmm cache permanent

(Optional) Disables removal of entries from flow cache.

Step 6

cache timeout {active timeout_value | inactive timeout_value | update timeout_value}

Example:


RP/0/RSP0/CPU0:router(config-fmm)# cache timeout inactive 1000

(Optional) Configures the active, inactive, or update flow cache timeout value.

  • The default timeout value for the inactive flow cache is 15 seconds.

  • The default timeout value for the active flow cache is 1800 seconds.

  • The default timeout value for the update flow cache is 1800 seconds.

Note

 

The update timeout_value keyword argument is used for permanent caches only. It specifies the timeout value that is used to export entries from permanent caches. In this case, the entries are exported but remain the cache.

Step 7

exporter map_name

Example:


RP/0/RSP0/CPU0:router(config-fmm)# exporter fem

Associates an exporter map with a monitor map.

Note

 

A single flow monitor map can support up to eight exporters.

Step 8

Use the commit or end command.

commit —Saves the configuration changes and remains within the configuration session.

end —Prompts user to take one of these actions:
  • Yes — Saves configuration changes and exits the configuration session.

  • No —Exits the configuration session without committing the configuration changes.

  • Cancel —Remains in the configuration session, without committing the configuration changes.

Step 9

exit

Example:


RP/0/RSP0/CPU0:router(config-fmm)# exit

Exits flow monitor map configuration submode.

Step 10

exit

Example:


RP/0/RSP0/CPU0:router(config)# exit

Exits global configuration mode.

Step 11

show flow monitor-map map_name

Example:


RP/0/RSP0/CPU0:router# show flow monitor-map fmm

Displays flow monitor map data.

Applying a Monitor Map and a Sampler Map to an Interface

Perform these steps to apply a monitor map and a sampler map to an interface.

SUMMARY STEPS

  1. configure
  2. interface type number
  3. flow [ipv4 | ipv6 | mpls ] monitor monitor_map sampler sampler_map {egress | ingress}
  4. flow map-t monitor monitor_mapingress
  5. Use the commit or end command.

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

interface type number

Example:


RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
RP/0/RSP0/CPU0:router(config-if)#

Enters interface configuration mode.

Step 3

flow [ipv4 | ipv6 | mpls ] monitor monitor_map sampler sampler_map {egress | ingress}

Example:


RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor fmm sampler fsm egress

Associates a monitor map and a sampler map with an interface.

Enter ipv4 to enable IPV4 NetFlow on the specified interface.

Enter ipv6 to enable IPV6 NetFlow on the specified interface.

Enter mpls to enable MPLS-aware NetFlow on the specified interface.

Step 4

flow map-t monitor monitor_mapingress

Example:


RP/0/RSP0/CPU0:router(config-if)# flow map-t monitor fmm ingress

Associates a monitor map with an interface.

Enter map-t to collect the IPv4 and IPv6 addresses that were translated to the respective IPv6 and IPv4 addresses.

Note

 

MAP-T is supported on 4th generation ASR 9000 line cards running Cisco IOS XR 64-bit.

Step 5

Use the commit or end command.

commit —Saves the configuration changes and remains within the configuration session.

end —Prompts user to take one of these actions:
  • Yes — Saves configuration changes and exits the configuration session.

  • No —Exits the configuration session without committing the configuration changes.

  • Cancel —Remains in the configuration session, without committing the configuration changes.

Clearing NetFlow Data

Perform these steps to clear flow exporter map and flow monitor map data.

SUMMARY STEPS

  1. clear flow exporter [exporter_name] {restart | statistics} location node-id
  2. clear flow monitor [monitor_name] cache [force-export | statistics] location node-id}

DETAILED STEPS

  Command or Action Purpose

Step 1

clear flow exporter [exporter_name] {restart | statistics} location node-id

Example:


RP/0/RSP0/CPU0:router# clear flow exporter statistics location 0/0/CPU0

Clears the flow exporter data.

Specify the statistics option to clear exporter statistics. Specify the restart option to export all of the templates that are currently configured on the specified node.

Step 2

clear flow monitor [monitor_name] cache [force-export | statistics] location node-id}

Example:


RP/0/RSP0/CPU0:router# clear flow monitor cache force-export location 0/0/CPU0

Clears the flow monitor data.

Specify the statistics option to clear cache statistics. Specify the force-export option to export the data from cache to server first and then clear the entries from cache.

Configuring NetFlow Collection of MPLS Packets with IPv6 Fields

Perform these steps to configure NetFlow collection of MPLS packets with IPv6 fields.

SUMMARY STEPS

  1. configure
  2. flow exporter-map map_name
  3. version v9
  4. options {interface-table | sampler-table} [timeout seconds]
  5. template [data | options] timeout seconds
  6. exit
  7. transport udp port
  8. source type interface-path-id
  9. destination hostname_or_IP_address
  10. exit
  11. flow monitor-map map_name
  12. record mpls [ipv4-ipv6-fields] [labels number]
  13. exporter map_name
  14. cache entries number
  15. cache timeout {active timeout_value | inactive timeout_value | update timeout_value}
  16. cache permanent
  17. exit
  18. sampler-map map_name
  19. random 1 out-of sampling_interval
  20. exit
  21. interface type number
  22. flow [ipv4 | ipv6 | mpls] monitor monitor_map sampler sampler_map {egress | ingress}
  23. commit
  24. exit
  25. exit
  26. show flow monitor-map map_name
  27. show flow exporter-map map_name

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Step 2

flow exporter-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# flow exporter-map exp1

Creates an exporter map, configures the exporter map name, and enters flow exporter map configuration mode.

Step 3

version v9

Example:


RP/0/RSP0/CPU0:router(config-fem)# version v9

(Optional) Enters flow exporter map version configuration submode.

Step 4

options {interface-table | sampler-table} [timeout seconds]

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# options interface-table timeout 300

(Optional) Configures the export timeout value for the interface table or the sampler table. Replace seconds with the export timeout value, in the range from 1 through 604800 seconds. The default is 1800 seconds for both the interface table and the sample table.

You must perform this step twice to configure the export timeout value for both an interface table and a sample table.

Step 5

template [data | options] timeout seconds

Example:


RP/0/RSP0/CPU0:router(config-fem-ver)# template data timeout 300

(Optional) Configures the export period for data packets or options packets. Replace seconds with the export timeout value, in the range from 1 through 604800 seconds.

You must perform this step twice to configure the export period for both data packets and options packets.

Step 6

exit

Example:


RSP0/CPU0:router(config-fem-ver)# exit

Exits flow exporter map version configuration mode, and enters flow exporter map configuration mode.

Step 7

transport udp port

Example:


RP/0/RSP0/CPU0:router(config-fem)# transport udp 12515

(Optional) Specifies the destination port for UDP packets. Replace port with the destination UDP port value, in the range from 1024 through 65535.

Step 8

source type interface-path-id

Example:


RP/0/RSP0/CPU0:router(config-fem)# source Loopback0

Specifies a source interface, in the format type interface-path-id . For example:


POS 0/1/0/1 or Loopback0

Step 9

destination hostname_or_IP_address

Example:


RP/0/RSP0/CPU0:router(config-fem)# destination 170.1.1.11

Configures the export destination for the flow exporter map. The destination can be a hostname or an IPv4/IPv6 address.

Step 10

exit

Example:


RP/0/RSP0/CPU0:router(config-fem)# exit

Exits flow exporter map configuration mode, and enters global configuration mode.

Step 11

flow monitor-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-IPv6-fmm

Creates a monitor map and configures a monitor map name and enters flow monitor map configuration submode.

Step 12

record mpls [ipv4-ipv6-fields] [labels number]

Example:


RP/0/RSP0/CPU0:router(config-fmm)# record mpls ipv6-fields labels 3

Configures the flow record map name for IPv4, IPv6, or MPLS. Use the ipv4-ipv6-fields keyword to collect IPv4 and IPv6 fields in an MPLS-aware NetFlow.

Step 13

exporter map_name

Example:


RP/0/RSP0/CPU0:router(config-fmm)# exporter exp1

Associates an exporter map with a monitor map.

Note

 

A single flow monitor map can support up to eight exporters.

Step 14

cache entries number

Example:


RP/0/RSP0/CPU0:router(config-fmm)# cache entries 10000

(Optional) Configures the number of entries in the flow cache. Replace the number argument with the number of flow entries allowed in the flow cache, in the range from 4096 through 1000000.

The default number of cache entries is 65535.

Step 15

cache timeout {active timeout_value | inactive timeout_value | update timeout_value}

Example:


RP/0/RSP0/CPU0:router(config-fmm)# cache timeout inactive 1800

(Optional) Configures the active, inactive, or update flow cache timeout value.

  • The default timeout value for the inactive flow cache is 15 seconds.

  • The default timeout value for the active flow cache is 1800 seconds.

  • The default timeout value for the update flow cache is 1800 seconds.

Note

 

The inactive and active keywords are not applicable to permanent caches.

Note

 

The update keyword is used for permanent caches only. It specifies the timeout value that is used to export entries from permanent caches. In this case, the entries are exported but remain the cache.

Step 16

cache permanent

Example:


RP/0/RSP0/CPU0:router(config-fmm)# flow monitor-map fmm cache permanent

(Optional) Disables the removal of entries from flow cache.

Step 17

exit

Example:


RP/0/RSP0/CPU0:router(config-fmm)# exit

Exits flow monitor map configuration submode.

Step 18

sampler-map map_name

Example:


RP/0/RSP0/CPU0:router(config)# sampler-map fsm
RP/0/RSP0/CPU0:router(config-sm)#

Creates a sampler map and enters sampler map configuration mode.

Keep the following in mind when configuring a sampler map:

    Step 19

    random 1 out-of sampling_interval

    Example:

    
    RP/0/RSP0/CPU0:router(config-sm)# random 1 out-of 65535
    

    Configures the sampling interval to use random mode for sampling packets. Replace the sampling_interval argument with a number, in the range from 1 through 65535 units.

    Step 20

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config-sm)#exit
    

    Exits sampler map configuration mode and enters global configuration mode.

    Step 21

    interface type number

    Example:

    
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)#
    

    Enters interface configuration mode.

    Step 22

    flow [ipv4 | ipv6 | mpls] monitor monitor_map sampler sampler_map {egress | ingress}

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor MPLS-IPv6-fmm sampler fsm egress
    

    Associates a monitor map and a sampler map with an interface.

    Enter ipv4 to enable IPV4 NetFlow on the specified interface. Enter ipv6 to enable IPV6 NetFlow on the specified interface. Enter mpls to enable MPLS-aware NetFlow on the specified interface.

    Step 23

    commit

    Step 24

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# exit
    

    Exits interface configuration submode for the Ethernet interface.

    Step 25

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config)# exit
    

    Exits global configuration mode.

    Step 26

    show flow monitor-map map_name

    Example:

    
    RP/0/RSP0/CPU0:router# show flow monitor-map fmm
    

    Displays flow monitor map data.

    Step 27

    show flow exporter-map map_name

    Example:

    
    RP/0/RSP0/CPU0:router# show flow exporter-map fem
    

    Displays exporter map data.

    Configuring Destination-based NetFlow Accounting

    Perform these tasks to configure destination-based NetFlow accounting.

    SUMMARY STEPS

    1. configure
    2. flow monitor-map map_name
    3. record destination-tos {ipv4} [destination]
    4. exit
    5. interface type interface-path-id
    6. flow {ipv4 }monitor map-name { ingress }
    7. commit
    8. show flow monitor-map map_name

    DETAILED STEPS

      Command or Action Purpose

    Step 1

    configure

    Step 2

    flow monitor-map map_name

    Example:

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map map1
    RP/0/RSP0/CPU0:router(config-fmm)#
    

    Creates a monitor map and configures a monitor map name and enters flow monitor map configuration submode.

    Step 3

    record destination-tos {ipv4} [destination]

    Example:

    
    RP/0/RSP0/CPU0:router(config-fmm)# record ipv4 destination-tos
    

    Configures the flow record for an IPv4 destination-based NetFlow accounting record. The destination keyword specifies that the record is for IPv4 destination-based NetFlow accounting.

    Step 4

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    

    Exits flow monitor map mode and enters the global configuration mode.

    Step 5

    interface type interface-path-id

    Example:

    
    RP/0/RSP0/CPU0:router(config)# interface POS 0/1/0/0
    

    Interface type and physical interface-path-id in the format type rack/slot/module/port .

    type —POS, Ethernet, ATM, etc.

    rack —Chassis number of the rack.

    slot —Physical slot number of the line card or modular services card.

    module —Module number. A physical layer interface module (PLIM) is always 0.

    port —Physical port number of the interface.

    Step 6

    flow {ipv4 }monitor map-name { ingress }

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor monitor1 ingress
    

    Configures an IPv4 flow monitor for the ingress direction and assigns the name of the monitor.

    Step 7

    commit

    Step 8

    show flow monitor-map map_name

    Example:

    
    RP/0/RSP0/CPU0:router# show flow monitor-map map1
    

    Verifies monitor map data.

    Configuring Netflow over BVI

    Perform this task to configure Neflow over BVI.


    Note


    For information on configuring the exporter, monitor, and sampler, see Configuring an Exporter Map, Configuring a Monitor Map, and Configuring a Sampler Map.


    SUMMARY STEPS

    1. configure
    2. l2vpn
    3. bridge group bg1
    4. bridge-domain bd1
    5. interface TenGigE0/0/0/0
    6. exit
    7. interface Bundle-Ether100
    8. exit
    9. routed interface BVI1
    10. interface BVI1
    11. ipv4 address 11.11.11.11 255.255.255.0
    12. flow ipv4 monitor FMM sampler SAMP ingress
    13. flow ipv4 monitor FMM sampler SAMP egress
    14. flow ipv6 monitor FMM-v6 sampler SAMP ingress
    15. flow ipv6 monitor FMM-v6 sampler SAMP egress
    16. commit

    DETAILED STEPS

      Command or Action Purpose

    Step 1

    configure

    Step 2

    l2vpn

    Example:

    
    RP/0/RSP0/CPU0:router(config)# l2vpn 
    

    Enters L2VPN configuration mode.

    Step 3

    bridge group bg1

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn)# bridge group bg1 
    

    Configures bridge group.

    Step 4

    bridge-domain bd1

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg)# bridge-domain bd1 
    

    Configures bridge domain.

    Step 5

    interface TenGigE0/0/0/0

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface TenGigE0/0/0/0
    

    Assigns TenGigabitEthernet/IEEE 802.3 interface to the configured bridge domain.

    Step 6

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# exit
    

    Exits the interface sub-mode.

    Step 7

    interface Bundle-Ether100

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface Bundle-Ether100 
    

    Assigns aggregated ethernet interface to the configured bridge domain.

    Step 8

    exit

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# exit
    

    Exits the interface sub-mode.

    Step 9

    routed interface BVI1

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# routed interface BVI1 
    

    Assigns Bridge-Group Virtual Interface to the configured bridge domain.

    Step 10

    interface BVI1

    Example:

    
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface BVI1 
    

    Enters interface configuration mode.

    Step 11

    ipv4 address 11.11.11.11 255.255.255.0

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# ipv4 address 11.11.11.11 255.255.255.0 
    

    Configures the IPv4 address of the interface.

    Step 12

    flow ipv4 monitor FMM sampler SAMP ingress

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor FMM sampler SAMP ingress
    

    Configures IPv4 flow monitor, specifies a sampler for packets, and applies flow monitor on incoming packets.

    Step 13

    flow ipv4 monitor FMM sampler SAMP egress

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor FMM sampler SAMP egress
    

    Configures IPv4 flow monitor, specifies a sampler for packets, and applies flow monitor on outgoing packets.

    Step 14

    flow ipv6 monitor FMM-v6 sampler SAMP ingress

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv6 monitor FMM-v6 sampler SAMP ingress
    

    Configures IPv6 flow monitor, specifies a sampler for packets, and applies flow monitor on incoming packets.

    Step 15

    flow ipv6 monitor FMM-v6 sampler SAMP egress

    Example:

    
    RP/0/RSP0/CPU0:router(config-if)# flow ipv6 monitor FMM-v6 sampler SAMP egress
    

    Configures IPv6 flow monitor, specifies a sampler for packets, and applies flow monitor on outgoing packets.

    Step 16

    commit

    ASR 9000 Ethernet LC Netflow

    ASR 9000 Ethernet LC Netflow exports using only the V9 (Version 9) format. V9 is the most flexible NetFlow export. This format is flexible and extensible. It provides the flexibility to support new fields and record types.

    Supported features

    • Flow monitor type of IPv4, IPv6, and MPLS can all be configured to an interface per direction.

    • Flow monitor type of MAP-T can be configured to an ingress interface.


      Note


      MAP-T is supported on 4th generation ASR 9000 line cards running Cisco IOS XR 64-bit.


    • Sampled Netflow. There is no support for full mode sampling.

    • Non-deterministic Random Sampling Algorithm.

    • Different traffic types, including unicast and multicast traffic.

    Punt path policer rate

    In order to achieve the maximum flow processing without overloading the LC CPU, all flow packets that are punted from each Network Processor are policed. This is done to avoid overloading the CPU. The aggregate punt policer rate is 100 Kpps for the ASR 9000 Ethernet LC. To avoid having flow packets arrive at the CPU at a huge rate, the punt path policer needs to be applied on all NPs that have the netflow feature applied on them.

    The Punt path policer rate can be calculated in following way:

    Calculating Punt path policer rate

    The policer rate of each NP_NetflowMonitor is 100k, where NP_NetflowMonitor is NP that has Netflow monitor configured to its associated interfaces; or any of its associated interfaces are member of a bundle interfaces or bundle sub-interfaces that has Netflow monitor applied.

    Determining NP for NP_NetflowMonitor or non - NP_NetflowMonitor:

    1. If any of its associated interface or sub-interface has any flow monitor applied, then it is NP_NetflowMonitor.

    2. If any of its interfaces is a member of a bundle interface or bundle sub-interface that has Netflow monitor configured, the NP is considered as non- NP_NetflowMonitor.

    ASR 9000 Ethernet Line Card Features

    • Ingress and egress NetFlow (IPv4, IPv6, MPLS) on L3 physical interface, L3-sub-interface, L3-Bundle interface, and L3 bundle sub-interface.

    • Ingress NetFlow (MAP-T) on L3 physical interface, L3-sub-interface, L3-Bundle interface, and L3 bundle sub-interface.


      Note


      MAP-T is supported on 4th generation ASR 9000 line cards running Cisco IOS XR 64-bit.


    • Configurable Sampling Rate 1:1 ~ 1: 65535

    • Up to 4 Sampling Rates (or Intervals) per line card.

    • Up to 8k (Large memory line card) or 4k (Small Memory line card) interfaces/subinterfaces

    • Configuration with flow monitor per Network Processor (NP).

    • Maximum aggregate NetFlow processing rate of 50k flow packets per seconds per line card, enforced by NetFlow Punt Policer on each NP.

    • NetFlow processing of 100Kpps, with CPU utilization not exceeding 50%.

    • Combined NetFlow processing of 100kpps per line card for the ASR 9000 Ethernet Line Cards and 200kpps per line card for the ASR 9000 Enhanced Ethernet Line Cards.

    • Up to 4 flow exporters per flow monitor.

    • Exporting packet rates of up to 100k flows per second.

    Configuration Examples for NetFlow

    These examples show NetFlow configurations:

    Sampler Map: Example

    This example shows how to create a new sampler map called “fsm1,” which samples 1 out of 65535 packets:

    
    RP/0/RSP0/CPU0:router# sampler-map fsm1 
    RP/0/RSP0/CPU0:router(config-sm)# random 1 out-of 65535
    RP/0/RSP0/CPU0:router(config)# exit
    

    Exporter Map: Example

    This example shows how to create a new flow exporter map called “fem1,” which uses the version 9 (V9) export format for NetFlow export packets. The data template flow-set is inserted into the V9 export packets once every 10 minutes, and the options interface table flow-set is inserted into the V9 export packet. The export packets are sent to the flow collector destination 10.1.1.1, where the source address is identical to the interface IP address of Loopback 0. The UDP destination port is 1024, and the DSCP value is 10:

    
    RP/0/RSP0/CPU0:router(config)# flow exporter-map fem1 
    RP/0/RSP0/CPU0:router(config-fem)# destination 10.1.1.1
    RP/0/RSP0/CPU0:router(config-fem)# source Loopback 0
    RP/0/RSP0/CPU0:router(config-fem)# transport udp 1024
    RP/0/RSP0/CPU0:router(config-fem)# dscp 10
    RP/0/RSP0/CPU0:router(config-fem)# exit
    RP/0/RSP0/CPU0:router(config-fem)# version v9
    RP/0/RSP0/CPU0:router(config-fem-ver)# template data timeout 600
    RP/0/RSP0/CPU0:router(config-fem-ver)# options interface-table
    RP/0/RSP0/CPU0:router(config-fem-ver)# exit
    

    This example shows how to create a new flow exporter map called “fem1,” which uses the version 9 (V9) export format for the NetFlow export packets. The data template flow-set is inserted into the V9 export packets once every 10 minutes, and the options sampler table flow-set is inserted into the V9 export packet. The export packets are sent to the flow collector destination 10.1.1.1, where the source address is identical to the interface IP address of Loopback 0. The UDP destination port is 1024, and the DSCP value is 10:

    
    RP/0/RSP0/CPU0:router(config)# flow exporter-map fem1 
    RP/0/RSP0/CPU0:router(config-fem)# destination 10.1.1.1
    RP/0/RSP0/CPU0:router(config-fem)# source Loopback 0
    RP/0/RSP0/CPU0:router(config-fem)# transport udp 1024
    RP/0/RSP0/CPU0:router(config-fem)# dscp 10
    RP/0/RSP0/CPU0:router(config-fem)# exit
    RP/0/RSP0/CPU0:router(config-fem)# version v9
    RP/0/RSP0/CPU0:router(config-fem-ver)# template data timeout 600
    RP/0/RSP0/CPU0:router(config-fem-ver)# options sampler-table
    RP/0/RSP0/CPU0:router(config-fem-ver)# exit
    

    Flow Monitor Map: Examples

    This example shows how to create a new flow monitor map with name “fmm1”. This flow monitor map references the flow exporter map “fem1,” and sets the flow cache attributes to 10000 cache entries. The active entries from the cache are aged every 30 seconds, while the inactive entries from the cache are aged every 15 seconds. The record map for this monitor map is IPv4:

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map fmm1
    RP/0/RSP0/CPU0:router(config-fmm)# record ipv4
    RP/0/RSP0/CPU0:router(config-fmm)# exporter fem1
    RP/0/RSP0/CPU0:router(config-fmm)# cache entries 10000
    RP/0/RSP0/CPU0:router(config-fmm)# cache timeout active 30
    RP/0/RSP0/CPU0:router(config-fmm)# cache timeout inactive 15
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    

    This example shows how to apply the flow monitor “fmm1”and the sampler “fsm1” to the TenGigE 0/0/0/0 interface in the ingress direction:

    
    RP/0/RSP0/CPU0:router(config)# interface TenGigE 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor fmm1 sampler fsm1 ingress 
    RP/0/RSP0/CPU0:router(config-if)# exit
    

    This example shows how to configure the NetFlow monitor to collect MPLS packets with IPv6 fields:

    
    RP/0/RSP0/CPU0:router# config
    RP/0/RSP0/CPU0:router(config)# flow exporter-map exp1
    RP/0/RSP0/CPU0:router(config-fem)# version v9
    RP/0/RSP0/CPU0:router(config-fem-ver)# options interface-table timeout 300
    RP/0/RSP0/CPU0:router(config-fem-ver)# options sampler-table timeout 300
    RP/0/RSP0/CPU0:router(config-fem-ver)# template data timeout 300
    RP/0/RSP0/CPU0:router(config-fem-ver)# template options timeout 300
    RP/0/RSP0/CPU0:router(config-fem-ver)# exit 
    RP/0/RSP0/CPU0:router(config-fem)# transport udp 12515
    RP/0/RSP0/CPU0:router(config-fem)# source Loopback0
    RP/0/RSP0/CPU0:router(config-fem)# destination 170.1.1.11
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-IPv6-fmm
    RP/0/RSP0/CPU0:router(config-fmm)# record mpls ipv6-fields labels 3
    RP/0/RSP0/CPU0:router(config-fmm)# exporter exp1
    RP/0/RSP0/CPU0:router(config-fmm)# cache entries 10000
    RP/0/RSP0/CPU0:router(config-fmm)# cache permanent
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    
    RP/0/RSP0/CPU0:router(config)# sampler-map FSM
    RP/0/RSP0/CPU0:router(config-sm)# random 1 out-of 65535
    RP/0/RSP0/CPU0:router(config-sm)# exit
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow mpls monitor MPLS-IPv6-fmm sampler FSM ingress
    

    MPLS Flow Monitor with IPv4 and IPv6 Support: Examples

    This configuration collects MPLS traffic, but no payload information is collected.

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-fmm
    RP/0/RSP0/CPU0:router(config-fmm)# record mpls labels 3
    RP/0/RSP0/CPU0:router(config-fmm)# cache permanent
    RP/0/RSP0/CPU0:router(config)# exit
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow mpls monitor MPLS-fmm sampler fsm ingress
    

    This configuration collects MPLS traffic with IPv4 payloads. It also collects MPLS traffic without IPv4 payloads, but it populates the IPv4 fields with zeros (0).

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-IPv4-fmm
    RP/0/RSP0/CPU0:router(config-fmm)# record mpls IPv4-fields labels 3
    RP/0/RSP0/CPU0:router(config-fmm)# cache permanent
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow mpls monitor MPLS-IPv4-fmm sampler fsm ingress
    

    This configuration collects MPLS traffic with IPv6 payloads. It also collects MPLS traffic without IPv6 payloads, but it populates the IPv6 fields with zeros (0).

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-IPv6-fmm
    RP/0/RSP0/CPU0:router(config-fmm)# record mpls IPv6-fields labels 3
    RP/0/RSP0/CPU0:router(config-fmm)# cache permanent
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow mpls monitor MPLS-IPv6-fmm sampler fsm ingress
    

    This configuration collects MPLS traffic with both IPv6 and IPv4 fields. It also collects MPLS traffic without IPv4 or IPv6 payloads, but it populates the IPv6 and IPv4 fields with zeros (0).

    
    RP/0/RSP0/CPU0:router(config)# flow monitor-map MPLS-IPv4-IPv6-fmm
    RP/0/RSP0/CPU0:router(config-fmm)# record mpls IPv4-IPv6-fields labels 3
    RP/0/RSP0/CPU0:router(config-fmm)# cache permanent
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    RP/0/RSP0/CPU0:router(config)# interface gigabitEthernet 0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow mpls monitor MPLS-IPv4-IPv6-fmm sampler fsm ingress
    

    Note


    Flow records are exported using the Version 9 format.


    Destination-based NetFlow Accounting: Example

    This example shows how to configure an IPv4 flow record for destination-based NetFlow accounting:

    
    RP/0/RSP0/CPU0:router# configure
    RP/0/RSP0/CPU0:router(config)# flow exporter-map fem
    RP/0/RSP0/CPU0:router(config-fem)#  source Loopback0
    RP/0/RSP0/CPU0:router(config-fem)#  destination 80.80.80.5
    RP/0/RSP0/CPU0:router(config-fem)#  transport udp 1025
    RP/0/RSP0/CPU0:router(config-fem)# exit
    RP/0/RSP0/CPU0:router(config)# flow monitor-map map1
    RP/0/RSP0/CPU0:router(config-fmm)# record ipv4 destination
    RP/0/RSP0/CPU0:router(config-fmm)# exporter fem
    RP/0/RSP0/CPU0:router(config-fmm)# exit
    RP/0/RSP0/CPU0:router(config)# interface pos 0/1/0/0
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor map1 ingress
    RP/0/RSP0/CPU0:router(config-if)# end
    RP/0/RSP0/CPU0:router#  show flow monitor-map map1
    

    This example displays the output for the show flow monitor-map command:

    
    RP/0/RSP0/CPU0:router#  show flow monitor-map map2
    Tue Jan 22 00:15:53.424 PST
    
    Flow Monitor Map : map2
    -------------------------------------------------
    Id:                                1
    RecordMapName:    ipv6-destination
    CacheAgingMode:    Normal
    CacheMaxEntries:    65535
    CacheActiveTout:     1800 seconds
    CacheInactiveTout:  15 seconds
    CacheUpdateTout:    N/A
    
    

    Configure BGP to display BGP attributes in netflow record: Example

    This example shows how to configure BGP to display BGP attributes in netflow record:

    
    
    RP/0/RSP0/CPU0:router(config)# interface loopback 1
    RP/0/RSP0/CPU0:router(config-if)# ipv4 address 5.5.5.5 255.255.255.255.
    RP/0/RSP0/CPU0:router(config-if)# exit
    RP/0/RSP0/CPU0:router(config)# router bgp 200
    RP/0/RSP0/CPU0:router(config-bgp)# bgp router-id 5.5.5.5
    RP/0/RSP0/CPU0:router(config-bgp)# address-family ipv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-af)# exit
    RP/0/RSP0/CPU0:router(config-bgp)# address-family vpnv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-af)# exit
    RP/0/RSP0/CPU0:router(config-bgp)# neighbor 6.6.6.6
    RP/0/RSP0/CPU0:router(config-bgp-nbr)# remote-as 200
    RP/0/RSP0/CPU0:router(config-bgp-nbr)# address-family ipv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-nbr-af)# route-policy craft in
    RP/0/RSP0/CPU0:router(config-bgp-nbr-af)# route-policy craft out
    RP/0/RSP0/CPU0:router(config-bgp-nbr)# exit
    RP/0/RSP0/CPU0:router(config-bgp-nbr)# address-family vpnv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-nbr-af)# exit
    RP/0/RSP0/CPU0:router(config-bgp-nbr)# exit
    RP/0/RSP0/CPU0:router(config-bgp)# vrf vrf1
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# rd 100:1
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# label-allocation-mode per-vrf
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# address-family ipv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-vrf-af)# redistribute connected
    RP/0/RSP0/CPU0:router(config-bgp-vrf-af)# redistribute static
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# exit
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# neighbor 196.1.1.2
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr)# remote-as 100
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr)# address-family ipv4 unicast
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr-af)# route-policy craft in
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr-af)# route-policy craft out
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr-af)# exit
    RP/0/RSP0/CPU0:router(config-bgp-vrf-nbr)# exit
    RP/0/RSP0/CPU0:router(config-bgp-vrf)# exit
    RP/0/RSP0/CPU0:router(config-bgp)# exit
    RP/0/RSP0/CPU0:router(config)# exit
    

    Limitations

    • When the netflow configuration for VPNv4 or VPNv6 is applied in label allocation mode (either per prefix or per CE) then the IPv4 or IPv6 netflow do not capture the BGP attributes such as BGP nh, BGP AS numbers and prefix lengths; these attributes values are set to zero.

    • Under VPNv4 and VPNv6 label allocation mode per vrf, BGP attributes, source and destination lengths are captured but AS numbers are not captured.
    • Netflow is not supported on BNG subscriber.


    Note


    • To enter label mode per VRF, you must type the label-allocation-mode per-vrf command.

    • To enter label mode per CE, you must type the label-allocation-mode per-ce command.

    • To enter label mode per prefix, you must type the label-allocation-mode per-prefix command.


    Netflow over BVI: Example

    This example shows how to configure netflow over BVI:

    
    RP/0/RSP0/CPU0:router# configure
    RP/0/RSP0/CPU0:router(config)# l2vpn
    RP/0/RSP0/CPU0:router(config-l2vpn)# bridge group bg1
    RP/0/RSP0/CPU0:router(config-l2vpn-bg)# bridge-domain bd1
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface Bundle-Ether100
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-ac)# exit
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface TenGigE0/0/0/0
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-ac)# exit
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# routed interface BVI 1
    RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface BVI 1
    RP/0/RSP0/CPU0:router(config-if)# ipv4 address 11.11.11.11 255.255.255.0
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor FMM sampler SAMP ingress
    RP/0/RSP0/CPU0:router(config-if)# flow ipv4 monitor FMM sampler SAMP egress
    RP/0/RSP0/CPU0:router(config-if)# flow ipv6 monitor FMM-v6 sampler SAMP ingress
    RP/0/RSP0/CPU0:router(config-if)# flow ipv6 monitor FMM-v6 sampler SAMP egress
    RP/0/RSP0/CPU0:router(config-if)# interface TenGigE0/0/0/0
    RP/0/RSP0/CPU0:router(config-if)# l2transport
    RP/0/RSP0/CPU0:router(config-if)# interface Bundle-Ether100
    RP/0/RSP0/CPU0:router(config-if)# l2transport
    RP/0/RSP0/CPU0:router(config-if)# end
    

    Drop Codes on NetFlow

    The following table lists supported drop codes on NetFlow, when a node is unable to forward the packets due to various reasons listed here. In such cases, the following drop codes are exported instead of output interface index.

    Table 5. Drop Codes on NetFlow

    Drop Reason(s)

    IPFIX/V9 Code

    Unknown

    128

    ACL Deny

    129

    Adjacency

    132

    Bad Header Checksum

    134

    Bad TTL

    137

    Additional References

    These sections provide references related to interface configuration.

    Related Documents

    Related Topic

    Document Title

    Cisco IOS XR interface configuration commands

    Interface and Hardware Component Command Reference for Cisco ASR 9000 Series Routers

    Initial system bootup and configuration information for a router using the Cisco IOS XR software.

    Cisco ASR 9000 Series Aggregation Services Router Getting Started Guide

    Information about user groups and task IDs

    Interface and Hardware Component Command Reference for Cisco ASR 9000 Series Routers

    Information about configuring interfaces and other components from a remote Craft Works Interface (CWI) client management application.

    Cisco Craft Works Interface User Guide

    Standards

    Standards

    Title

    No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

    MIBs

    MIBs

    MIBs Link

    Text for MIBs: To locate and download MIBs using Cisco IOS XR software, use the MIB Locator found at the Cisco Feature Navigator.

    RFCs

    RFCs

    Title

    3954

    NetFlow services export protocol Version 9.

    7011

    IPFIX protocol

    Technical Assistance