blob: 6f77f6522c7f8d7d193f0c07fed047bbf027f299 [file] [log] [blame]
Bertrand Jacquin93b227d2016-06-04 15:11:10 +01001When NetScaler application switch is used as L3+ switch, informations
2regarding the original IP and TCP headers are lost as a new TCP
3connection is created between the NetScaler and the backend server.
4
5NetScaler provides a feature to insert in the TCP data the original data
6that can then be consumed by the backend server.
7
8Specifications and documentations from NetScaler:
9 https://support.citrix.com/article/CTX205670
10 https://www.citrix.com/blogs/2016/04/25/how-to-enable-client-ip-in-tcpip-option-of-netscaler/
11
12When CIP is enabled on the NetScaler, then a TCP packet is inserted just after
13the TCP handshake. This is composed as:
14
15 - CIP magic number : 4 bytes
16 Both sender and receiver have to agree on a magic number so that
17 they both handle the incoming data as a NetScaler Client IP insertion
18 packet.
19
20 - Header length : 4 bytes
21 Defines the length on the remaining data.
22
23 - IP header : >= 20 bytes if IPv4, 40 bytes if IPv6
24 Contains the header of the last IP packet sent by the client during TCP
25 handshake.
26
27 - TCP header : >= 20 bytes
28 Contains the header of the last TCP packet sent by the client during TCP
29 handshake.