Just found a limitation and a bug when using Flexible NetFlow in Cisco 4500 running IOS XE and thought of sharing it. We were working with one of our customers to enable Flexible NetFlow on Cisco 4500. Everything went well, but the record command was not being accepted. We went over the issue over a couple of days, and after we checked with Cisco TAC, we found our solution. Let me tell you what happened.
The Flexible NetFlow configuration requires three steps:
- Create a flow exporter and a flow record.
- Create a flow monitor and associate the exporter and record with this monitor.
- Associate the flow monitor with an interface.
The Flexible NetFlow in Cisco 4500 requires you to configure your own “record” since there are no predefined ones available like in some other IOS. The creating of a flow record involves the below:
flow record nfa-record
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
collect interface input
collect interface output
collect counter bytes
collect counter packets
Note the bold text—we will get to that soon. After you have created this record and associated it with the monitor, the monitor has to be attached to every L3 interface that needs to be monitored. This is where the limitation and the bug pops up. When trying to associate the monitor with an interface, let’s see what happens:
switch(config-if)# flow monitor NFAmonitor input
“intf output: cannot be supported as match field. Flow record fields can’t be supported with the monitor type“
What does this mean? Simply that the statement collect interface output used when creating the record is not supported. This is a serious limitation as it is this line that helps capture the output interface for a traffic conversation. You need to remove that line from the flow record configuration and then attach the flow record to the interface. Result: Only the IN traffic across the interface is captured and not the OUT traffic.
Now, let’s have a look at the bug. I would not call it a bug, actually, but an issue of providing a clearer statement. The scenario is:
switch(config-if)# flow monitor NFAmonitor output
“could not be added to interface due to invalid sub-traffic type: 0”
Makes no sense? I hope Cisco will change this to a show the same error as with the input monitor. But, more than that, I hope Cisco will arrange to get records with the collect interface output statement working on Cisco 4500 as the lack of support for this takes away the capability to view OUT traffic for an interface. Let’s hope for the best.