




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,iRules技术分享,ITSC 马新元 2012-07-02,Copyright 2010 By Neusoft Group. All rights reserved,内容概要,一、iRules 介绍及应用领域 二、iRules 编程基础 三、编写第一个iRules 四、常用iRules分析 五、参考资料,一、iRules 介绍及应用领域,iRules 工作环境:F5 负载均衡设备GTM、LTM、LC。 iRules 使用语言:TCL(Tool Command Language) iRules 组成部分:事件、命令和逻辑。,一、iRules 介绍及应用领域,根据协议的不同,实现不同的功能,在OSI模型中,iRules可以工作在3-7层,TCP,HTTP,Cookie,UDP,FTP,L3 Network,一、iRules 介绍及应用领域,iRules的功能 1、实现了对所有TCP、UDP应用的数据包分析与信息提取 功能。 2、根据数据信息进行分流。 3、双向的数据流改写功能。 4、选择性地址转换(iSNAT)。 5、基于内容的会话保持。,一、iRules 介绍及应用领域,iRules可以提取的数据:TCP部分 TCP:bandwidth - Returns a bandwidth estimate for the peer. TCP:client_port - Returns the TCP port/service number of the specified client. TCP:close - Closes the TCP connection. TCP:collect - Collects the specified amount of content data. TCP:local_port - Returns the local TCP port/service number. TCP:mss - Returns the on-wire Maximum Segment Size (MSS) for a TCP connection. TCP:notify - Causes the the USER_REQUEST or USER_RESPONSE event to be raised. TCP:offset - Returns the position in the TCP data stream in which the collected TCP data starts. TCP:payload - Returns or replaces TCP data content. TCP:release - Resumes processing and flushes collected data. TCP:remote_port - Returns the remote TCP port/service number. TCP:respond - Sends the specified data directly to the peer. TCP:rtt - Returns the smoothed round-trip time estimate for a TCP connection. TCP:server_port - Returns the TCP port/service number of the specified server. TCP:unused_port - Returns an unused TCP port for the specified IP tuple.,一、iRules 介绍及应用领域,iRules可以提取的数据:UDP部分 UDP:client_port - Returns the UDP port/service number of a client system. UDP:drop - In Progress - Add Summary Here UDP:local_port - Returns the local UDP port/service number. UDP:mss - Returns the on-wire Maximum Segment Size (MSS) for a UDP connection. UDP:payload - Returns the content or length of the current UDP payload. UDP:remote_port - Returns the remote UDP port/service number. UDP:respond - Sends data directly to a peer. UDP:server_port - Returns the UDP port/service number of a server system. UDP:unused_port - In Progress - Add Summary Here,一、iRules 介绍及应用领域,iRules可以提取的数据:HTTP部分 HTTP:close - Closes the HTTP connection. HTTP:cookie - Queries for or manipulates cookies in HTTP requests and responses. HTTP:fallback - Specifies or overrides a fallback host specified in the HTTP profile. HTTP:header - Queries or modifies HTTP headers. HTTP:host - Returns the value of the HTTP Host header. HTTP:is_keepalive - Returns a true value if this is a Keep-Alive connection. HTTP:method - Returns the type of HTTP request method. HTTP:password - Returns the password part of HTTP basic authentication. HTTP:path - Returns or sets the path part of the HTTP request. HTTP:respond - Generates a response to the client as if it came from the server. HTTP:retry - Resends a request to a server. HTTP:status - Returns the response status code. HTTP:uri - Returns or sets the URI part of the HTTP request. HTTP:username - Returns the username part of HTTP basic authentication. HTTP:version - Returns or sets the HTTP version of the request or response.,一、iRules 介绍及应用领域,根据数据信息进行分流 iRules可以根据提取的信息(比如ip、http header、http uri等)进行数据分流,使得不同的请求类型分配到不同的服务器群中。,一、iRules 介绍及应用领域,根据数据信息进行分流 根据文件类型选择不同的服务器 when HTTP_REQUEST if HTTP:uri ends_with “.gif“ pool pool1 else pool pool2 ,一、iRules 介绍及应用领域,根据数据信息进行分流 根据浏览器不同选择不同服务器 when HTTP_REQUEST set my_browser HTTP:header User-Agent if my_browser contains “MSIE” pool IE_pool elseif my_browser contains “Mozilla” pool Mz_pool ,一、iRules 介绍及应用领域,根据数据信息进行分流 根据用户类型不同选择不同服务器 when HTTP_REQUEST if findstr HTTP:uri “user=“ 5 “&“ = “employee“ pool pool_employee else pool pool_other ,一、iRules 介绍及应用领域,双向数据改写功能 F5设备的Full Proxy结构使其具有了双向数据改写的能力。与其他传统的网络交换机不同,BIGIP可以对任意内容进行改写,例如TCP Content,UDP Content,HTTP Request,HTTP Response等内容进行修改。,一、iRules 介绍及应用领域,双向数据改写功能 修改uri when HTTP_REQUEST set my_host string tolower HTTP:host switch my_host HTTP:uri “/user1HTTP:uri HTTP:uri “/user2HTTP:uri ,一、iRules 介绍及应用领域,双向数据改写功能 在header中插入证书信息: when CLIENTSSL_CLIENTCERT session add ssl SSL:sessionid SSL:cert 0 when HTTP_REQUEST set id SSL:sessionid set cert session lookup ssl $id HTTP:header insert subject X509:subject $cert HTTP:header insert not_valid_before X509:not_valid_before $cert HTTP:header insert not_valid_after X509:not_valid_after $cert ,一、iRules 介绍及应用领域,选择性的地址转换 在一些比较复杂的环境中,如教育或金融行业链路负载均衡的时候,经常需要比较复杂的地址转换,iRules依靠其灵活的控制,很容易就能满足用户的需要,并且在日后的维护中工作量很小。,一、iRules 介绍及应用领域,选择性的地址转换 根据选择不同的链路及内部用户不同的网段进行地址转换 when LB_SELECTED if IP:addr LB:server addr equals x.x.x.x if IP:remote_addr starts_with “10.2“ snatpool snatpool_203_1 elseif IP:remote_addr starts_with “10.15“ snatpool snatpool_203_5 elseif IP:remote_addr starts_with “192.168“ snatpool snatpool_203_6 else snat automap ,一、iRules 介绍及应用领域,基于内容的会话保持 对于会话保持,很多时候是需要使用根据数据包七层的内容来进行的。比如说无线业务,这种业务中,很多情况不能使用源地址或cookie,此时可根据实际的业务需要进行会话保持的重新定义。,一、iRules 介绍及应用领域,基于内容的会话保持 基于会话ID的会话保持 when HTTP_REQUEST if HTTP:cookie exists “JSessionID“ persist uie HTTP:cookie “JSessionID“ else set jsess findstr HTTP:uri “JSessionID” 11 “;“ if $jsess != “” persist uie $jsess ,iRules编程基础,1、TCL语言和命令结构 TCL语言简介 TCL(读作“t i c k l e”)语言是一种解释性脚本语言,是一种嵌入命令的脚本语言,具有使用简单,功能强大,可移植性强的特点 iRules的命令结构 命令 参数1 参数2 参数3 参数n iRules的注释语句 # this is a note line.,iRules编程基础,2、iRules 变量 简单变量 数组变量 全局变量,iRules编程基础,3、 数据类型 数值和字符串 反斜杠置换 双引号和大括号 4、 操作符 运算符和优先级 数学函数,iRules编程基础,5、 事件 事件是iRules构成中的重要的一部分,不同事件代表数据在整个访问过程中的逻辑位置 when HTTP_REQUEST when HTTP_RESPONSE ,iRules编程基础,6、命令 命令也是iRules构成的重要组成部分之一,命令是iRules中对数据进行操作的直接函数,如: HTTP:uri 该命令中HTTP代表HTTP协议,uri表示取这个http访问中的uri,他们之间用“:”连接,代表从属关系,uri是属于HTTP这个命令体系的,类似的还有:IP:addr、TCP:payload、SSL:handshake等。,iRules编程基础,7、 逻辑流模型,编写第一个iRules,学过编程的人都知道,几乎所有编程语言的第一个例子都是教大家输出“Hello World!”,我们的第一个iRules也以这样的功能开始: when HTTP_REQUEST log “Hello World!“ ,常用iRules分析,1、拓扑风格DNS解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度深圳环保行业简易劳动合同范本
- 2025年度汽车租赁合同补充协议范本
- 海南省保亭黎族苗族自治县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年度地铁车站装修与导向系统设计施工合同
- 2025版燃烧锅炉节能技术研发与推广合同
- 2025二手商铺租赁合同书(含装修期限及权益保障)
- 2025版企业人力资源管理与人才发展培训服务合同
- 河北省高碑店市2025年上半年公开招聘辅警试题含答案分析
- 2025版高科技园区墙面喷漆智能化合同范本
- 贵州省施秉县2025年上半年公开招聘村务工作者试题含答案分析
- T-CACM 1371.5-2021 中医药真实世界研究技术规范基于证据的中药有效性及安全性评价
- 跨文化沟通障碍原因分析及解决方法
- ±800kV等级及以上高压直流输电系统成套设计规程(修订)
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 店面业绩倍增内训课件
- 小学科学教师专题培训课件
- 《患者的安全转运》课件
- 《病史采集病历分析》课件
- 【新大纲新教材】2022年初级会计职称《经济法基础》精讲课件(1-8章完整版)
- 市政工程交通导行方案
- 梁的弯曲振动-振动力学课件
评论
0/150
提交评论