For example, the following command defines a cache that will maintain flow records for TCP flows on the network, capturing IP source and destination addresses, source and destination port numbers and the bytes transferred and sending flow records to address 10.0.0.162:
curl -H "Content-Type:application/json" -X PUT --data \ '{"keys":"ipsource,ipdestination,tcpsourceport,tcpdestinationport", \ "value":"bytes", "ipfixCollectors":["10.0.0.162"]}' \ http://localhost:8008/flow/tcp/jsonRunning Wireshark's tshark command line utility on 10.0.0.162 verifies that flows are being received:
# tshark -i eth0 -V udp port 4739 Running as user "root" and group "root". This could be dangerous. Capturing on lo Frame 1 (134 bytes on wire, 134 bytes captured) Arrival Time: Aug 24, 2013 10:44:06.096082000 [Time delta from previous captured frame: 0.000000000 seconds] [Time delta from previous displayed frame: 0.000000000 seconds] [Time since reference or first frame: 0.000000000 seconds] Frame Number: 1 Frame Length: 134 bytes Capture Length: 134 bytes [Frame is marked: False] [Protocols in frame: eth:ip:udp:cflow] Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00) Destination: 00:00:00_00:00:00 (00:00:00:00:00:00) Address: 00:00:00_00:00:00 (00:00:00:00:00:00) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: 00:00:00_00:00:00 (00:00:00:00:00:00) Address: 00:00:00_00:00:00 (00:00:00:00:00:00) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 10.0.0.162 (10.0.0.162), Dst: 10.0.0.162 (10.0.0.162) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 120 Identification: 0x0000 (0) Flags: 0x02 (Don't Fragment) 0.. = Reserved bit: Not Set .1. = Don't fragment: Set ..0 = More fragments: Not Set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x2532 [correct] [Good: True] [Bad : False] Source: 10.0.0.162 (10.0.0.162) Destination: 10.0.0.162 (10.0.0.162) User Datagram Protocol, Src Port: 56109 (56109), Dst Port: ipfix (4739) Source port: 56109 (56109) Destination port: ipfix (4739) Length: 100 Checksum: 0x15b9 [validation disabled] [Good Checksum: False] [Bad Checksum: False] Cisco NetFlow/IPFIX Version: 10 Length: 92 Timestamp: Aug 24, 2013 10:44:06.000000000 ExportTime: 1377366246 FlowSequence: 74 Observation Domain Id: 0 Set 1 Template FlowSet: 2 FlowSet Length: 40 Template (Id = 258, Count = 8) Template Id: 258 Field Count: 8 Field (1/8) .000 0000 1000 0010 = Type: exporterIPv4Address (130) Length: 4 Field (2/8) .000 0000 1001 0110 = Type: flowStartSeconds (150) Length: 4 Field (3/8) .000 0000 1001 0111 = Type: flowEndSeconds (151) Length: 4 Field (4/8) .000 0000 0000 1000 = Type: IP_SRC_ADDR (8) Length: 4 Field (5/8) .000 0000 0000 1100 = Type: IP_DST_ADDR (12) Length: 4 Field (6/8) .000 0000 1011 0110 = Type: TCP_SRC_PORT (182) Length: 2 Field (7/8) .000 0000 1011 0111 = Type: TCP_DST_PORT (183) Length: 2 Field (8/8) .000 0000 0101 0101 = Type: BYTES_TOTAL (85) Length: 8 Set 2 DataRecord (Template Id): 258 DataRecord Length: 36 Flow 1 ExporterAddr: 10.0.0.20 (10.0.0.20) [Duration: 65.000000000 seconds] StartTime: Aug 24, 2013 10:43:01.000000000 EndTime: Aug 24, 2013 10:44:06.000000000 SrcAddr: 10.0.0.16 (10.0.0.16) DstAddr: 10.0.0.20 (10.0.0.20) SrcPort: 48859 DstPort: 443 Octets: 228045The output demonstrates how the flow cache definition is exported as an IPFIX Template and the individual flow records are exported as one or more Flow entries within a DataRecord.
What might not be apparent is that the single configuration command to sFlow-RT enabled network wide monitoring of TCP connections, even in a network containing hundreds of physical switches, thousands of virtual switches, different switch models, multiple vendors etc. In contrast, if devices maintain their own flow caches then each switch needs to be re-configured whenever monitoring requirements change - typically a time consuming and complex manual process, see Software defined analytics.
While IPFIX provides a useful method of exporting IP flow records to legacy monitoring solutions, logging flow records is only a small subset of the applications for sFlow analytics. The real-time networking, server, and application analytics provided by sFlow-RT delivers actionable data through APIs and can easily be integrated with a wide variety of on-site and cloud, orchestration, DevOps and Software Defined Networking (SDN) tools.
No comments:
Post a Comment