Introduction
Cisco WAAS automatic discovery provides automatic discovery of accelerators, mitigating the need for complex overlay networks and helping network infrastructure teams get the most from their investment in network design. Auto-discovery allows peer devices to discover each other dynamically and does not require that you preconfigure WAE pairs. Auto-discovery is a multi-WAE end-to-end mechanism that defines a protocol between the WAEs that discovers a pair of peer WAEs for a given connection.
Auto Discovery
Auto-discovery allows peer devices to discover each other dynamically and does not require that you preconfigure WAE pairs. Auto-discovery is a multi-WAE end-to-end mechanism that defines a protocol between the WAEs that discovers a pair of peer WAEs for a given connection.
WAE devices discover each other automatically during the TCP handshake. TCP options field (0x21) in the initial packets allow devices to get to know about the device on other end. Any intermediate WAE's are in between the path will simply pass through the optimized flows.
To verify Auto-Discovery properly operates and peer WAEs "find" each other we need to trace the traffic between the devices. Since traffic is transparently intercepted and redirected, tools such as ping and trace route are not sufficient. We need to trace the traffic and look for specific TCP options in the captured traffic.
Verify Auto Discovery
To verify auto discovery obtain the traces with Ethereal. These are traces captured between the branch WAE and the router.
Client IP address is 10.52.207.59
Server IP address is 10.52.207.44
Note: that the WAE spoofs the client IP address.
Capture 1: Client sends TCP SYN to server, packet has TCP option 0x21 (33) (marked in red) set by the branch WAE.
No. Time Source Destination Protocol Info 65 34.916 * *10.52.207.59 10.52.207.44 TCP 3914 > http [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460 Frame 65 (74 bytes on wire, 74 bytes captured) Ethernet II, Src: 192.168.10.2 (00:16:c8:5f:38:09), Dst: 192.168.10.1 (00:02:55:b7:60:a8) Internet Protocol, Src: 10.52.207.59 (10.52.207.59), Dst: 10.52.207.44 (10.52.207.44) Transmission Control Protocol, Src Port: 3914 (3914), Dst Port: http (80), Seq: 0, Ack: 0, Len: 0 Source port: 3914 (3914) Destination port: http (80) Sequence number: 0 (relative sequence number) Header length: 40 bytes Flags: 0x0002 (SYN) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...0 .... = Acknowledgment: Not set .... 0... = Push: Not set .... .0.. = Reset: Not set .... ..1. = Syn: Set .... ...0 = Fin: Not set Window size: 65535 Checksum: 0x8c91 [correct] Options: (20 bytes) Maximum segment size: 1460 bytes NOP NOP SACK permitted Unknown (0x21) (12 bytes) |
Capture 2: Server responds to client SYN with SYN/ACK. Data Center WAE sets TCP option 0x21 (33).
No. Time Source Destination Protocol Info 66 *34.997 *10.52.207.44 10.52.207.59 TCP http > 3914 [SYN, ACK] Seq=0 Ack=1 Win=17184 Len=0 MSS=1432 Frame 66 (74 bytes on wire, 74 bytes captured) Ethernet II, Src: 192.168.10.1 (00:02:55:b7:60:a8), Dst: 192.168.10.2 (00:16:c8:5f:38:09) Internet Protocol, Src: 10.52.207.44 (10.52.207.44), Dst: 10.52.207.59 (10.52.207.59) Transmission Control Protocol, Src Port: http (80), Dst Port: 3914 (3914), Seq: 0, Ack: 1, Len: 0 Source port: http (80) Destination port: 3914 (3914) Sequence number: 0 (relative sequence number) Acknowledgement number: 1 (relative ack number) Header length: 40 bytes Flags: 0x0012 (SYN, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 0... = Push: Not set .... .0.. = Reset: Not set .... ..1. = Syn: Set .... ...0 = Fin: Not set Window size: 17184 Checksum: 0x6fab [correct] Options: (20 bytes) Maximum segment size: 1432 bytes NOP NOP SACK permitted Unknown (0x21) (12 bytes) |
Capture 3: Branch WAE responds to data center WAE with ACK. Note the sequence numbers are independent from those reported in the SYN and SYN/ACK packets.
No. Time Source Destination Protocol Info 67 34.998 10.52.207.59 10.52.207.44 TCP [TCP ACKed lost segment] [TCP Previous segment lost] 3914 > http [ACK] Seq=2147483649 Ack=2147483649 Win=181 Len=0 TSV=764895246 TSER=0 Frame 67 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: 192.168.10.2 (00:16:c8:5f:38:09), Dst: 192.168.10.1 (00:02:55:b7:60:a8) Internet Protocol, Src: 10.52.207.59 (10.52.207.59), Dst: 10.52.207.44 (10.52.207.44) Transmission Control Protocol, Src Port: 3914 (3914), Dst Port: http (80), Seq: 2147483649, Ack: 2147483649, Len: 0 Source port: 3914 (3914) Destination port: http (80) Sequence number: 2147483649 (relative sequence number) Acknowledgement number: 2147483649 (relative ack number) Header length: 44 bytes Flags: 0x0010 (ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 0... = Push: Not set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 181 Checksum: 0x5d1f [correct] Options: (24 bytes) NOP NOP Time stamp: tsval 764895246, tsecr 0 Unknown (0x21) (12 bytes) |
Once TCP proxy starts (and flows are optimized) the sequence and acknowledgement numbers will be adjusted, such that they DO NOT match the original flow numbers. This action prevents the optimized packets from being accepted by the origin client or server.
Capture 4: Client responds to the server with final ACK. Options between WAEs are still present. Note the sequence numbers are the same as those between the WAEs.
No. Time Source Destination Protocol Info 68 35.002 10.52.207.59 10.52.207.44 HTTP Continuation or non-HTTP traffic Frame 68 (88 bytes on wire, 88 bytes captured) Ethernet II, Src: 192.168.10.2 (00:16:c8:5f:38:09), Dst: 192.168.10.1 (00:02:55:b7:60:a8) Internet Protocol, Src: 10.52.207.59 (10.52.207.59), Dst: 10.52.207.44 (10.52.207.44) Transmission Control Protocol, Src Port: 3914 (3914), Dst Port: http (80), Seq: 2147483649, Ack: 2147483649, Len: 10 Source port: 3914 (3914) Destination port: http (80) Sequence number: 2147483649 (relative sequence number) Next sequence number: 2147483659 (relative sequence number) Acknowledgement number: 2147483649 (relative ack number) Header length: 44 bytes Flags: 0x0018 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 181 Checksum: 0x61a3 [correct] Options: (24 bytes) NOP NOP Time stamp: tsval 764895250, tsecr 0 Unknown (0x21) (12 bytes) |
Capture 5: Data flows between client and server, no WAAS options are set.
No. Time Source Destination Protocol Info 69 35.004 10.52.207.59 10.52.207.44 HTTP Continuation or non-HTTP traffic Frame 69 (278 bytes on wire, 278 bytes captured) Ethernet II, Src: 192.168.10.2 (00:16:c8:5f:38:09), Dst: 192.168.10.1 (00:02:55:b7:60:a8) Internet Protocol, Src: 10.52.207.59 (10.52.207.59), Dst: 10.52.207.44 (10.52.207.44) Transmission Control Protocol, Src Port: 3914 (3914), Dst Port: http (80), Seq: 2147483659, Ack: 2147483649, Len: 212 Source port: 3914 (3914) Destination port: http (80) Sequence number: 2147483659 (relative sequence number) Next sequence number: 2147483871 (relative sequence number) Acknowledgement number: 2147483649 (relative ack number) Header length: 32 bytes Flags: 0x0018 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 181 Checksum: 0x24ca [correct] Options: (12 bytes) NOP NOP Time stamp: tsval 764895252, tsecr 0 |
Related Information
Cisco WAAS: Basic Troubleshooting and Gathering Information
WAAS Express Central Manager Alarms and Debugging