Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 679|回复: 0

F5 Irule学习记1

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-20 14:28:25 | 显示全部楼层 |阅读模式
[背景]以前为一个项目学习过一段时间的Irule,最近又因其他需求,需要将其拾其,但突然发现,以前学的没有做整理,有点遗忘,这次想将学习的过程记录下来.

什么是Irule,我想大家google下,肯定会比我说的还详细.对与它能干什么,我想说的是它什么都能做,当然是在进入到流出F5这段时间里.所以,我们可以在数据流进入后,修改相应的数据包,重构请求包,或者在后端服务器相应后,做出相应内容的重写,都是可以的.看到这里,大家肯定心动了吧.其实吧,我也心动,能通过写写脚本就能将请求/响应数据包改了.按自己的需求提供给后端或者请求者,哈哈,简直,我就是王道嘛.

Irule的程序相对还是比较简单的,它是基与TCL(TOOL COMMAND Language)语法的,是基与触发事件的语言.简单就是说,当数据包处在F5的某一位置,就会触发一种事件,触发一种事件后,就会在此事件中执行一段代码.

when EVENT_NAME{
    CODE
}
你看简单吧.构造就是如此简单,但你想学会灵活使用它,真不简单,因为它的事件太多了,需要很长的时间消化.而且不同的事件,还需要你的VS中profile的指定,如HTTP_REQUEST事件就需要http的profile,否则你就无法将使用此事件的Irule脚本挂到VS上.

当然,光看构造还是不行的,因为Irule也有自己的命令,函数,语句,操作符,将这些一切一切组织在一起就构成了上面的CODE段.

总之,你要是想写好Irule还真不是那么简单,你首先要了解事件,每个事件中可以用到的命令,当然这些都可以在以后慢慢的体会.对了,写程序,免不了Debug,所以我也提供如何Debug我们的程序,我们需要借助Irule提供的log语句.

log local0.info "Hello,World!"
好,提供整段代码吧!
when CLIENT_ACCEPTED {

log local0. "Hello,World"

}

观查,请ssh登录到F5上用tail -f /var/log/ltm命令查看,前提要把上面的Irule挂到VS上噢,切记,切记!


F5 Irule俺也是门外汉,对我不要要求太高噢!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-11-12 04:41 , Processed in 0.021089 second(s), 11 queries , Redis On.

快速回复 返回顶部 返回列表