This course provides networking professionals a functional understanding of iRules development. The course builds on the foundation of the Administering BIG-IP or Configuring LTM course, demonstrating how to logically plan and write iRules to help monitor and manage common tasks involved with processing traffic on the BIG-IP system. Extensive course labs consist of writing, applying and evaluating the effect of iRules on local traffic. This hands-on course includes lectures, labs, and discussions.
Prerequisites
Students must complete one of the following F5 prerequisites before attending this course:
- Administering BIG-IP instructor-led course
- Configuring BIG-IP LTM instructor-led course
- F5 Certified BIG-IP Administrator
The following general network technology knowledge and experience are recommended before attending any F5 Global Training Services instructor-led course:
- OSI model encapsulation
- Routing and switching
- Ethernet and ARP
- TCP/IP concepts
- IP addressing and subnetting
- NAT and private IP addressing
- Default gateway
- Network firewalls
- LAN vs. WAN
The following course-specific knowledge and experience is suggested before attending this course:
- HTTP protocol
- Any programming language
Objectives
- Describe the role of iRules in customizing application delivery on a BIG-IP system
- Describe best practices for using iRules
- Define event context, and differentiate between client-side and server-side contexts, request and response contexts, and local and remote contexts
- Trigger an iRule for both client-side and server-side request and response events
- Assign multiple iRules to a virtual server and control the order in which duplicate events trigger
- Describe and use a testing methodology for iRule development and troubleshooting
- Use local variables, static variables, lists, arrays, the session table, and data groups to store information needed for iRule execution
- Write iRules that are optimized for runtime and administrative efficiency
- Use control structures to conditionally branch or loop within an iRule
- Log from an iRule using Linux syslog-ng or TMOS high-speed logging (HSL)
- Incorporate coding best practices during iRule development
- Use analyzer tools to capture and view traffic flow on both client-side and server-side contexts
- Collect and use timing statistics to measure iRule runtime efficiency
- Write iRules to help mitigate and defend from some common HTTP attacks
- Differentiate between decimal, octal, hexadecimal, floating-point, and exponential notation
- Parse and manipulate strings using Tcl commands and iRule functions
- Write iRules to access and manipulate HTTP header information
- Write iRules to collect customized statistics
- Implement universal persistence via an iRule
- Modify payload content using an iRule with a stream profile
Agenda
- Setting up the BIG-IP system
- Getting started with iRules
- Leveraging DevCentral resources for iRule development
- Exploring iRule elements, including events, functions, commands, variables, and operators
- Using control structures for conditional branching and looping
- Mastering whitespace, grouping, and special symbols
- Measuring iRule efficiency using timing statistics
- Logging from an iRule using syslog-ng and high-speed logging (HSL)
- Optimizing iRules execution, including implementing efficiency best practices
- Modularizing iRules for administrative efficiency, including using procedures
- Securing web applications with iRules, including preventing common HTTP attacks, securing HTTP headers and cookies, and implementing HTTP strict transport security (HSTS)
- Working with strings, including using Tcl parsing commands and iRules parsing functions
- Accessing and manipulating HTTP traffic, including applying selective HTTP compression
- Working with iFiles and data groups
- Using iRules with universal persistence and stream profiles
- Gathering statistics using STATS and ISTATS
- Incorporating advanced variables, including arrays, static variables, and the session table