当前位置:首页 > F5BIGIPiRules编写宝典讲解
在每个事件中,BIGIP可以通过UIE获取各种判断条件,例如,Rules可以配置为判断以下条件:
? 是否在数据包中包含以”cgi”作为结尾的HTTP请求? ? 是否数据包的源地址是以八进制“206”为开头? ? 是否在TCP的数据包中包含字符串“ABC”。
在获取判断条件后,iRules则可对该数据流进行处理。例如: 如果数据包源IP为20.1.1.2则将其分配到服务器A; 如数据包前50个字符包含字母“REAL”则将其丢弃;
如果数据包第一个字符为0xE3则将其放入4Mbps的一个RateClass进行带宽控制。
3.3 选择性地址转换(iSNAT)
应用交换机对服务器实现负载均衡时,往往需要将一组服务器虚拟成一台服务器对外提供服务。与此相应的,当这一组服务器对外通讯时也会要求采用虚拟服务器的地址与外界通讯,这就需要在应用交换机上通过网络地址转换(NAT)来实现。当应用交换机同时对多组服务器进行负载均衡,而单台服务器同时参与到多个负载均衡器组的时候,对网络地址转换的要求变得复杂。而F5 BIG-IP应用交换机所提供的可编程控制的地址转换能力(iSNAT),可以胜任上述要求。
3.4 双向的数据流改写功能
TM/OS的Full Proxy结构使BIG-IP具有了双向数据流改写的能力。与其他传统的网络交换机不同,BIGIP可以对任意内容进行改写,例如TCP Content,UDP Content,HTTP Request,HTTP Response等内容进行修改。 同时,BIGIP的iRules也可以直接对Client端请求进行回应,回应的内容可以完全进行
第 5 页 共 9 页
自行构建。直接回应支持的协议包括:
? TCP Response ? UDP Response ? HTTP Response
在进行改写和回应时,BIGIP将对数据包的底层进行重构,比如数据包的TCP CheckSum, Max segment Size,TCP Window等参数。
4 Rules编写入门
Rules的应用可以简单,也可以复杂。在进行Rules编写前,您必须先学习BIGIP的配置方法。正确的配置相应的Pool、member和Virtual Server。
4.1 编写您的第一个rules
对于很多第一次接触Rules的使用者来说,总觉得rule充满了神秘,在一台设备中,对每一个连接都进行一次处理,那需要多么的复杂啊。但实际上,BIGIP通过强大的TMOS,已经隐藏了许多底层的内容,而您所需要关心的,就是如何编写对于单一连接的处理模式,BIGIP会自动地在每个连接中执行Rules,并且能达到非常高的效率。
在BIGIP中,有接近50个事件,200多个函数可提供使用,要在很短的时间内学会所有的rule使用是非常困难的。但是我们可以根据实际的需要,一步一步地来学习rule的编写方法。在真正需要使用的时候,再查找相应的函数来进行编写。
4.1.1 直接返回数据的Rule
在事件驱动的机制中,BIGIP可以直接返回用户请求,而不需要后端的服务器来进行应答,或者是由BIGIP和客户端进行初步的沟通,在取得客户端的真实信息后,再转发到服务器。
下面是一个直接返回内容的例子:
when HTTP_REQUEST { HTTP::respond 200 content \
第 6 页 共 9 页
让我们一起进入rules的奇妙世界!