F5 LTM工作原理_第1页
F5 LTM工作原理_第2页
F5 LTM工作原理_第3页
F5 LTM工作原理_第4页
F5 LTM工作原理_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

F5LTM工作原理,杨明非F5北方区技术经理,LTM基础架构VSType详解Profile详解CMP工作原理OneConnect工作原理NAT、SNAT工作原理Monitor工作原理HA工作原理,Agenda,3,LTM基础架构,4,什么是TMM,TrafficManagementModuleTMOS的核心进程,有自己独立的内存、CPU资源分配和I/O控制所有的生产流量都通过TMM接收一个CPUCore只能有一个TMM进程在V9版本上,15/34/64/68都是单TMM运行在V9版本上,16/36/69/89/84/88都是多TMM运行在V10版本上,16/36/69/89/84/88都是多TMM运行Viprion只支持9.6和10.0版本,默认都是多TMM运行,5,TMM处理的范围,TMM内部处理功能,所有的VS入口流量LTMiRiules处理Profile处理会话保持处理负载均衡算法SSL加速(和硬件结合)HTTP压缩SNAT静态CRL文件校验,不在TMM里面处理的功能,WebAcceleratorModule(包括压缩)ApplicationSecurityModuleGTM的分配算法处理(包括GTMrules)Named域名解析健康检查日志管理系统数据统计SNMP数据输出HA健康检查,6,BIGIP内部结构-V9平台15/34/64/68,TM/OS,管理CPU,万兆/千兆交换端口,PVA四层交换专用ASIC,HostOSWeb界面管理健康检查SNMP.,Bridge,TMM0,独立的管理机SCCP,SSL加解密,HTTP压缩,Admin,Console,7,BIGIP内部结构-Mecury平台16/36/69/89,TM/OS,管理CPU,万兆/千兆交换端口,HiSpeedBridge,TMM2,HostOSWeb界面管理健康检查SNMP.,TMM3,TMM1,TMM0,独立的管理机AOM,ClusterMutiProcessor多CPU并行处理,SSL加解密,HTTP压缩,Console,Admin,8,Host和TMM的内存分配,Host在启动的时候限定了内存分配的大小,在没有其他module的情况下是384MBTMM进程启动后,将自动获取余下的所有物理内存,HostMemory,TMMMemory,9,查看Host内存占用情况,#physmem/查看物理内存大小8387584bmemoryshow/查看内存分配情况MEMORYSTATISTICS-|(Host)Total=3.835GBUsed=3.590GB|(TMM)Total=5.976GBUsed=93.22MB,10,查看TMM内存占用情况,TMM分配的内存是准确的,Host内存显示在这里有一些偏差,11,BIGIP的重要进程,bigstartstatus/查看F5进程状态top/查看Host进程状态topbcn1/显示Host的所有进程,TomCat4,TMM,TMM,MCPD,bigd,big3d,业务数据处理,本地健康检查,GTM/Mpack通讯,配置管理界面,Tamd,外部认证,bcm56xxd,交换芯片管理,12,Module工作模式-GTM,所有的请求接收和响应都通过TMM进行gtmd负责动态策略解析,并将不在策略制定内的请求转发给namedgtmd的所有状态来源均由big3d汇报gtmd不会直接与bigd通讯,而是从big3d去获得信息,TMM,客户端请求,gtmd,named,bigd,big3d,mcpd,Listener接收请求,动态策略解析,静态策略解析,RTT探测iQuery信息收集和发送,本地健康检查,13,Module工作模式-WA,PVAC是WAModule处理的主进程,与TMM之间采用Plugin模式通讯PVAC可以以多线程方式运行所有的流量由TMM发送到pvac,pvac处理完成之后返回给TMM,再通过负载均衡策略转发到服务器,TMM,客户端请求,pvac,Web/应用服务器,Web/应用服务器,Web/应用服务器,pvac,14,Module工作模式-ASM,asm是ASM处理的主进程,与TMM之间采用Plugin模式通讯asm可以以多线程方式运行所有的流量由TMM发送到asm,asm处理完成之后返回给TMM,再通过负载均衡策略转发到服务器,14,TMM,客户端请求,asm,Web/应用服务器,Web/应用服务器,Web/应用服务器,asm,15,Module工作模式-SAM,TMM接收所有流量请求SSLVPN通道建立处理在TMM内部完成APD(ApplicationPolicyDaemon)负责策略执行,用户认证等,不处理具体的业务流量,TMM,客户端请求,APD,Web/应用服务器,Web/应用服务器,Web/应用服务器,16,VSType详解,17,VSType详解,PerformanceL4StandardVSFastHTTPFowardingVS,18,PerformanceL4,TMM只是负责客户端连接的分配和转发,不改变TCP连接中的任何参数客户端和服务器自行协商TCP传输参数在34/64/68平台上PerformanceL4可以有PVA加入实现硬件加速在15/16/36/69/89/Viprion平台上都通过TMM核心进行处理PerformanceL4VS上只有4层的iRules可以使用默认状态下,新建连接的第一个包必须是Syn包,如果是其他的数据包比如ACK、RST等如果不在连接表中,则全部丢弃。在FastL4profile打开Looseclose和LooseInitial的时候对非Syn包也可以建立连接表,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,19,PerformanceL4攻击防护-SynCookie,正常情况下客户端连接和服务器端连接是1:1的关系TMM在第一次收到客户端Syn包时,并不建立连接表TMM的SynAck回应通过算法回应给客户端Syn,并期待客户端回应的值TMM对客户端ACK进行计算,确认是真实客户端,再和后台服务器建立连接在84/88上可以实现硬件的SynCookie计算,其余的平台都是通过软件实现SynCookie计算SynCookie工作模式下,只有成功建立连接的TCP请求才转发到后台,TMM,Syn,Syn,Ack(syncookie),Ack(Cookie),Syn,Syn-Ack,Ack,Data,20,StandardVS,正常情况下客户端连接和服务器端连接是1:1的关系默认工作在全代理模式,客户端和服务器端的TCP连接完全独立客户端和服务器端的TCP参数都是由TMM和双方分别协商默认情况下以客户端源IP和后台建立连接,在打开SNAT的情况下用SNAT地址和后台建立连接StandardVS的端口永远对外开放,无论后台是否有服务器在工作,TMM,Syn,Syn,Ack,Ack,Syn,Syn-Ack,Ack,Data,Data,21,Standard模式下的攻击防护,StandardVS模式具有天然的防攻击功能在遇到Syn攻击的时候会导致系统的连接表过大通过System-SYNCheckActivationThreshold的设置,在达到设置值的时候系统自动启动SynCookie,避免建立过多连接,这个值对全局生效大部分的网络层攻击都无法通过Standard模式的VS,22,FastHTTP,FastHTTPVS仅用于HTTP协议默认开启OneConnectProfile,对客户端连接进行聚合处理默认开启SNATAutoMap,在服务器端收到的TCP连接请求都是来自于TMM没有会话保持功能不能处理SSL,HTTPS,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,23,FowardingVS(ForwardingIP),只能使用FastL4Profile按照连接处理,类似于路由器工作,但不完全一样,在FastL4Profile中开启LooseInitial和LooseClose之后更为接近路由工作模式所有穿过FowardingVS的连接都将产生连接表没有PoolMember,转发完全取决于本地路由可以使用基于4层的Rules,TMM,客户端,查询本地路由表,转发客户端请求,24,VS和Profile,VS作为所有流量的入口Profile依赖于VS,对进入VS的流量进行格式化处理不同的VS可以用同一个Profile或者不同的ProfileProfile之间存在有相互排斥和相互依存的关系,VS,TCPProfile,UDPProfile,FastL4Profile,HTTP,RTSP,ClientSSL,ServerSSL,Streaming,SMTP,SIP,OneConnect,25,VS和Rules,Rules的处理必须依赖于VS对流量的接收通过事件触发机制,Rules可以控制流量在VS内部处理的整个过程,SSL,Compression,ClientSide,ServerSide,TCPExpress,Server,TCPExpress,Caching,Microkernel,VirtualServer,iRules,Client,iControlAPI,TCPProxy,OneConnect,XML,RateShaping,TrafficShield,WebAccel,3rdParty,26,VS和Rules,Server,iRules,ClientSideEventClient_acceptClient_dataCache_requestDNS_requestHTTP_REQUESTHTTP_REQUEST_DATARTSP_REQUEST.,ServerSideEventServer_connectServer_dataCache_responseDNS_responseHTTP_RESPONSEHTTP_RESPONSE_DATARTSP_RESPONSE.,27,VS和Rules,大部分rules只在同一个VS之内有效Rules内创建的变量以连接为生命周期一个VS上可以有多个Rules,它们将被顺序执行,CLIENT_ACCPTED,CLIENT_DATA,LB_SELECTED,LB_FAILED,SERVER_ACCPTED,SERVER_DATA,CLIENT_CLOSED,SERVER_CLOSED,RULE_INIT,VS,28,Profile详解,29,Profile的作用和工作范围,Profile依赖于VSProfile是对VS的流量进行格式化处理举例如果一个VS上配置了TCPProfile,则该VS对所有的UDP流量都不会接收,30,Profile的作用和工作范围,基本流量处理类型ProfileTCP,UDP,FastHTTP,FastL4,SCTP服务流量处理类型ProfileHTTP,FTP,SMTP,RTSP,SIP,iSessionSSL处理类型ClientSSL,ServerSSL会话保持类型Cookie,DestinationIP,hash,msrdp,sourceIP,Universal,SSL认证处理类型Radius,CRLDP,OCSP其他处理类型OneConnect,Statistics,NTLM,Stream,31,重要的Profile-FastL4,ResetonTimeout:在连接达到Timeout的是否向两端发送Reset包IdelTimeout:多长时间连接里面没有数据流量的时候就删除连接表LooseInitiation/LooseClose:是否接收非Syn包建立连接SoftareSynCookieProtection:是否在VS上启用SynCookie,实现Syn攻击防护,可能调整的参数,32,重要的Profile-TCP,注意在ClientSide和ServerSide可以使用不同的TCPProfile通常情况下建议:Clientside:TCPWANOptimized或LANOptimizedServerside:TCPLANOptimized除非你非常了解TCP的工作原理,否则不要调整除idelTimeout以外的任何参数,33,重要的Profile-ClientSSL,对所有进入VS的流量按照SSL协议进行处理注意ClientSSLprofile不一定只能使用在HTTPS上使用ClientSSL的VS不一定使用443端口,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,SSL,SSL,SSL,34,重要的Profile-FTP,FTP的连接模式有两种,PORT(主动模式)和PASV(被动模式),主动模式的连接过程是:客户端动态的选择一个端口(这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好)向服务器端的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一个命令连接。当需要传送数据时或者列出服务器的文件列表时(通常使用ls或dir命令),客户端通过命令连接告诉服务器(使用PORT命令):“我已经打开了XX端口,请你过来连接”。于是服务器使用20端口向客户端的XX端口发送连接请求,建立一条数据连接来传送数据。被动模式:客户端首先使用与主动连接模式相同的方法与服务器建立命令连接。当需要传送数据时,客户端通过命令连接告诉服务器(使用PASV命令)“我要连接你的XX端口,请问是否空闲”,如果恰好该端口空闲,服务器会告诉客户端:“你请求的端口空闲,可以建立连接(ACK确认信息)”,否则服务器会说“该端口已经占用,请换个端口(UNACK信息)”。如果客户端得到的是空闲的提示,就会利用该端口建立连接,否则就换个端口重新尝试,这也就是所谓的连接建立的协商过程.PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在PASV模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND.,FTPProfile主要用于处理FTP的主动和被动传输两种模式由于需要配置动态侦听端口,因此FTP协议必须进行单独处理通过iRules也可以达到同样的目的,但由于FTP协议使用非常广泛,因此使用FTPprofile来简化配置和处理FTPProfile必须依赖于TCPprofile工作,35,CMP工作原理,36,为什么要用CMP,性能增长要求CPU的主频增加受到比较大的限制,目前的趋势是以多核扩展为主ASIC、NP的处理架构并不适合于复杂、灵活的流量处理对于不规范的流量,采用硬件加速将导致系统设计僵化,很难加入新的功能实现市场需求需要充分利用CPU的多核处理能力来提升系统的整体性能,37,CMP的硬件支持,38,CMP工作模式,流量由HSB进行分配在多个TMM上,每个TMM占据一个CPUCore,每个TMM有自己独立的内存空间每个TMM都具有相同的配置,包括VS/Profile/iRules/Pool/Persistence等TMM之间通过内存高速总线进行通讯共享通用信息如会话保持表,SNAT源端口等当CMP被Disable的时候,TMM0接管所有的流量64/68的硬件平台已经支持CMP,在10.0上自动开启,VIPTMM0,VIPTMM1,VIPTMM2,VIPTMM3,HSB,HSB,SuperVIP,39,如何查看CMP工作状态,btmmshow可以观察每个TMM的状态,40,关于CMP必须了解的内容,V9平台启动WA和ASM将DisableCMPiRules中定义全局变量将DisableCMP所有的非TCP/UDP流量都只使用TMM0进行处理V9中使用Sessionadd,SessionLookup命令将DisableCMPConnectionLimit和RateShaping的配置是针对每个TMM生效手工关闭CMP运行bdbProvision.tmmCount1调整后必须重启任何一个TMMCrash,将导致设备间FailoverTCPdump已经调整为可支持CMP,41,查看VirtualServer的CMP工作状态,42,如何查看TMMCPU占用率,top命令可以显示每颗CPU的占用率和V9相比,TMM的CPU在Top命令中的显示发生了变化每颗CPU的CPU占用率目前在图形界面里都消失了,目前只有整体的CPU占用率,43,OneConnect工作原理,44,连接聚合和内容交换,sales.htm,d.gif,e.gif,index.htm,a.gif,b.gif,c.asp,Server,f.asp,sales.htm,d.gif,e.gif,index.htm,a.gif,b.gif,c.asp,Server,f.asp,index.htm,a.gif,b.gif,c.asp,index.htm,a.gif,b.gif,c.asp,HTMLserverpool,GIFserverpool,ASPserverpool,连接聚合,内容交换,45,OneConnect工作原理,46,OneConnect的典型工作场景,实现连接聚合降低服务器的连接总数需要对每一个请求都进行单独处理(注意在多数情况下,LTM只对一个连接的第一个包进行处理)典型的,打开Cookie会话保持有时候会出现保持不正确的情况,这时就需要打开OneConnect通过设置Mask=55,可以使后台服务器可以“看到”客户端源IP,但这个时候One-connect只对一个客户端的连接起作用,47,OneConnect和应用协议,注意!OneConnectProfile不是必须和HTTPProfile共用,也可以用于其他应用协议。用于其他应用协议的时候必须使用iRules编程来调用OneConnect在需要对长连接进行拆分处理的时候,也需要用OneConnectProfile,48,NAT和SNAT,49,SNAT的全称,SecureNetworkAddressTranslation,SNAT,=,50,NAT的工作模式,0,NATAddress:0,51,SNAT的工作模式,0,,,,SNATAddress:0,52,NAT和SNAT之间的差别,NAT1比1接收所有发往NAT地址的连接所有的连接只是通过LTM的连接表管理,但是是无状态的,连接不会被Timeout连接不能被镜像,SNAT多对一或者多对多拒绝所有发往SNAT地址的连接请求.连接通过LTM的连接表管理,有timeout设置连接可以被镜像,53,SNATAutoMap,当配置SNATAutoMap的时候,请求从那个VLAN发出去,则SNAT的源地址为VLAN上的SelfIP当一个VLAN上有多个SelfIP存在的时候,SNAT的源地址是在多个SelfIP之间轮询,54,SNATPool的工作模式,SNATPool是提供了一个可用于SNAT源地址的列表BIGIP采用最小连接数的方式在SNAT的源地址之间进行选择,55,通过iRules控制SNAT,whenCLIENT_ACCEPTEDsetsnat_addrwhenHTTP_REQUESTsetsnat_addrHTTP:headerX-Forwarded-ForlogX-Fowarded-ForisHTTP:headerX-Forwarded-ForwhenLB_SELECTEDsnat$snat_addr,HTTPS,SSLOffload替换源地址,Server端需要在TCP连接里面获取客户端源地址,56,SNAT的源地址会话保持,whenRULE_INIT#loglocal5.warning-$cnc_snatpoolsetsnat_lengthllength$cnc_snatpoolloglocal5.warning-snatpoollengthis$snat_lengthwhenLB_SELECTED#setclient_addr3setclient_ipIP:client_addrsetclient_lastgetfield$client_ip.4#loglocal5.warning-clientlastis$client_lastsetsnat_addrlindex$cnc_snatpoolexpr$client_last%$snat_length#loglocal5.warning-clientsnataddr$snat_addrsnat$snat_addr,57,Timeout定义和镜像,SNAT可以在两台设备之间镜像SNAT对于TCPidleTimeout和UDPidleTimeout可以有独立的设置,58,Monitor工作原理,59,Monitor如何向外发送请求,所有的Monitor请求都是由bigd进程发起Monitor流量要穿过TMM发送到Server或者其他位置在bconn中可以看到Monitor的流量,TMM,bigd,60,重要的Monitor-TCP,Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论