Integrating the F5 BigIP with Blackboard



Similar documents
Nick McClure University of Kentucky

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

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

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

Load Balancing BEA WebLogic Servers with F5 Networks BIG-IP v9

Deploying the BIG-IP System v10 with SAP NetWeaver and Enterprise SOA: ERP Central Component (ECC)

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

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

DEPLOYMENT GUIDE DEPLOYING F5 WITH SAP NETWEAVER AND ENTERPRISE SOA

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with the Zimbra Open Source and Collaboration Suite

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

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

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

DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Microsoft Exchange Server 2007

Introducing the Microsoft IIS deployment guide

DEPLOYMENT GUIDE CONFIGURING THE BIG-IP LTM SYSTEM WITH FIREPASS CONTROLLERS FOR LOAD BALANCING AND SSL OFFLOAD

DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12

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

Load Balancing Oracle Application Server (Oracle HTTP Server) Quick Reference Guide

Maximum Availability Architecture. Oracle Best Practices For High Availability

DEPLOYMENT GUIDE Version 1.0. Deploying F5 with the Oracle Fusion Middleware SOA Suite 11gR1

DEPLOYMENT GUIDE DEPLOYING F5 WITH VMWARE VIRTUAL DESKTOP INFRASTRUCTURE (VDI)

Exam : EE : F5 BIG-IP V9 Local traffic Management. Title. Ver :

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP Edge Gateway for Layered Security and Acceleration Services

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

Deployment Guide Oracle Siebel CRM

Deploying the BIG-IP LTM with. Citrix XenApp. Deployment Guide Version 1.2. What s inside: 2 Prerequisites and configuration notes

Deploying F5 with Microsoft Remote Desktop Services

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

Deploying F5 with Microsoft Forefront Threat Management Gateway 2010

Configuring the BIG-IP system for FirePass controllers

EE Easy CramBible Lab DEMO ONLY VERSION EE F5 Big-Ip v9 Local Traffic Management

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Fusion Middleware Identity Management 11gR1

Deploying F5 with Microsoft Active Directory Federation Services

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

DEPLOYMENT GUIDE DEPLOYING F5 WITH MICROSOFT WINDOWS SERVER 2008

How To Configure Apa Web Server For High Performance

Prerequisites. Creating Profiles

Deploying the BIG-IP LTM v10 with Microsoft Lync Server 2010 and 2013

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM System with VMware View

F5 Configuring BIG-IP Local Traffic Manager (LTM) - V11. Description

Firewall Systems Pty Limited Standard Scope of Works

F5 Big-IP LTM Configuration: HTTPS / WSS Offloading

Veriton. Getting the Best out of Hardware Load Balancers in an Oracle Environment. What is a Load Balancer? Agenda. What s out there?

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP LTM SYSTEM WITH CITRIX PRESENTATION SERVER 3.0 AND 4.5

Deploying the BIG-IP System v10 with VMware Virtual Desktop Infrastructure (VDI)

F5 BIG-IP: Configuring v11 Access Policy Manager APM

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Application Server 10g

Deploying F5 for Microsoft Office Web Apps Server 2013

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

Introducing the BIG-IP and SharePoint Portal Server 2003 configuration

How To Configure An Orgaa Cloud Control On A Bigip (Cloud Control) On An Orga Cloud Control (Oms) On A Microsoft Cloud Control 2.5 (Cloud) On Microsoft Powerbook (Cloudcontrol) On The

Deployment Guide Microsoft IIS 7.0

Deploying the BIG-IP System v11 with Microsoft SharePoint 2010 and 2013

Deploying the BIG-IP System with Microsoft IIS

Load Balancing for Microsoft Office Communication Server 2007 Release 2

Exam F F5 BIG-IP V9.4 LTM Essentials Version: 5.0 [ Total Questions: 100 ]

Deploying the BIG-IP System v10 with Oracle Application Server 10g R2

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

Deploying the BIG-IP LTM System and Microsoft Outlook Web Access

Load Balancing. Outlook Web Access. Web Mail Using Equalizer

Brocade Virtual Traffic Manager and Oracle WebLogic Applications Deployment Guide

Availability Digest. Redundant Load Balancing for High Availability July 2013

Deploying F5 with IBM Tivoli Maximo Asset Management

Microsoft Exchange Server

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

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

Snapt Balancer Manual

Migrating the SSL Offloading Configuration of the Alteon Application Switch 2424-SSL to AlteonOS version

2 Downloading Access Manager 3.1 SP4 IR1

Deploying the BIG-IP System with Microsoft SharePoint

Novell Access Manager

BlackBerry Enterprise Service 10. Version: Configuration Guide

TESTING & INTEGRATION GROUP SOLUTION GUIDE

Access Gateway Guide Access Manager 4.0 SP1

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

McAfee Web Gateway 7.4.1

Microsoft Lync Server 2010

Configuring Security for FTP Traffic

NEFSIS DEDICATED SERVER

Deployment Guide AX Series with Citrix XenApp 6.5

Deployment Guide Jan-2016 rev. a. Deploying Array Networks APV Series Application Delivery Controllers with Oracle WebLogic 12c

Application Delivery and Load Balancing for VMware View Desktop Infrastructure

Deploying F5 with Microsoft Dynamics CRM 2011 and 2013

Deploying the BIG-IP System with Oracle WebLogic Server

F5 Networks 301a LTM Specialist: Architect, Set-Up & Deploy Study Guide Version 1 - TMOS 11.2

Introduction to the EIS Guide

Load Balancing IBM WebSphere Servers with F5 Networks BIG-IP System

Deploying F5 with Microsoft Remote Desktop Session Host Servers

Policy Guide Access Manager 3.1 SP5 January 2013


Achieving High Availability with Websphere Application Server SIP Container and F5 BIG-IP Local Traffic Manager

CONFIGURING BIG-IP LOCAL TRAFFIC MANAGER 3-Day

StreamServe Persuasion SP5 StreamStudio

Load Balancing IBM Lotus Instant Messaging and Web Conferencing Servers with F5 Networks BIG-IP System

Deploying F5 with Microsoft Dynamics CRM 2011 and 2013

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

MEGA Web Application Architecture Overview MEGA 2009 SP4

Transcription:

Integrating the F5 BigIP with Blackboard Nick McClure nickjm@uky.edu Lead Systems Programmer University of Kentucky Created August 1, 2006 Last Updated June 17, 2008 Integrating the F5 BigIP with Blackboard Page 1

Table of Contents SUMMARY... 3 PHYSICAL NETWORK... 4 SERVERS... 4 BASE BIGIP CONFIGURATION... 4 SERVER CONFIGURATION... 5 File and Database... 5 Web Application Servers... 5 Collaboration Servers... 5 F5 CONFIGURATION... 6 HEALTH MONITORS... 6 POOLS... 8 PROFILES... 9 Summary... 9 HTTP Profiles... 9 RAMCache... 9 Stream Profile... 9 Persistence Profile...10 IRULES...12 VIRTUAL SERVERS...13 Redirection...13 Main Application...13 Collaboration HTTPS Pool...14 Collaboration TCP Pool...15 BLACKBOARD CONFIGURATION...17 EXTERNAL SESSION MONITORING...18 CONCLUSTION... FIGURE 1 - NETWORK DIAGRAM... 4 FIGURE 2 - HEALTH MONITOR... 6 FIGURE 3 - COLLABORATION HEALTH MONITOR... 7 FIGURE 4 - BASIC POOL CONFIGURATION... 8 FIGURE 5 - STREAM PROFILES...10 FIGURE 6 - STREAM PROFILE SETTINGS...10 FIGURE 7 - PERSISTENCE PROFILE...11 FIGURE 8 - MAIN APPLICATION GENERAL PROPERTIES...13 FIGURE 9 - MAIN APPLICATION CONFIGURATION...14 FIGURE 10 - COLLABORATION TCP VIRTUAL SERVER...16 FIGURE 11 - BLACKBOARD SSL CHOICE...17 FIGURE 12 - INTERFACE MIRRORING...18 Integrating the F5 BigIP with Blackboard Page 2

Summary This document will show how the University of Kentucky has incorporated the F5 BigIP load balancing devices into a Blackboard Academic Suite 8.x environment. At the University of Kentucky all traffic to the Blackboard web servers passes through the BigIP including collaboration tool traffic. The information contained in this document will describe how the F5 was integrated into our Production Environment; which is composed of eight front end web servers which connect to a MS Cluster. Integrating the F5 BigIP with Blackboard Page 3

Physical Network Servers Our Production Environment is comprised of 6 Dell PowerEdge 1850 Servers running Windows Server 2003 and two Dell PowerEdge 850 Servers running Windows Server 2003. The Database and File Servers reside in a clustered environment. There are separate cluster groups for the file and SQL servers. Each with its own IP, Windows Name, and SAN file systems. Below is a diagram of the layout. Figure - Network Diagram Base BigIp Configuration Given our existing network environment we went with a SNAT configuration when utilizing the F5. Because of other campus services, including Data Protection and Authentication, we felt that adding that much traffic through the F5 would cause too much load, affect system performance, and create other network headaches. We have two BigIP 6400-E2 configured in an Active/Passive mode. Integrating the F5 BigIP with Blackboard Page 4

Server Configuration File and Database Our Production environment contains a pair of Windows Servers configured with Clustering Services. There are four different cluster groups, one for each SQL Server, and one for each File Server. All disks except the system disks are configured on the SAN. The system disks are 5x73GB 15k RPM using RAID 10 with a hot spare. These servers are running Windows Server Enterprise 2003 R2 x64 and With SQL Server 2005 Enterprise x64. The current production environment runs on Dell PowerEdge R900 servers with 16 cores and 64G of ram each. SAN Luns are RAID 10 for Database files and RAID 5 for Content files. Web Application Servers The setup and configuration of the web servers is consistent with the documentation provided by Blackboard for application server setup. The Boxes have 4 total cores and 4G of ram, with mirrored 36G System drives. Collaboration Servers There are two dedicated collaboration servers. Only one server is used at a time, and no normal Blackboard Web traffic is directed to these servers. IIS is installed; however it is not running on these servers. Only the Collaboration Services are enabled and running. Because the F5 directs traffic to the collaboration servers, the DNS name for collab is the same as the rest of the application. This allows us to use one SSL certificate for both functions. Integrating the F5 BigIP with Blackboard Page 5

F5 Configuration Health Monitors Health Monitors were created specifically for Blackboard, and we also created simple HTML files that would still be handled by the Tomcat engine. Anonymous access was allowed at the file level. Should the Tomcat engine fail, or if the connection is lost to the file server, then this file will not be available and the node will show as down. This is something we do because we currently use web server delegation as our authentication method. If you are using LDAP or RDBMS you can simply monitor the login or portal entry page. The first custom monitor is designed to check the base Blackboard site, including IIS and the Tomcat engine. Here it has been named http_bb Figure - Health Monitor Integrating the F5 BigIP with Blackboard Page 6

The second custom health monitor reads an html file placed on the individual app server in the following folder: X:\blackboard\apps\collabserver\http\webapps\client-lib. This monitor has been named http_bb_collab. Figure - Collaboration Health Monitor Custom changes such as the placement of files for health monitors, or changes to IIS or Apache properties may be overwritten after a Blackboard service pack or hot fix. Make sure to create backups of these files, and have a process in place to replace the files and correct any changes to IIS or Apache after an upgrade. Integrating the F5 BigIP with Blackboard Page 7

Pools A basic setup will incorporate at least three pools. The first pool will be the standard http pool responsible for the main Blackboard application. If using the default settings, this pool will contain each of your web app server nodes answering on port 80. We attach our custom http_bb health monitor. The ICMP monitor is set as the node default so it does not need to be included separately. See the screen capture below for the settings. Figure - Basic Pool Configuration We require that all health monitors be active for a server to accept connections. For the collaboration http pool, the settings are identical except instead the http_bb health monitor, we use the http_bb_collab monitor. For the Collaboration TCP pool, we enable only the TCP monitor. We attach all the nodes on port 8010, however only one server is active at a time. Integrating the F5 BigIP with Blackboard Page 8

Profiles Summary Profiles contain the majority of settings for configuration of the BigIP. Create your SSL and Statistics profiles as normal. HTTP Profiles Few changes are made from the base http profile; however, the changes that are made are very important. SSL termination with Blackboard can be tricky; these settings are working in our environment with no problems. Because the page is fairly long, and the changes are fairly minimal we ll skip the screen capture: Redirect Rewrite: All Insert XForwarded For: Enabled Compression: Selective Preferred Method: Gzip Gzip Compression Level: 5 Ram Cache: Enabled URI Caching: URI List RAMCache We have RAMCache configured to cache static content used the application for simple navigation such as image, style sheet and java script files that are not dynamic. To accomplish this use Selective Caching based on the URI List and pin specific directory paths to the cache, and also exclude certain directories. Pin List /images/* /javascript/* /ui/* /branding/* Exclude List /webapps/* /webapps-net/* Stream Profile The most important part of SSL offloading with the F5 is the use of a stream profile. A stream profile will replace string X with string Y in the client response. To create a Stream Profile, click on the Profiles section under Local Traffic, then select Other, and click Stream. Integrating the F5 BigIP with Blackboard Page 9

Figure - Stream Profiles Create a new Stream Profile with a custom source and target. Because we actually provide the stream parameters inside an irule, the content here isn t important. Figure - Stream Profile Settings Persistence Profile In order to ensure that requests from a particular user go to the same application server each time, a persistence profile is used to read the Blackboard session cookie. This allows the F5 to know which server to send a user to, and will timeout at the same time as the Blackboard Session. We use a parent profile of cookie, and select Cookie Hash from the method so we can grab an existing cookie. We set the timeout to the same as our Blackboard timeout and make sure to Mirror the persistence to the standby F5. Integrating the F5 BigIP with Blackboard Page 10

Figure - Persistence Profile Integrating the F5 BigIP with Blackboard Page 11

irules Some things can be easily accomplished using irules; however relying heavily on irules can lock you into doing things incorrectly, as well as force you into a specific solution. irules are processed on each request, including images, if you rely heavily on irules you can do more harm than good inside your application. It is best to weigh the gains of the irule over the effect it can have on system performance and overall complexity. We have three irules we use to perform specific operations. The first irule is used to redirect any traffic that comes in on port 80; those requests are redirected to the secured site. This irule is not attached to the main Virtual Server, but sits on a dummy virtual that only redirects traffic back to the secure site. generic_irule_https_redirect: when HTTP_REQUEST { #Redirects all to HTTPS keeps URI intact HTTP::redirect https://[http::host][http::uri] redirected" } A second irule is used to disable compression for on campus users. A Data Group list is setup with all the IP classes for which we want to turn off compression, if the remote address matches that list, then compression is turned off for that request. Compression is designed to help users with slower connections. On campus users are connected via high speed connections, and compression could actually cause performance issues. For the compression irule to work, the Compression setting on the http profile must be set to Selective. generic_irule_selective_compression when HTTP_REQUEST { if {[matchclass [IP::remote_addr] equals $::campus_address] } { COMPRESS::disable } else { COMPRESS::enable } } A third irule is used to rewrite the response from Blackboard so SSL offloading can work. This irule performs two functions, first it removes the Pragma header from the response, this header can cause problems when used as part of an encrypted connection. The second function is selectively implementing the stream replace. It is important to only modify text/html content. Flash Movies, Word Documents, Zip files and other binary file formats include internal checksums. If the document is modified outside of the creating application it may be corrupted and will be unusable by the end user. Integrating the F5 BigIP with Blackboard Page 12

bbprod_stream_replace when HTTP_RESPONSE { HTTP::header remove "Pragma" } if { [HTTP::header Content-Type] contains "text/html;charset=utf-8" } { STREAM::expression "@http://elearning.uky.edu@https://elearning.uky.edu@" } Virtual Servers There are four different virtual servers that need to be configured. Redirection The first, and most simple is the virtual server that answers on port 80. This server holds the irule that redirects the user to the SSL port. It ensures that users that type in a URL or any link that points to a non secured location points back to the secure site before they are able to login. This virtual server should be configured with the IP Address that will be responsible for Blackboard, and should listen on port 80. Associate the HTTP and Stream profiles; however no SSL profiles should be selected and we assign the https_redirect irule. Main Application The 2 nd Virtual Server will be for the primary Blackboard application. It should be configured with the same IP address and listening on port 443. Again, configure the HTTP, and Stream Profiles, but also configure the SSL Profile for the client. Consult the F5 documentation for assigning the SSL Certificate. Assign the Pool, and Compression and Stream irules, and our custom Persistence Profile. Figure - Main Application General Properties Integrating the F5 BigIP with Blackboard Page 13

Figure - Main Application Configuration Collaboration HTTPS Pool The 3 rd Virtual Server is configured exactly as the previous with the exception of the port and the pool. Because the Blackboard application is configured to use port 8011 as the non-secured port, you should also configure the virtual server to use port 8011, however assign the SSL Client Profile from above and it will ensure the communication between the server and the user is secure, even if it Integrating the F5 BigIP with Blackboard Page 14

uses the same port to communicate to the backend. Doing this keeps us from having to place an additional stream translation in the irule to catch the port number. The links will point to HTTPS however they will use port 8011 continuing with SSL offload for collab. Collaboration TCP Pool The 4 th Virtual server is for the Collaboration TCP services. This virtual should be configured for the same IP and listening on port 8010. The type should be set to Performance (Layer 4). Assign the appropriate pool, and the actual chat server should be ready. The pool for the TCP side should only contain 1 active server, as balancing with multiple servers could cause users to be on different systems and unable to communicate. You could create the pool with all of your servers and manually disable them, allowing you to fail over manually. If you fail over any user connections will be dropped, and any information in the chat session will be lost. Integrating the F5 BigIP with Blackboard Page 15

Figure - Collaboration TCP Virtual Server Integrating the F5 BigIP with Blackboard Page 16

Blackboard Configuration No real changes need to be made to the Blackboard Application. However, it is very important to disable SSL from within the application; this will prevent Blackboard from trying to redirect clients, which can result in infinite loops. Figure - Blackboard SSL Choice For the rest of the procedure you should follow the setup instructions for a load balanced system from the Blackboard Documentation. That will explain how to connect to and configure the shared storage and shared database. If you are planning on clustering your database, either through MS Clustering Services or Oracle RAC it is important to follow the best practices recommended by both Blackboard and the Database Vendor. Integrating the F5 BigIP with Blackboard Page 17

External Session Monitoring There are several different products that can do various types of session and user experience monitoring. We are using the Coradiant TrueSight appliance to capture and report on Blackboard as well as other applications. TrueSight allows administrators and the helpdesk to troubleshoot user problems by watching the users session in near real time. This works by monitoring the actual TCP traffic across the wire and reconstructing the http calls and responses to reproduce the users session. To capture the users traffic we use the Interface Mirroring function of the BigIP. This feature is different than connection mirroring found inside the virtual server. This creates a span port on the BigIP switch that sends a copy of the traffic to a read only interface that TrueSight or other appliances can utilize. Pick the Network section on the left side of the BigIP GUI. From there go to Interfaces, and pick Interface Mirroring from the top menu. In the Dropdown, pick the Destination Interface. This is the port that you will plug into your TrueSight appliance. Then pick the interfaces to mirror. You ll pick the interface that is in the VIP network to capture traffic between the client and the F5. Figure - Interface Mirroring On the TrueSight appliance you ll want to make sure to include the Virtual IP and port combination that Blackboard runs on. Integrating the F5 BigIP with Blackboard Page 18

Conclusion Offloading SSL with the F5 BigIP is easy and reliable; however, you rely on features available specifically from F5. It does have a positive impact on performance, and opens the door to various options including caching and compression that are not available by passing the encrypted data directly to the server. If your organization would like to re-encrypt the transaction before sending it to the Web Server, that is also possible, however it does incur a slight performance hit. Integrating the F5 BigIP with Blackboard Page 19