Forum Discussion
Call an iRule from another iRule
Hey there
I'm trying to write an iRule that will do the following: create an event that will match by the client source ip address and if i come from a specific source ip address range then the irule will call another irule that will do something, otherwise (else) it will continue with the original iRule without sending me to the second iRule
Thanks in advance
- yairshNimbostratus
Forgot to mention that i'm running version 13
- Stanislas_Piro2Cumulonimbus
Hi,
If you want to run a different irule for a specific source address, you can create 2 virtual servers:
-
vs1 :
- source : 0.0.0.0/0 (default value)
- destination : vs IP address
- irule : global irule
-
vs2 :
- source : specific IP
- destination : vs IP address
- irule : specific irule
with this configuration, vs2 will match for requests from the specific IP. all other requests will be handled by vs1.
Source address only support 1 network (a single address has a mask length 32) you can create as many vs with different source address as you want.
-
vs1 :
- janholtzAltostratus
You CAN:
1) Call another virtual server from an irule
2) Set a global variable to be used in another irule, but remember that TCL is event driven, so an event such as "CLIENT_CONNECT" can only be used once.
3) Build the login in a monolithic irule.
(3) Is nearly always the right solution.
BR //Jan
- Ryan77777Altocumulus
Checkout the call function.
For example, I use one to call an HTML page when the server farm is in "maintenance" mode.
example_include.irule proc display_page {} { HTTP::respond 200 content { HTML code to return here
then call it via the irule you have assigned to the VS.
main.irule if { conditional_here } { call example_include.irule::display_page }
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com