How can I verify Netflow Data on a Linux Harvester with Wireshark?
Release: RAIB1H99000-9.3-Network Flow Analysis-Interface Bundle-Hardware
1. Log into a putty session on the RedHat Harvester as root or sudo su.
2. Install wireshark by running the command below and follow the prompts(requires access to the internet or local yum repository):
"yum install wireshark"
3. Find the name of the NIC that Netflow data is being sent to by running "ifconfig" like below is ens33, this name will be used in the tshark -i switch in the examples below:
4. To run a capture for all Netflow traffic coming into the harvester run the command below, using the name of your NIC in the -i flag.
tshark -f"port 9995" -i ens33 -F pcap -w /tmp/netflow.pcap
5. To filter to a specific router IP address you can use a command like below and specify the IP address of the router in the host filter:
tshark -f"port 9995 and host 10.1.1.1" -i ens33 -F pcap -w /tmp/test.pcap
6. Allow the pcap to run for at least 5 minutes, to cancel it enter "ctrl c".
7. Move the file via WinScpt or Filezilla over to a Windows computer which has Wireshark installed and open the file.
8. Click Analyze->Decode As...
9. Click the + sign and change the drop down menu to "Destination (->9995)" and select "CFLOW" on the right and click OK.
Note if this is SFLOW data, decode as SFLOW instead of CFLOW.
10. Verify that there is a template and the flows have been decode, by expanding where you see a line like "Cisco Netflow/IPFIX" and see if you can see Flows listed below this. If there is No Template Found, you will not be able to see the flows below this and you will see a message stating "No Template Found". If this is the case, you will need to get a longer pcap in order to capture the template.
11. To find the data gram that has the Netflow template you can enter "cflow.template_id" in the Filter field and it will filter down to only data grams that contain a Netflow Template.
Here you can check to see if the required NetFlow fields are being sent in the template.
If you expand the section below which says "Template (ID = ....)" You can see a list of the fields being sent and match them up with the required fields from above.
12. To view the actual values for these fields being sent, clear the cflow.template_id filter and click on any other data gram.
Expand where it says "Cisco NetFlow/IPFIX" and expand one of the Flowsets until you can see a list of the fields and values like below, make note that the "FlowSet Id: (Data)" value matches the template ID, like in this case it is 256, to ensure you are looking at the correct flow:
For steps on how to do this on Windows see the link below:
The fields in the template correspond to each filed in the actual flows, but the names may be slightly different.
For example for most Cisco devices:
1 - IN_BYTES in the template is the same as Octets in the flow.
4 - PROTOCOL in the template is the same as Protocol in the flows.
7 - L4_SRC_PORT in the template is the same as SrcPort in the flows.
8 - IPV4_SRC_ADDR in the template is the same as SrcAddr in the flows.
10 - INPUT_SNMP in the templates is the same as InputInt in the flows and will have the raw ifindex of the IN interface.
11 - L4_DST_PORT in the templates is the same as DstPort in the flows.
12 - IPV4_DST_ADDR in the templates is the same as DstAddr in the flows.
14 - OUTPUT_SNMP in the templates is the same as OutputIn in the flows and will have the raw ifindex of the OUT interface.