Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications



Similar documents
Load Balancing and Sessions. C. Kopparapu, Load Balancing Servers, Firewalls and Caches. Wiley, 2002.

Layer 4-7 Server Load Balancing. Security, High-Availability and Scalability of Web and Application Servers

Server Traffic Management. Jeff Chase Duke University, Department of Computer Science CPS 212: Distributed Information Systems

Understanding Slow Start

Deployment Guide Microsoft IIS 7.0

LinkProof And VPN Load Balancing

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Managing Virtual Servers

FortiOS Handbook - Load Balancing VERSION 5.2.2

Deploying the Barracuda Load Balancer with Office Communications Server 2007 R2. Office Communications Server Overview.

Server Iron Hands-on Training

Availability Digest. Redundant Load Balancing for High Availability July 2013

High Performance VPN Solutions Over Satellite Networks

Deployment Guide AX Series with Citrix XenApp 6.5

Application Delivery Networking

ENTERPRISE DATA CENTER CSS HARDWARE LOAD BALANCING POLICY

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Microsoft Windows Server 2008 R2 Remote Desktop Services

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

WAN Optimization, Web Cache, Explicit Proxy, and WCCP. FortiOS Handbook v3 for FortiOS 4.0 MR3

ExamPDF. Higher Quality,Better service!

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP LTM for SIP Traffic Management

Load Balancing 101: Firewall Sandwiches

Using IPM to Measure Network Performance

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

Packet Matching. Paul Offord, Advance7

High Availability HTTP/S. R.P. (Adi) Aditya Senior Network Architect

Advanced Computer Networks. Layer-7-Switching and Loadbalancing

What's New in Cisco ACE Application Control Engine Module for the Cisco Catalyst 6500 and Cisco 7600 Series Software Release 2.1.0

VERITAS Cluster Server Traffic Director Option. Product Overview

IERG 4080 Building Scalable Internet-based Services

Chapter 1 Load Balancing 99

Proxies. Chapter 4. Network & Security Gildas Avoine

Introduction to Computer Security Benoit Donnet Academic Year

Content Switching Module for the Catalyst 6500 and Cisco 7600 Internet Router

Avaya P333R-LB. Load Balancing Stackable Switch. Load Balancing Application Guide

Load Balancing. FortiOS Handbook v3 for FortiOS 4.0 MR3

APV9650. Application Delivery Controller

A Guide to Application delivery Optimization and Server Load Balancing for the SMB Market

Domain Name System :49:44 UTC Citrix Systems, Inc. All rights reserved. Terms of Use Trademarks Privacy Statement

GLOBAL SERVER LOAD BALANCING WITH SERVERIRON

CS514: Intermediate Course in Computer Systems

Deploying the BIG-IP System with Oracle E-Business Suite 11i

Network Security TCP/IP Refresher

Multi-Homing Security Gateway

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v10 with Microsoft IIS 7.0 and 7.5

How To Use Netscaler As An Afs Proxy

Alteon Web OS. Intelligent Internet. What s New in Alteon Web OS Alteon Web OS Benefits. Product Brief

How to Make the Client IP Address Available to the Back-end Server

DEPLOYMENT GUIDE. Deploying the BIG-IP LTM v9.x with Microsoft Windows Server 2008 Terminal Services

DEPLOYMENT GUIDE. Deploying F5 for High Availability and Scalability of Microsoft Dynamics 4.0

DEPLOYMENT GUIDE Version 1.1. DNS Traffic Management using the BIG-IP Local Traffic Manager

Prerequisites. Creating Profiles

Load Balancing. Final Network Exam LSNAT. Sommaire. How works a "traditional" NAT? Un article de Le wiki des TPs RSM.

DMZ Network Visibility with Wireshark June 15, 2010

SiteCelerate white paper

Improving DNS performance using Stateless TCP in FreeBSD 9

Deploying F5 for Microsoft Office Web Apps Server 2013

Application Delivery Controller (ADC) Implementation Load Balancing Microsoft SharePoint Servers Solution Guide

Content Delivery Networks

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

Integrating the F5 BigIP with Blackboard

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP system v10 with Microsoft Exchange Outlook Web Access 2007

Topics. 1. What is load balancing? 2. Load balancing techniques 3. Load balancing strategies 4. Sessions 5. Elastic load balancing

Configuring Health Monitoring

First Midterm for ECE374 03/24/11 Solution!!

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP

Building a Systems Infrastructure to Support e- Business

IP Addressing A Simplified Tutorial

Question: 3 When using Application Intelligence, Server Time may be defined as.

Background. Industry: Challenges: Solution: Benefits: APV SERIES CASE STUDY Fuel Card Web Portal

TESTING & INTEGRATION GROUP SOLUTION GUIDE

Web Caching and CDNs. Aditya Akella

Deployment Guide AX Series with Active Directory Federation Services 2.0 and Office 365

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP SYSTEM WITH MICROSOFT INTERNET INFORMATION SERVICES (IIS) 7.0

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong

21.4 Network Address Translation (NAT) NAT concept

Content Distribution Networks (CDN)

Microsoft Office Communications Server 2007 & Coyote Point Equalizer Deployment Guide DEPLOYMENT GUIDE

NEFSIS DEDICATED SERVER

Firewalls und IPv6 worauf Sie achten müssen!

Ranch Networks for Hosted Data Centers

IP - The Internet Protocol

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP LTM SYSTEM WITH MICROSOFT WINDOWS SERVER 2008 TERMINAL SERVICES

DEPLOYMENT GUIDE DEPLOYING F5 WITH MICROSOFT WINDOWS SERVER 2008

Internet Protocol Version 6 (IPv6)

UPPER LAYER SWITCHING

Deployment Guide May-2015 rev. a. APV Oracle PeopleSoft Enterprise 9 Deployment Guide

Virtual private network. Network security protocols VPN VPN. Instead of a dedicated data link Packets securely sent over a shared network Internet VPN

Radware s AppDirector and Microsoft Windows Terminal Services 2008 Integration Guide

CSCI 454/554 Computer and Network Security. Topic 8.1 IPsec

Deploying F5 with Microsoft Active Directory Federation Services

AppDirector Load balancing IBM Websphere and AppXcel

Microsoft Lync Server 2010

Transcription:

Single Pass Load Balancing with Session Persistence in IPv6 Network C. J. (Charlie) Liu Network Operations Charter Communications

Load Balancer Today o Load balancing is still in use today. It is now considered a feature of Application Delivery Controllers (ADC) o In a server farm serving mainstream applications, a load balancer is employed to direct packets of an application session to a sever that is available and in healthy state o For session persistence, all packets in the same session will go through a load balancer onto the same server o The load balancer is always in the path of all packets from the client to the server o The load balancer is also in the path of all packets from the server back to the client, except in the case of using DSR (direct server return) technique o In a network topology where a load balancer is not directly connected to servers, a server farm throughput is limited by the load balancer s I/O capacity

Session Persistence Issue with MegaProxy IPv4 Based Exchange Proxy Servers 1 1 From Proxy1 s IPv4 Load Balancer 2 From Proxy2 s IPv4 2 When an user opens multiple connections, the connections can be distributed across multiple proxy servers The proxy server that makes the request to the destination web site may be different for each connection The LB at the destination web site see the IP address of the proxy server as the source IP address If the LB performs session persistence based on the source IPv4 address, the connections from the same user may be sent to different servers, causing the application transaction to break It can also happen that the LB directs all connections from a given proxy server to the same application server, and does not properly balance the traffic load Most prevalent method is for load balancer to to employ delay binding technique, and wait for a web server to set cookie in its reply using delay binding method Delay binding can cost LB performance in terms of the number of concurrent connections it can support, and adds latency to request-reply transaction

Megaproxy Issue in Web Applications o Use of Megaproxy in ISPs and enterprises can lead to session persistence and load balancing problem without the use of cookie switching or URL switching in a load balancer (LB) Ø In web applications, a LB can use URL or cookie in a HTTP request to select appropriate server o In order to examine the application packets, the load balancer (LB) must postpone the binding of a TCP connection to a server until after the application request is received Delayed Binding Ø The LB completes the TCP connection setup before the client on behalf of the server Ø Once the HTTP request is received, the LB selects the server, establishes a connection with the server, and forwards the HTTP request Ø The LB must translate the sequence number of all reply packets from the server to match what the LB used on the client-side connection Ø The LB must also change the ACK sequence number for packets from client to the server o Delayed Binding can impact the performance of the LB, because of the need for sequence number translation o Delayed Binding can also increase the response time of user s request on application

E-Commerce Applications with Session Persistence o In shopping-cart applications, the load balancer needs to find a way to associate the first HTTPS connection request to the earlier HTTP request received Ø Source IP-based persistence won t work well when dealing with mega proxy sever Ø Use cookie switching to address the mega proxy issue Ø The moment an user transitions from HTTP to HTTPS, the load balancer can no longer read the cookie because it s encrypted o Current practices for HTTP to HTTPS transition Ø Use a shared back-end storage or database system. When the SSL session is initiated, the SSL server gets the shopping-cart information from the back-end database and processes it. It requires the server with the shopping cart writes the information to a back-end database Ø Using middleware software that makes all the servers look like one big virtual server to the application. A cookie is used to track the user identification. Once the app receives HTTPS request, it uses the cookie to retrieve that data structure that contains the context Ø Special configuration at the load balancer Bind a different port number on the VIP to port 443 of a different real server When the real server generates the Web page reply that contains the checkout button, it must link its own port number to that button (by generating hyperlink for the checkout button) Ø Using SSL Accelerator A SSL acceleration product terminate SSL connections and converts the HTTPS request to HTTP request The load balancer redirects requests received on port 443 to the SSL accelerator Maintain session persistence via Cookie or other method that is no longer encrypted

Use Destination Header for Session Persistence o For IPv6 based application traffic, a new mechanism is available for load balancing and session persistence o The IPv6 Destination Header can be used to minimize the need of delayed binding for session persistence, boost the performance of LB and speed up application response time o Using IPv6 Destination Header, shopping-cart applications can carry forward the state as an user transitions from HTTP to HTTPS requests so that all connections from a given user are sent to the same server for both HTTP and HTTPS traffic Ø We can avoid the need of a back-end database, or middleware, or complicated configuration at the load balancer to achieve session persistence Ø It can help a load balancer with the same horse power to handle more connections, and reduce latency to complete transaction

New Options for IPv6 Destination Options Header o The Destination Options header is used to carry information that needs to be examined only by a packet s destination node(s). The Destination Options header is identified by a Next Header value of 60 in the immediately preceding header. (Ref: RFC 2460) o LBSP Option to be placed in Destination Options Header for every IPv6 packet exchange between a client and an application server that requires load balancing and/or session persistence for scalability, high availability, manageability, and security Ø The LBSP option data is preserved in traversing ISP or enterprise proxy servers Ø The LBSP option data is not encrypted in HTTPS request and is visible to a load balancer in HTTP to HTTPS request transition

IPv6 Destination Options Header Format (from RFC 2460) Next Header Hdr Ext Len Options o Next Header: 8-bit selector. Identifies the type of header immediately following the Destination Options header. Uses the same values as the IPv4 Protocol field. o Hdr Ext Len: 8-bit unsigned integer. Length of the Destination Options header in 8-octet units, not including the first 8 octets. o Option: Variable-length field, of length such that the complete Destination Options header is an integer multiple of 8 octets long. Contains one or more TLV-encoded options.

LBSP Option o Option Type: 1 (00000001) o Opt Data Len: 32 bytes (00000100 in 8 octets unit) o Option Data: IPv6 Address of the Source and the Server Ø There are two segments in the Option Data: The first 16 bytes is for the Source IPv6 address Alternatively, it can be a random number generated by the source application for anonymous purpose The second 16 bytes is for the Server IPv6 address Ø When a source application makes a connection request for the 1 st time, it ll insert its IPv6 address into the 1 st segment and leave the 2 nd segment all zeroes in the session persistence option of its IPv6 destination header The VIP of a load balancer is the destination IPv6 address of the application request The Load Balancer can then select the destination server based on the data in the 1 st segment of the option data and other load balancing criteria (such as least connections, server health check, and etc.) without waiting for server to set cookie for load balancing purpose Subsequent requests should include the session persistence option data with its own IPv6 address and responding server IPv6 address Ø When a server application responds to a request for the 1 st time, it ll rewrite the all zeroes 2 nd segment with its own IPv6 address. The server should not change the 1 st segment of the option data All subsequent responses to the client should also include the same session persistence option Ø A proxy server will not and should not change the session persistence option when it terminates a connection and makes the request on the user s behalf The destination header should be examined only by the destination (the VIP of a load balancer), not by any intermediate node Proxy server will change the source IPv6 address (9 th -24th bytes in the v6 packet header) to its own, but not the content in the destination header

LBSP Option 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 Original Source Application Client s IPv6 Address (17 th -144 th bits) Responding Destination Server s IPv6 Address (145 th 272 nd bits) o Option Type: The 1 st eight bits (value 1) identifies the session persistence option o Option Data Length: The 2 nd eight bits (value 4) indicates the length of the option data is 32 bytes o If the session persistence option is employed by an user application, the 17 th bit to the 144 th bits will be the IPv6 address of the source application client (same as 9 th 24 th bytes of the original IPv6 packet header) Ø A load balancer (LB) will use this Original Source Application Client IPv6 address and other criteria to pick a server for load balancing purpose o The server chosen by the LB shall also respond with a LBSP option in its IPv6 response packet and put its IPv6 address in the segment for the Responding Destination Server IPv6 address o Subsequent request and response packets should also include the LBSP option with both the source application and destination server IPv6 address o The LB will use the Responding Destination Server IPv6 address for session persistence purpose o If either AH or ESP Header is present, the Destination/LBSP option is before those headers

Session Persistence with Megaproxy IPv6 Based Exchange -1 Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 Load Balancer If the transaction is based on IPv6 exchanges, the client s IPv6 address will be persistent and made available in the LBSP option data (LBSPOD) of each IPv6 packet header The LB can use the application client s IPv6 address in LBSPOD along with other load balancing criteria for initial server selection at the 1 st TCP SYNC packet The LB can use responding server s IPv6 address and client s IPv6 address for the purpose of session persistence The proxy servers will and should transparently pass the Destination Option of application client requests and associated response from load balancers or directly from servers (in DSR scenarios) With the LB using the session persistent option data in IPv6 packet header, the need for delay binding can be minimized and therefore avoid the costly sequence number translation

Session Persistence with Megaproxy IPv6 Based - 1 st Exchange Packet Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 Load Balancer Source App. Client IPv6 Address Destination VIP IPv6 Address All zeros for TCP Sync packet or 1 st UDP packet Proxy Server IPv6 Address Destination VIP IPv6 Address All zeros for TCP Sync packet or 1 st UDP packet Server IPv6 Address 6 1 4 All zeros for TCP Sync packet or 1 st UDP packet Client Request Packet Data Client Request Packet Data Client Request Packet Data

Session Persistence with Megaproxy IPv6 Based Respond to 1 st Request Proxy Servers Load Balancer Client IPv6 Address Proxy Server IPv6 Address Server Response Packet Data Server Response Packet Data Server Response Packet Data

Session Persistence with Megaproxy IPv6 Based Subsequent Request Packets Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 Load Balancer Client IPv6 Address Proxy s IPv6 Address Previous Client Application Request Payload Client Application Request Payload Client Application Request Payload

Session Persistence with Megaproxy IPv6 Based Subsequent Response Packets Proxy Servers Load Balancer Client IPv6 Address Proxy IPv6 Address Server IPv6 Address Server Application Response Payload Server Application Response Payload Server Application Response Payload

Session Persistence at a Load Balancer 1 2 3 4 VIP1, TCP SYNC VIP1, Port 80 (HTTP) VIP1, Port 21 (FTP) VIP1, Port 443 (HTTPS) 1 2 4 SERV1 Load Balancer 3 SERV2 5 6 VIP2, TCP SYNC VIP2, Port 80 (HTTP) 5 6 SERV3 Server Selec6on Real Server Source Dest DEST Port LBSPOD- 1 LBSPOD- 2 Based on Assigned 1 Proxy1 VIP1 80 C1 0 LB SERV1 2 Proxy1 VIP1 80 C1 SERV1 LBSPOD- 2 SERV1 3 Proxy1 VIP1 21 C1 0 LB SERV2 4 Proxy2 VIP1 443 C1 SERV1 LBSPOD- 2 SERV1 Proxy2 VIP1 443 C1 SERV1 LBSPOD- 2 SERV1 5 Proxy1 VIP2 80 C2 0 LB SERV3 6 Proxy1 VIP2 80 C2 SERV3 LBSPOD- 2 SERV3 LBSPOD-1 is the segment for the client s IPv6 address in the Session Persistence Option of the destination header LBSPOD-2 is the segment for the responding server s IPv6 address in the Session Persistence Option of the destination header Above table assumes the traffic went through an ISP or enterprise proxy server before reaching the load balancer site

One Step Further Single Pass LB o For IPv6 based application traffic, a new mechanism is proposed to allow the load balancer out of the traffic flow after the application session is established o Using IPv6 Destination Header to eliminate the need of delayed binding for session persistence, boost the performance of LB and speed up application response time o For ISP planning to use public routable IPv6 address for servers o It s proposed that client (such as a web browser) takes advantage of the information of the IPv6 address of the serving server in the IPv6 destination header of returned packets, and send subsequent packets with the serving server s IPv6 address as the destination address Ø i.e. the client will no longer use the load balancer s VIP as packets destination address after the application session is established o Benefits Ø A load balancer with the same horse power and I/O bandwidth will be able to handle more connections, Ø The throughput of a server farm will increase

Data Center Topology - LB Not in Direct Path IP Backbone AR1 AR2 L3 Link LB1 DSW1 DSW2 LB2 L2 Link/Trunk ToR SW1 ToR SW2 S1 S2 S3 S4 S5 S6 LB : Load Balancer ToR : Top of Rack

IPv6 Based Exchange Overview Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 Load Balancer DSW->ToR Servers will use public IPv6 addresses 1 st packet will be sent to IPv6 VIP of load balancer for server selection The LB can use the application client s IPv6 address in LBSPOD along with other load balancing criteria for initial server selection at the 1 st TCP SYNC packet Server will inform client its own IPv6 address via LBSPOD in IPv6 destination header The client will send packets directly to server after learning responding server s public IPv6 address The proxy servers will and should transparently pass the Destination Option of application client requests and associated response from load balancers or directly from servers (in DSR scenarios) With the LB using the session persistent option data in IPv6 packet header, the LB does not have to use delay binding and therefore avoid the costly sequence number translation

Session Persistence IPv6 Based - 1 st Exchange Packet Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 Load Balancer DSW->ToR Source App. Client IPv6 Address Destination VIP IPv6 Address All zeros for TCP Sync packet or 1 st UDP packet Proxy Server IPv6 Address Destination VIP IPv6 Address All zeros for TCP Sync packet or 1 st UDP packet Server IPv6 Address 6 1 4 All zeros for TCP Sync packet or 1 st UDP packet Client Request Packet Data Client Request Packet Data Client Request Packet Data

Session Persistence IPv6 Based Respond to 1 st Request Proxy Servers Load Balancer DSW<-ToR Client IPv6 Address Proxy Server IPv6 Address Server Response Packet Data Server Response Packet Data Server Response Packet Data

Session Persistence IPv6 Based Subsequent Request Packets Proxy Servers From Proxy1 s IPv6 From Proxy2 s IPv6 DSW->ToR Client IPv6 Address Serving Server IPv6 Address Proxy s IPv6 Address Serving Server IPv6 Address Proxy s IPv6 Address Serving Server IPv6 Address Client Application Request Payload Client Application Request Payload Client Application Request Payload

Session Persistence IPv6 Based Subsequent Response Packets Proxy Servers DSW<-ToR Serving Server IPv6 Address Client IPv6 Address Serving Server IPv6 Address Proxy IPv6 Address Serving Server IPv6 Address Proxy IPv6 Address Server Application Response Payload Server Application Response Payload Server Application Response Payload

Requirements for Application Client at the Source -1 o Use IPv6 Destination Header o In the first packet of web or other applications, insert its IPv6 address in the 1 st segment of the Session Persistence Option Data of the Destination Header, and leave the 2 nd segment all zeroes o Read the Responding Server IPv6 address in the response packet, and cache the information for subsequent IPv6 packets exchange for the same session o For subsequent exchange, the IPv6 packets sent from the client will use the responding server s IPv6 address as the destination IPv6 address Ø The IPv6 packets shall include the Destination Header with both the client s and responding server s IPv6 address in the Session Persistent Option Data o If the returned packet does not include the responding server s IPv6 address in the LBSPOD or destination header altogether, the application client shall use the VIP of the load balancer as a result of DNS query Ø The process is illustrated in next slide

Application Client at the Source -2