- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
F5irulestraining汇编
IRULE “Training”
最简单的例子----盗版思路
when CLIENT_ACCEPTED {
set portodd [expr [TCP::remote_port] 1]
if { $portodd } {
log local0. port [TCP::remote_port] is odd
} else {
log local0. port [TCP::remote_port] is even
}
}
Things to know
理解语法
3-4层irule
7层irule
Log的用法
4大应用不能访问问题
QA
变量
Set C 123
Set C “abc123”
数据类型
Boolean型
整型
浮点型
字符串型
set a [expr 43]
log local0. a:$a
数组
运算类型
算术运算
set a [expr 43]
[expr 1 == 2 ]
log local0. a:$a
比较运算
set a 3
set a [expr $a * 5 + 7]
set a 7
set a [expr $a%2]
条件语句
If {触发条件} {触发动作}
elseif {触发条件} {触发动作}
else {触发动作}
If {公司安排我出差} {去买火车票}
elseif {用户要求作方案} {我做方案}
else {回家}
条件语句 SWITCH 效率高
switch
switch [string tolower [HTTP::header User-Agent]] {
*scooter* -
*slurp* -
*msnbot* -
*fast-* -
*teoma* -
*googlebot* { pool slow_webbot_pool }
default { pool default_pool }
}
效率更高的呢
建 data group
class bots {
scooter
slurp
msnbot
fast-
teoma
googlebot
}
when HTTP_REQUEST {
if { [class match [string tolower [HTTP::header User-Agent]] contains $::bots] } {
pool slow_webbot_pool
}
}
Data group里面不支持通配服
when HTTP_REQUEST {
log local0. header :[string tolower [HTTP::header Host]]
if { [class match [string tolower [HTTP::header Host]] eq class_domain] } {
log local0. is very good
}
}
怎么看效率
tmsh reset-stats ltm rule rule_port
tmsh show ltm rule rule_port raw
循环
While循环
set a 1
while { $a 4 } {
log local0. a is :$a
incr a
}
break
set a 1
while { $a 10 } {
log local0. a is :$a
incr a
if { $a 5 } {
break
}
}
FOR循环
预制条件,比较预算,循环条件,
for { set a 1 } { $a 10 } { incr a} {
log local0. haha $a
}
事件
事件
问题:HTTP_REQUEST_SENDHTTP_REQUEST_DATA
运算符
标准的irules
1、事件的定义
2、Operators
3、命令
Event declarations
{
Operators
{
iRule commands
}
}
Things to know
理解语法
3-4层irule
7层irule
Log的用法
4大应用不能访问问题
QA
特定动作匹配特定VS类型
[forward vs]不能匹配池
when CLIENT_ACCEPTED {
if { [IP::addr [IP::client_addr] equals ]} {
forward
}
elseif { [IP::addr [IP::client_addr] equals /23]} {
forward
}
else {
discard
}
}
##以上 irule只能 用在 forward类 VS上
[非forward vs] 能匹配池
when CL
文档评论(0)