This course provides networking professionals a functional understanding of iRules development.

The course builds on the foundation of the Administering BIG-IP 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.


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 free web-based training courses, although optional, are very helpful for any student with limited BIG-IP administration and configuration experience. These courses are available at F5 University (http://university.f5.com):

• Getting Started with BIG-IP
• Getting Started with BIG-IP Local Traffic Manager (LTM)

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 are suggested before attending this course:

• HTTP protocol
• Any programming language

Who should attend?

This course is intended for system administrators, network administrators and application developers responsible for the customization of traffic flow through a BIG-IP system using iRules.

Delegates will learn how to

• Setting up the BIG-IP system
• Getting started with iRules
• Using the iRules Editor
• 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
• Tracing iRule execution and profiling performance using the Rule Profiler
• 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


Chapter 1: Setting Up the BIG-IP System

• Introducing the BIG-IP System

• Initially Setting Up the BIG-IP System

• Archiving the BIG-IP System Configuration

• Leveraging F5 Support Resources and Tools

Chapter 2: Getting Started with iRules

• Customizing Application Delivery with iRules

• Triggering an iRule

• Leveraging the DevCentral Ecosystem

• Using the F5 iRule Editor

• Assigning and Testing iRules

Chapter 3: Exploring iRule Elements

• Introducing iRule Constructs

• Understanding iRule Events and Event Context

• Working with iRule Commands

• Logging from an iRule Using SYSLOG-NG Working with User-Defined Variables

• Working with Operators and Data Types

• Working with Conditional Control Structures

• Incorporating Best Practices in iRules  

Chapter 4: Developing and Troubleshooting iRules

• Mastering Whitespace and Special Symbols

• Developing and Troubleshooting Tips

• Tracing iRule Execution and Profiling Performance

• Using Fiddler to Test and Troubleshoot iRules

Chapter 5: Optimizing iRule Execution

• Understanding the Need for Efficiency

• Profiling iRule Performance with the Rule Profiler

• Measure iRule Runtime Efficiency Using Timing Statistics

• Modularizing iRules for Administrative Efficiency

• Using Procedures to Modularize Code

• Optimizing Logging

• Using High-Speed Logging Commands in an iRule

• Implementing Other Efficiencies

• Using Looping Control Structures

Chapter 6: Securing Web Applications with iRules

• Integrating iRules into Web Application Defense

• Mitigating HTTP Version Attacks

• Mitigating Path Traversal Attacks

• Using iRules to Defends Against Cross-Site Request Forgery (CSRF)

• Mitigating HTTP Method Vulnerabilities

• Securing HTTP Cookies with iRules

• Adding HTTP Security Headers

• Removing Undesirable HTTP Headers

Chapter 7: Working with Numbers and Strings

• Understanding Number Forms and Notation

• Working with Strings

• Combining Strings

• Using iRule String Parsing Functions

Chapter 8: Processing the HTTP Payload

• Reviewing HTTP Headers and Commands

• Accessing and Manipulating HTTP Headers

• Parsing the HTTP URI

• Selectively Compressing HTTP Data

Chapter 9: Working with iFiles and Data Groups

• Working with iFiles

• Introducing Data Groups

• Working with Old Format Data Groups

• Working with New Format Data Groups

Chapter 10: Using iRules with Universal Persistence, Stream, and Statistics Profiles

• Implementing Universal Persistence

• Working with the Stream Profile

• Collecting Statistics Using a Statistics Profile

• Collecting Statistics Using iStats

Chapter 11: Incorporating Advanced Variables

• Reviewing the Local Variable Namespace

• Working with Arrays

• Using Static and Global Variables

• Using the Session Table