F5-BIG-IP-LTM-详解工作原理-配置课件_第1页
F5-BIG-IP-LTM-详解工作原理-配置课件_第2页
F5-BIG-IP-LTM-详解工作原理-配置课件_第3页
F5-BIG-IP-LTM-详解工作原理-配置课件_第4页
F5-BIG-IP-LTM-详解工作原理-配置课件_第5页
已阅读5页,还剩187页未读 继续免费阅读

下载本文档

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

文档简介

F5BIG-IPLTM详解北京先进数通信息技术有限公司十二月19F5BIG-IPLTM详解北京先进数通信息技术有限公司十1LTM基础架构VSType详解Profile详解CMP工作原理OneConnect工作原理NAT、SNAT工作原理Monitor工作原理HA工作原理LTM工作原理LTM基础架构LTM工作原理2LTM基础架构什么是TMMTrafficManagementModuleTMOS的核心进程,有自己独立的内存、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运行LTM基础架构什么是TMMTrafficManagemen3TMM处理的范围TMM内部处理功能所有的VS入口流量LTMiRiules处理Profile处理会话保持处理负载均衡算法SSL加速(和硬件结合)HTTP压缩SNAT静态CRL(Certificaterevocationlist证书吊销清单)文件校验不在TMM里面处理的功能WebAcceleratorModule(包括压缩)ApplicationSecurityModuleGTM的分配算法处理(包括GTMrules)Named域名解析健康检查日志管理系统数据统计SNMP数据输出HA健康检查TMM处理的范围TMM内部处理功能所有的VS入口流量不在TM4BIGIP内部结构-V9平台15/34/64/68TM/OS管理CPU万兆/千兆交换端口PVA(PacketVelocityASIC)四层交换专用ASICHostOSWeb界面管理健康检查SNMP……..BridgeTMM0独立的管理机SCCPSSL加解密HTTP压缩AdminConsoleBIGIP内部结构-V9平台15/34/64/68TM/O5BIGIP内部结构-Mecury平台16/36/69/896TM/OS管理CPU万兆/千兆交换端口HiSpeedBridgeTMM2HostOSWeb界面管理健康检查SNMP……..TMM3TMM1TMM0独立的管理机AOMClusterMutiProcessor多CPU并行处理SSL加解密HTTP压缩ConsoleAdminBIGIP内部结构-Mecury平台16/36/69/896Host和TMM的内存分配Host在启动的时候限定了内存分配的大小,在没有其他module的情况下是384MBTMM进程启动后,将自动获取余下的所有物理内存HostMemoryTMMMemoryHost和TMM的内存分配Host在启动的时候限HostM7查看Host内存占用情况#physmem/查看物理内存大小8387584bmemoryshow/查看内存分配情况MEMORYSTATISTICS--|(Host)Total=3.835GBUsed=3.590GB|(TMM)Total=5.976GBUsed=93.22MB查看Host内存占用情况#physmem/查看物理内8查看TMM内存占用情况TMM分配的内存是准确的,Host内存显示在这里有一些偏差查看TMM内存占用情况TMM分配的内存是准确的,Host内存9VSType详解PerformanceL4StandardVSFastHTTPForwardingVSVSType详解PerformanceL410PerformanceL4TMM只是负责客户端连接的分配和转发,不改变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客户端客户端客户端服务器端服务器端服务器端PerformanceL4TMM只是负责客户端连接的分配和11PerformanceL4攻击防护-SynCookie正常情况下客户端连接和服务器端连接是1:1的关系TMM在第一次收到客户端Syn包时,并不建立连接表TMM的SynAck回应通过算法回应给客户端Syn,并期待客户端回应的值TMM对客户端ACK进行计算,确认是真实客户端,再和后台服务器建立连接在84/88上可以实现硬件的SynCookie计算,其余的平台都是通过软件实现SynCookie计算SynCookie工作模式下,只有成功建立连接的TCP请求才转发到后台TMMSynSyn,Ack(syncookie)Ack(Cookie)SynSyn-AckAckDataPerformanceL4攻击防护-SynCookie12StandardVS正常情况下客户端连接和服务器端连接是1:1的关系默认工作在全代理模式,客户端和服务器端的TCP连接完全独立客户端和服务器端的TCP参数都是由TMM和双方分别协商默认情况下以客户端源IP和后台建立连接,在打开SNAT的情况下用SNAT地址和后台建立连接StandardVS的端口永远对外开放,无论后台是否有服务器在工作TMMSynSyn,AckAckSynSyn-AckAckDataDataStandardVS正常情况下客户端连接和服务器端连接是113Standard模式下的攻击防护StandardVS模式具有天然的防攻击功能在遇到Syn攻击的时候会导致系统的连接表过大通过System-SYNCheckActivationThreshold的设置,在达到设置值的时候系统自动启动SynCookie,避免建立过多连接,这个值对全局生效大部分的网络层攻击都无法通过Standard模式的VSStandard模式下的攻击防护StandardVS模式14FastHTTPFastHTTPVS仅用于HTTP协议默认开启OneConnectProfile,对客户端连接进行聚合处理默认开启SNATAutoMap,在服务器端收到的TCP连接请求都是来自于TMM没有会话保持功能不能处理SSL,HTTPSTMM客户端客户端客户端服务器端服务器端服务器端FastHTTPFastHTTPVS仅用于HTTP协议15FowardingVS(ForwardingIP)只能使用FastL4Profile按照连接处理,类似于路由器工作,但不完全一样,在FastL4Profile中开启LooseInitial和LooseClose之后更为接近路由工作模式所有穿过FowardingVS的连接都将产生连接表没有PoolMember,转发完全取决于本地路由可以使用基于4层的RulesTMM客户端查询本地路由表转发客户端请求FowardingVS(ForwardingIP)只能使16VS和ProfileVS作为所有流量的入口Profile依赖于VS,对进入VS的流量进行格式化处理不同的VS可以用同一个Profile或者不同的ProfileProfile之间存在有相互排斥和相互依存的关系VSTCPProfileUDPProfileFastL4ProfileHTTPRTSPClientSSLServerSSLStreamingSMTPSIPOneConnectVS和ProfileVS作为所有流量的入口VSTCPPro17Rules的处理必须依赖于VS对流量的接收通过事件触发机制,Rules可以控制流量在VS内部处理的整个过程SSLCompressionClientSideServerSideTCPExpressServerTCPExpressCachingMicrokernelVirtualServeriRulesClientiControlAPITCPProxyOneConnectXMLRateShapingTrafficShieldWebAccel3rdPartyVS和RulesRules的处理必须依赖于VS对流量的接收SSLCompre18ServeriRulesClientSideServerSideTCPProxyClientSideEventClient_acceptClient_dataCache_requestDNS_requestHTTP_REQUESTHTTP_REQUEST_DATARTSP_REQUEST....ServerSideEventServer_connectServer_dataCache_responseDNS_responseHTTP_RESPONSEHTTP_RESPONSE_DATARTSP_RESPONSE....ServeriRulesClientServerTCPPr19大部分rules只在同一个VS之内有效Rules内创建的变量以连接为生命周期一个VS上可以有多个Rules,它们将被顺序执行CLIENT_ACCPTEDCLIENT_DATALB_SELECTEDLB_FAILEDSERVER_ACCPTEDSERVER_DATACLIENT_CLOSEDSERVER_CLOSEDRULE_INITVS大部分rules只在同一个VS之内有效CLIENT_ACCP20Profile的作用和工作范围Profile依赖于VSProfile是对VS的流量进行格式化处理举例如果一个VS上配置了TCPProfile,则该VS对所有的UDP流量都不会接收Profile详解Profile的作用和工作范围Profile依赖于VSPro21基本流量处理类型ProfileTCP,UDP,FastHTTP,FastL4,SCTP(StreamControlTransmissionProtocol)服务流量处理类型ProfileHTTP,FTP,SMTP,RTSP(RealTimeStreamingProtocol),SIP(SessionInitiationProtocol),iSessionSSL处理类型ClientSSL,ServerSSL会话保持类型Cookie,DestinationIP,hash,msrdp,sourceIP,Universal,SSL认证处理类型Radius,CRLDP(Constraint-BasedLabelDistributionProtocol),OCSP(OnlineCertificateStatusProtocol)其他处理类型OneConnect,Statistics,NTLM(NTLANManager),Stream基本流量处理类型Profile22重要的Profile-FastL4ResetonTimeout:在连接达到Timeout的是否向两端发送Reset包IdelTimeout:多长时间连接里面没有数据流量的时候就删除连接表LooseInitiation/LooseClose:是否接收非Syn包建立连接SoftareSynCookieProtection:是否在VS上启用SynCookie,实现Syn攻击防护可能调整的参数重要的Profile-FastL4ResetonTime23重要的Profile-TCP注意在ClientSide和ServerSide可以使用不同的TCPProfile通常情况下建议:Clientside:TCPWANOptimized或LANOptimizedServerside:TCPLANOptimized除非你非常了解TCP的工作原理,否则不要调整除idelTimeout以外的任何参数重要的Profile-TCP注意在ClientSide和S24重要的Profile-ClientSSL对所有进入VS的流量按照SSL协议进行处理注意ClientSSLprofile不一定只能使用在HTTPS上使用ClientSSL的VS不一定使用443端口TMM客户端客户端客户端服务器端服务器端服务器端SSLSSLSSL重要的Profile-ClientSSL对所有进入VS的流25重要的Profile-FTPFTPProfile主要用于处理FTP的主动和被动传输两种模式由于需要配置动态侦听端口,因此FTP协议必须进行单独处理通过iRules也可以达到同样的目的,但由于FTP协议使用非常广泛,因此使用FTPprofile来简化配置和处理FTPProfile必须依赖于TCPprofile工作重要的Profile-FTPFTPProfile主要用于处26为什么要用CMP(ClusterMulti-Processor)性能增长要求CPU的主频增加受到比较大的限制,目前的趋势是以多核扩展为主ASIC(ApplicationSpecificIntergratedCircuits)、NP(NetworkProcessor)的处理架构并不适合于复杂、灵活的流量处理对于不规范的流量,采用硬件加速将导致系统设计僵化,很难加入新的功能实现市场需求需要充分利用CPU的多核处理能力来提升系统的整体性能CMP工作原理为什么要用CMP(ClusterMulti-Process27CMP的硬件支持CMP的硬件支持28CMP工作模式流量由HSB进行分配在多个TMM上,每个TMM占据一个CPUCore,每个TMM有自己独立的内存空间每个TMM都具有相同的配置,包括VS/Profile/iRules/Pool/Persistence等TMM之间通过内存高速总线进行通讯共享通用信息如会话保持表,SNAT源端口等当CMP被Disable的时候,TMM0接管所有的流量64/68的硬件平台已经支持CMP,在10.0上自动开启VIPTMM0VIPTMM1VIPTMM2VIPTMM3HSBHSBSuperVIPCMP工作模式流量由HSB进行分配在多个TMM上,每个TMM29如何查看CMP工作状态btmmshow可以观察每个TMM的状态如何查看CMP工作状态btmmshow可以观察每个TMM30关于CMP必须了解的内容V9平台启动WA(web应用加速器)和ASM(应用安全管理器)将DisableCMPiRules中定义全局变量将DisableCMP所有的非TCP/UDP流量都只使用TMM0进行处理V9中使用Sessionadd,SessionLookup命令将DisableCMPConnectionLimit和RateShaping的配置是针对每个TMM生效手工关闭CMP运行bdbProvision.tmmCount1调整后必须重启任何一个TMMCrash,将导致设备间FailoverTCPdump已经调整为可支持CMP关于CMP必须了解的内容V9平台启动WA(web应用加速器)31查看VirtualServer的CMP工作状态查看VirtualServer的CMP工作状态32如何查看TMMCPU占用率top命令可以显示每颗CPU的占用率和V9相比,TMM的CPU在Top命令中的显示发生了变化每颗CPU的CPU占用率目前在图形界面里都消失了,目前只有整体的CPU占用率如何查看TMMCPU占用率top命令可以显示每颗CPU的占33OneConnect工作原理连接聚合和内容交换index.htma.gifb.gifc.aspsales.htmd.gife.giff.aspsales.htmd.gife.gifindex.htma.gifb.gifc.aspServerf.aspindex.htma.gifb.gifc.aspsales.htmd.gife.giff.aspsales.htmd.gife.gifindex.htma.gifb.gifc.aspServerf.aspindex.htma.gifb.gifc.aspindex.htma.gifb.gifc.aspHTMLserverpoolGIFserverpoolASPserverpool连接聚合内容交换OneConnect工作原理连接聚合和内容交换index.34注:eligiblereuse符合条件的再利用注:eligiblereuse符合条件的再利用35OneConnect的典型工作场景实现连接聚合降低服务器的连接总数需要对每一个请求都进行单独处理(注意在多数情况下,LTM只对一个连接的第一个包进行处理)典型的,打开Cookie会话保持有时候会出现保持不正确的情况,这时就需要打开OneConnect通过设置Mask=55,可以使后台服务器可以“看到”客户端源IP,但这个时候One-connect只对一个客户端的连接起作用OneConnect的典型工作场景实现连接聚合降低服务器的36OneConnect和应用协议注意!OneConnectProfile不是必须和HTTPProfile共用,也可以用于其他应用协议。用于其他应用协议的时候必须使用iRules编程来调用OneConnect在需要对长连接进行拆分处理的时候,也需要用OneConnectProfileOneConnect和应用协议注意!37NAT的工作模式0NATAddress:0NAT和SNATSNAT全称:SecureNetworkAddressTranslationNAT的工作模式0NATAddre38SNAT的工作模式0SNATAddress:0SNAT的工作模式0172.16.139NAT和SNAT之间的差别NAT1比1接收所有发往NAT地址的连接所有的连接只是通过LTM的连接表管理,但是是无状态的,连接不会被Timeout连接不能被镜像SNAT多对一或者多对多拒绝所有发往SNAT地址的连接请求.连接通过LTM的连接表管理,有timeout设置连接可以被镜像NAT和SNAT之间的差别NATSNAT40SNATAutoMap当配置SNATAutoMap的时候,请求从那个VLAN发出去,则SNAT的源地址为VLAN上的SelfIP当一个VLAN上有多个SelfIP存在的时候,SNAT的源地址是在多个SelfIP之间轮询SNATAutoMap当配置SNATAutoMap的时候41SNATPool的工作模式SNATPool是提供了一个可用于SNAT源地址的列表BIGIP采用最小连接数的方式在SNAT的源地址之间进行选择SNATPool的工作模式SNATPool是提供了一个可用42通过iRules控制SNATwhenCLIENT_ACCEPTED{setsnat_addr}whenHTTP_REQUEST{setsnat_addr[HTTP::headerX-Forwarded-For]log"X-Fowarded-Foris[HTTP::headerX-Forwarded-For]"}whenLB_SELECTED{

snat$snat_addr}HTTPSSSLOffload替换源地址Server端需要在TCP连接里面获取客户端源地址通过iRules控制SNATwhenCLIENT_ACCE43SNAT的源地址会话保持whenRULE_INIT{#loglocal5.warning"--------$cnc_snatpool"setsnat_length[llength$cnc_snatpool]loglocal5.warning"--------snatpoollengthis$snat_length"}whenLB_SELECTED{#setclient_addr"3"setclient_ip[IP::client_addr]setclient_last[getfield$client_ip"."4]#loglocal5.warning"--------clientlastis$client_last"setsnat_addr[lindex$cnc_snatpool[expr$client_last%$snat_length]]#loglocal5.warning"------------clientsnataddr$snat_addr"snat$snat_addr}SNAT的源地址会话保持whenRULE_INIT{44Timeout定义和镜像SNAT可以在两台设备之间镜像SNAT对于TCPidleTimeout和UDPidleTimeout可以有独立的设置Timeout定义和镜像SNAT可以在两台设备之间镜像45Monitor如何向外发送请求所有的Monitor请求都是由bigd进程发起Monitor流量要穿过TMM发送到Server或者其他位置在bconn中可以看到Monitor的流量TMMbigdMonitor工作原理Monitor如何向外发送请求所有的Monitor请求都是由46重要的Monitor-TCPSendString:发送的请求字符串,支持C语言的转义符ReceiveString:在返回的内容中查询的字符串Transparent:数据包内的三层发送目的地是AliasAddress,二层的发送目的地是NodeAddress的MAC地址重要的Monitor-TCPSendString:发送的47重要的Monitor-ExternalMonitorMEMBER="${1}";PORT="${2}";HOST_2_RESOLV="${3}";[${#}-ne3]&&exit255PIDFILE="/var/run/pinger.${MEMBER}.eav.${PORT}.pid"if[-f"${PIDFILE}"]thenkill-9`cat"${PIDFILE}"`>/dev/null2>&1fiecho"$$">"${PIDFILE}"MEMBER=`echo$1|sed's/::ffff://'`2>/dev/nulllog_info(){ echo${*}|logger-p##stocksyslog-ngdestinations-# -/var/log/ltm# -/var/log/ltm# -/var/log/messages# -/var/log/messages #thisisfordebugonly!donotcalllog_infobelowunless #youwanttoseeyoursyntaxandtheshellevaluationof #variables(variableexansion)}重要的Monitor-ExternalMonitor48HA工作模式-Active/Active每个VS对外提供不同的服务服务器必须分组,分别指不同的网关在使用SNAT的情况下不需要服务器指不同的网关(建议模式)VS1VS2HA工作原理HA工作模式-Active/Active每个VS对外提供不同49串口心跳线的工作模式没有数据在串口心跳线之间传输两台设备是通过监控Failover线上的电压来决定是否切换,备机一旦检测到主机电压为0则进行接管动作切换时间在200-300毫秒之间SOD(SwitchOverDeamon)进程负责监控Failover线上的电压串口心跳线的工作模式没有数据在串口心跳线之间传输50网络心跳线的工作模式两台设备之间通过网络互相发送心跳信号NetworkFailover可以设置2条路径NetworkFailover和串口心跳线Failover可以同时使用在10.0里的NetworkFailover有巨大的变化网络心跳线的工作模式两台设备之间通过网络互相发送心跳信号51静态负载均衡算法轮询,比率,优先权动态负载均衡算法最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式F5负载均衡算法静态负载均衡算法F5负载均衡算法52◆轮询(RoundRobin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。◆轮询(RoundRobin):顺序循环将请求一次顺序循环53◆比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。◆比率(Ratio):给每个服务器分配一个加权值为比例,根椐54◆优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG-IP用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG-IP才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。◆优先权(Priority):给所有服务器分组,给每个组定义55◆最少的连接方式(LeastConnection):传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。◆最少的连接方式(LeastConnection):传递新56◆最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。◆最快模式(Fastest):传递连接给那些响应最快的服务器57◆观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。◆观察模式(Observed):连接数目和响应时间以这两项的58◆预测模式(Predictive):BIG-IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器响应用户的请求。(被BIG-IP进行检测)◆预测模式(Predictive):BIG-IP利用收集到的59◆动态性能分配(DynamicRatio-APM):BIG-IP收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。◆动态服务器补充(DynamicServerAct.):当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。◆服务质量(QoS):按不同的优先级对数据流进行分配。◆服务类型(ToS):按不同的服务类型(在TypeofField中标识)对数据流进行分配。◆规则模式:针对不同的数据流设置导向规则,用户可自行。常用到的一般是最少连接数、最快反应、或者轮询,决定选用那种算法,主要还是要结合实际的需求◆动态性能分配(DynamicRatio-APM):BIG60F5会话保持F5BigIP支持多种的会话保持方法,其中包括:简单会话保持(源地址会话保持)、HTTPHeader的会话保持,基于SSLSessionID的会话保持,I-Rules会话保持以及基于HTTPCookie的会话保持,此外还有基于SIPID以及Cache设备的会话保持等,但常用的是简单会话保持,HTTPHeader的会话保持以及HTTPCookie会话保持以及基于I-Rules的会话保持。F5会话保持F5BigIP支持多种的会话保持方法,其中包括61简单会话保持简单会话保持又称为基于源地址的会话保持,是指负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问请求都会被保持到一台服务器上去。简单会话保持一个很重要的参数就是连接超时值,BIGIP会为每一个进行会话保持的会话设定一个时间值,两次会话之前的间隔如果小于这个超时值,BIGIP将会将新的连接进行会话保持,但如果这个间隔大于该超时值,BIGIP会将新来的连接认为是新的会话然后进行负载平衡。基于原地址的会话保持实现简单,效率较高。但是多个用户通过代理或地址转换的方式来访问服务器时,会导致服务器之间的负载严重失衡。另外当客户机数量很少,但每个客户机都产生多个并发访问,这时用这种方法也会导致负载均衡失效。简单会话保持62基于Cookie的会话保持基于Cookie的会话保持63Cookie插入模式在Cookie插入模式下,BigIP将负责插入cookie,后端服务器无需作出任何修改。当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP,BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复(不带cookie)被发回BIGIP,然后BIGIP插入cookie,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP插入的cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,由于服务器并不写入cookie,HTTP回复将不带有cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后的会话保持cookie。Cookie插入模式64F5-BIG-IP-LTM-详解(工作原理-配置课件65Cookie重写模式

当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP,BIGIP根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回BIGIP,然后BIGIP重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP重写的cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后会话保持数值到该cookie。Cookie重写模式

66F5-BIG-IP-LTM-详解(工作原理-配置课件67PassiveCookie模式

服务器使用特定信息来设置cookie。当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP,BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入BIGIP,然后BIGIP根据cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新的会话保持cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。PassiveCookie模式68F5-BIG-IP-LTM-详解(工作原理-配置课件69CookieHash模式

当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP,BIGIP根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入BIGIP,然后BIGIP根据cookie里的一定的某个字节的字节数来决定后台服务器接受请求,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新后的cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。CookieHash模式

70F5-BIG-IP-LTM-详解(工作原理-配置课件71SSLSessionID会话保持在用户的SSL访问系统的环境里,当SSL对话首次建立时,用户与服务器进行首次信息交换以:1}交换安全证书,2)商议加密和压缩方法,3)为每条对话建立SessionID。由于该SessionID在系统中是一个唯一数值,由此,BIGIP可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIGIP可以通过会话中的SSLSessionID识别该用户并进行会话保持。基于SSLSessionID的会话保持就需要客户浏览器在进行会话的过程中始终保持其SSLSessionID不变,但实际上,微软InternetExplorer被发现在经过特定一段时间后将主动改变SSLSessionID,这就使基于SSLSessionID的会话保持实际应用范围大大缩小。SSLSessionID会话保持72基于HTTHeader的会话保持

BIGIP可以根据用户HTTP访问里http包头信息信息进行会话保持,HTTP包头里包含以下信息,BIGIP可以将用户访问里这些信息通过表达式来获得相应的数值从而进行会话保持。

Accept:浏览器可接受的MIME类型。

Accept-Charset:浏览器可接受的字符集。

Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。

Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。

Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。

Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP1.1(HTTP1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。基于HTTHeader的会话保持

B73

Content-Length:表示请求消息正文的长度。

Cookie:这是最重要的请求头信息之一,参见后面《Cookie处理》一章中的讨论。

From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。

Host:初始URL中的主机和端口。

If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“NotModified”应答。

Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。

Content-Length:表示请求消息正文的长度74基于I-Rules的会话保持BIGIP交换机内置有强大的搜索引擎,可以高效的探测到网络流量中的IP包内容的部分,并可以读出该IP包内容部分进行会话保持这些内容部分包括如下部分:F5-BIG-IP-LTM-详解(工作原理-配置课件75下面是一个BIGIP根据IRULES进行会话保持的范例:

if(http_uriends_with“.gif”){

usepoolimage_servers

}

elseif(http_uristarts_with“/foo”){

usepoolfoo_servers

}

elseif(http_cookie(“XYZ-Type”)==“direct”){

usepoolcookie_servers

}

elseif(findstr(http_uri,“?type=”,6,“&”)==“cgi”){

usepoolcgi_servers

}

else{

usepoolweb_servers

}

在此I-Rules里,可以看到,如果用户的uri部分以.gif字段结尾,也就是说如果用户访问的是图片服务器,则将用户的访问会话保持在图片服务器上;而如果用户的uri部分以/foo开始,则将会话保持到相应的服务器上。同样,根据用户访问中的cookie字段以及uri里面的某个特定字段里是否与规定的类型相符,从而进行相应的会话保持。下面是一个BIGIP根据IRULES进行会话保持的范例:

i76LTM组网架构单臂接入模式双臂接入模式远程节点模式加入独立SSL/WA/ASM设备防火墙负载均衡多链路接入灾备站点静态路由注入LTM组网架构单臂接入模式77LTM单臂接入模式单臂模式下的网络物理结构服务器服务器LTMLTM外部外部网络

核心三层交换 Vlan1串口心跳线LTM单臂接入模式服务器服务器LTMLTM串口心跳线78核心三层交换服务器服务器LTM01GW:54GW:54VS::80SelfIP:53GW:545454①②③④⑤SIPSportDIPDport①② ③ 6787538888

18080④180538888⑤⑥806787⑥单臂接入-源地址替换模式数据访问流程

Client核心三层交换服务器服务器LTM019279源地址替换后的处理服务器服务器LTM01GW:54GW:54VS::80SelfIP:53GW:545454 核心三层交换①②③④⑤⑥HTTPProfilewhenHTTP_REQUEST{ HTTP::headerinsert"Client_IP=[IP::client_addr]"}Client iRules只有HTTP协议的时候,可以通过将源地址插入到客户端请求的HTTPHeader里,然后在服务器上通过读取这个Header,获得客户端的真实源IP地址源地址替换后的处理服务器服务器LTM180单臂接入-npath模式数据访问流程Client 服务器0Lo: 服务器1Lo:GW:54GW:54 LTMVS::80SelfIP:53GW:54①②③ 54 核心三层交换54 ④⑤SIPSportDIPDport①②6787 ③67878080④⑤806787npath模式的关键在于服务器上配置的loopback地址在上能找到各种服务器的loopback地址如何配置的文档单臂接入-npath模式数据访问流程Client192.1681单臂接入-服务器非直连模式(无源地址替换)核心三层交换LTM Client 服务器0GW:54GW:54VS::80SelfIP:53GW:545454①②③④⑤⑦⑧ ⑥ 服务器1SIPSportDIPDport①②③④⑤⑥⑦⑧

1

67876787 80 80

1

80 806787678754单臂接入-服务器非直连模式(无源地址替换)核心三层交换LTM82客户端服务器LTM0GW:541GW:54VS::80IP:53GW:54同网段访问处理-必须通过SNAT实现 54核心三层交换SIPSportDIPDport①0678780②538888180③180538888④806787①②③④客户端服务器LTM0GW:192.1683服务器服务器LTM单臂接入-服务器更改网关数据访问流程

Client01GW:53GW:53VS::80SelfIP:53GW:545454 核心三层交换①②③④⑤①② SIPSport 6787 DIPDport 80 ③ ④⑤⑥

1

6787 80 801

8067876787⑥服务器服务器LTM单臂接入-服务器更改网关数据访问流程19284Client服务器更改网关后的直接访问服务器问题

服务器0GW:53GW:53 LTMVS::80IP:53GW:54 ①SYN54 核心三层交换54 ②SYN 服务器③SYN-ACK1①② ③ SIP

1Sport 6787 80 DIP1

Dport 80 6787FastL4ProfileClient服务器更改网关后的直接访问服务器问题 服务器GW85双臂接入模式双臂接入-服务器直连

Client 服务器0 服务器1VS:EXTIP:53/VLANEXTINTIP:54/VLANINTGW:545454 核心三层交换SIPSportDIPDport①②③④

1

67876787 80 80

1

80 8067876787①②LTM ③④双臂接入模式双臂接入-服务器直连 服务器 服务器VS:1986双臂接入-串联部署-扩展端口Client 服务器0VS:EXTIP:53/VLANEXTINTIP:54/VLANINTGW:5454 核心三层交换54① ② 服务器1③④ LTM服务器接入交换SIPSportDIPDport①②③④

1

67876787 80 80

1

80 8067876787双臂接入-串联部署-扩展端口Client7双臂接入-串联部署-扩展端口Client 服务器0GW:54GW:54VS:EXTIP:53/VLANEXTINTIP:54/VLANINTGW:5454 核心三层交换54① ② 服务器1③④ LTM服务器接入交换SIPSportDIPDport①②③④

1

67876787 80 80

1

80 8067876787双臂接入-串联部署-扩展端口Client8双臂接入-旁挂模式核心三层交换服务器服务器LTMClient 01GW:54GW:54VS::80EXTIP:53/VLANEXTINTIP:54/VLANINTGW:545454①②③④SIPSportDIPDport①678780②③④

1

6787 80 801

8067876787External_vlanInternal_vlan旁挂模式下LTM可以用不同的端口接入核心交换,也可以采用端口捆绑模式接入核心交换,然后在端口捆绑里通过VLANtag方式来划分多个VLAN

双臂接入-旁挂模式核心三层交换服务器服务器LTMClient89旁挂模式下的服务器直接访问核心三层交换LTMClient 服务器0 服务器1VS:EXTIP:53/VLANEXTINTIP:54/VLANINTGW:545454①②③SIPSportDIPDport①②③

167876787 8011

80 806787FastL4Profile旁挂模式下的服务器直接访问核心三层交换LTMClient1990双臂接入-避免SpanningTreeF5LTM有非常快速的切换机制(200ms),切换完成后会发送ARP广播SpanningTree的重算机制在一些情况下会阻止对端设备收到ARP广播不同设备的ARP更新机制有时会带来很大的麻烦通常情况下,也不建议采用服务器双网卡接入 Client 核心三层交换 LTM服务器接入交换 服务器 Client 核心三层交换 LTM服务器接入交换 服务器双臂接入-避免SpanningTreeF5LTM有非常快91远程节点模式核心三层交换LTMClient 服务器1VS::80SelfIP:53GW:545454①②④ ③⑤①② SIPSport 6787 DIPDport 80③④538888180180538888⑤⑥806787⑥三层交换54服务器 GW:54远程节点模式通常用于服务器不在本地的情况只要路由可达,LTM就可以配置远程服务器作为节点必须采用源地址替换方式,保证服务器返回数据包回到LTM进行处理在同一个VS里面,可以同时存在有本地节点和远程节点,并且可以通过iRules控制在发往不同节点的时候是否启用源地址替换远程节点模式核心三层交换LTMClient192.168.092加入独立SSL/WA/ASM设备加入独立SSL/WA/ASM设备物理连接结构服务器服务器Client 核心三层交换 LTM服务器接入交换 核心三层交换 LTM服务器接入交换ClientSSL/WA/ASM建议所有的SSL/WA/ASM独立设备自身都以单臂模式接入在独立设备上无须开启源地址替换,保证在服务器上接收到的请求源地址为真实的客户端源地址F5所有的独立应用加速/安全设备均支持源地址透传SSL/WA/ASMSSL/WA/ASM加入独立SSL/WA/ASM设备加入独立SSL/WA/93加入独立SSL/WA/ASM设备设备业务逻辑流程VS

ExternalMember

1Member

20ClientSIPSportDIPDport①678780②③6787006787008080④⑤⑥

0006787 80 800

8067876787⑦⑧00

808067876787①②③ ④Member

2VS

Internal ⑤⑥⑦⑧:8000 Member

1SSL/WA/ASM00:80VSExternal:ADDR:Pool:M1::80P1 M2:0:80P1 M3:00:80P10VSInternal:Addr:00Pool:M1::80 M2:0:80加入独立SSL/WA/ASM设备设备业务逻辑流程VS

Ext94防火墙负载均衡组网结构防火墙负载均衡处理-物理连接结构服务器服务器防火墙接入交换机 LTM接入交换机 LTM服务器服务器 LTM接入交换机 LTM接入交换机防火墙防火墙防火墙建议所有的SSL/WA/ASM独立设备自身都以单臂模式接入在独立设备上无须开启源地址替换,保证在服务器上接收到的请求源地址为真实的客户端源地址F5所有的独立应用加速/安全设备均支持源地址透传防火墙负载均衡组网结构防火墙负载均衡处理-物理连接结构服务器95防火墙负载均衡处理-业务逻辑流程LTMLTM防火墙SIPSportDIPDport①②③678767876787000000808080④⑤⑥

00006787

80

8000

8067876787⑦⑧0000808067876787

ClientEXT:01INT:01EXT:INT:54①②防火墙

③④⑤⑥⑦

⑧EXT:54INT:

EXT:00

INT:00防火墙负载均衡模式下,数据包的信息在所有穿过整体系统的过程中都不会被改变3层以上的信息LTM依靠Auto

LastHop记录的源MAC地址来确定将服务器返回数据发送到那个防火墙,而不是依靠路由防火墙可以工作在路由模式或者NAT模式,两种模式下都可以正常工作防火墙负载均衡处理-业务逻辑流程LTMLTM防火墙SIPSp96F5BIG-IPLTM详解北京先进数通信息技术有限公司十二月19F5BIG-IPLTM详解北京先进数通信息技术有限公司十97LTM基础架构VSType详解Profile详解CMP工作原理OneConnect工作原理NAT、SNAT工作原理Monitor工作原理HA工作原理LTM工作原理LTM基础架构LTM工作原理98LTM基础架构什么是TMMTrafficManagementModuleTMOS的核心进程,有自己独立的内存、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运行LTM基础架构什么是TMMTrafficManagemen99TMM处理的范围TMM内部处理功能所有的VS入口流量LTMiRiules处理Profile处理会话保持处理负载均衡算法SSL加速(和硬件结合)HTTP压缩SNAT静态CRL(Certificaterevocationlist证书吊销清单)文件校验不在TMM里面处理的功能WebAcceleratorModule(包括压缩)ApplicationSecurityModuleGTM的分配算法处理(包括GTMrules)Named域名解析健康检查日志管理系统数据统计SNMP数据输出HA健康检查TMM处理的范围TMM内部处理功能所有的VS入口流量不在TM100BIGIP内部结构-V9平台15/34/64/68TM/OS管理CPU万兆/千兆交换端口PVA(PacketVelocityASIC)四层交换专用ASICHostOSWeb界面管理健康检查SNMP……..BridgeTMM0独立的管理机SCCPSSL加解密HTTP压缩AdminConsoleBIGIP内部结构-V9平台15/34/64/68TM/O101BIGIP内部结构-Mecury平台16/36/69/896TM/OS管理CPU万兆/千兆交换端口HiSpeedBridgeTMM2HostOSWeb界面管理健康检查SNMP……..TMM3TMM1TMM0独立的管理机AOMClusterMutiProcessor多CPU并行处理SSL加解密HTTP压缩ConsoleAdminBIGIP内部结构-Mecury平台16/36/69/89102Host和TMM的内存分配Host在启动的时候限定了内存分配的大小,在没有其他module的情况下是384MBTMM进程启动后,将自动获取余下的所有物理内存HostMemoryTMMMemoryHost和TMM的内存分配Host在启动的时候限HostM103查看Host内存占用情况#physmem/查看物理内存大小8387584bmemoryshow/查看内存分配情况MEMORYSTATISTICS--|(Host)Total=3.835GBUsed=3.590GB|(TMM)Total=5.976GBUsed=93.22MB查看Host内存占用情况#physmem/查看物理内104查看TMM内存占用情况TMM分配的内存是准确的,Host内存显示在这里有一些偏差查看TMM内存占用情况TMM分配的内存是准确的,Host内存105VSType详解PerformanceL4StandardVSFastHTTPForwardingVSVSType详解PerformanceL4106PerformanceL4TMM只是负责客户端连接的分配和转发,不改变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客户端客户端客户端服务器端服务器端服务器端PerformanceL4TMM只是负责客户端连接的分配和107PerformanceL4攻击防护-SynCookie正常情况下客户端连接和服务器端连接是1:1的关系TMM在第一次收到客户端Syn包时,并不建立连接表TMM的SynAck回应通过算法回应给客户端Syn,并期待客户端回应的值TMM对客户端ACK进行计算,确认是真实客户端,再和后台服务器建立连接在84/88上可以实现硬件的SynCookie计算,其余的平台都是通过软件实现SynCookie计算SynCookie工作模式下,只有成功建立连接的TCP请求才转发到后台TMMSynSyn,Ack(syncookie)Ack(Cookie)SynSyn-AckAckDataPerformanceL4攻击防护-SynCookie108StandardVS正常情况下客户端连接和服务器端连接是1:1的关系默认工作在全代理模式,客户端和服务器端的TCP连接完全独立客户端和服务器端的TCP参数都是由TMM和双方分别协商默认情况下以客户端源IP和后台建立连接,在打开SNAT的情况下用SNAT地址和后台建立连接StandardVS的端口永远对外开放,无论后台是否有服务器在工作TMMSynSyn,AckAckSynSyn-AckAckDataDataStandardVS正常情况下客户端连接和服务器端连接是1109Standard模式下的攻击防护StandardVS模式具有天然的防攻击功能在遇到Syn攻击的时候会导致系统的连接表过大通过System-SYNCheckActivationThreshold的设置,在达到设置值的时候系统自动启动SynCookie,避免建立过多连接,这个值对全局生效大部分的网络层攻击都无法通过Standard模式的VSStandard模式下的攻击防护StandardVS模式110FastHTTPFastHTTPVS仅用于HTTP协议默认开启OneConnectProfile,对客户端连接进行聚合处理默认开启SNATAutoMap,在服务器端收到的TCP连接请求都是来自于TMM没有会话保持功能不能处理SSL,HTTPSTMM客户端客户端客户端服务器端服务器端服务器端FastHTTPFastHTTPVS仅用于HTTP协议111FowardingVS(ForwardingIP)只能使用FastL4Profile按照连接处理,类似于路由器工作,但不完全一样,在FastL4Profile中开启LooseInitial和LooseClose之后更为接近路由工作模式所有穿过FowardingVS的连接都将产生连接表没有PoolMember,转发完全取决于本地路由可以使用基于4层的RulesTMM客户端查询本地路由表转发客户端请求FowardingVS(ForwardingIP)只能使112VS和ProfileVS作为所有流量的入口Profile依赖于VS,对进入VS的流量进行格式化处理不同的VS可以用同一个Profile或者不同的ProfileProfile之间存在有相互排斥和相互依存的关系VSTCPProfileUDPProfileFastL4ProfileHTTPRTSPClientSSLServerSSLStreamingSMTPSIPOneConnectVS和ProfileVS作为所有流量的入口VSTCPPro113Rules的处理必须依赖于VS对流量的接收通过事件触发机制,Rules可以控制流量在VS内部处理的整个过程SSLCompressionClientSideServerSideTCPExpressServerTCPExpressCachingMicrokernelVirtualServeriRulesClientiControlAPITCPProxyOneConnectXMLRateShapingTrafficShieldWebAccel3rdPartyVS和RulesRules的处理必须依赖于VS对流量的接收SSLCompre114ServeriRulesClientSideServerSideTCPProxyClientSideEventClient_acceptClient_dataCache_requestDNS_requestHTTP_REQUESTHTTP_REQUEST_DATARTSP_REQUEST....ServerSideEventServer_connectServer_dataCache_responseDNS_responseHTTP_RESPONSEHTTP_RESPONSE_DATARTSP_RESPONSE....ServeriRulesClientServerTCPPr115大部分rules只在同一个VS之内有效Rules内创建的变量以连接为生命周期一个VS上可以有多个Rules,它们将被顺序执行CLIENT_ACCPTEDCLIENT_DATALB_SELECTEDLB_FAILEDSERVER_ACCPTEDSERVER_DATACLIENT_CLOSEDSERVER_CLOSEDRULE_INITVS大部分rules只在同一个VS之内有效CLIENT_ACCP116Profile的作用和工作范围Profile依赖于VSProfile是对VS的流量进行格式化处理举例如果一个VS上配置了TCPProfile,则该VS对所有的UDP流量都不会接收Profile详解Profile的作用和工作范围Profile依赖于VSPro117基本流量处理类型ProfileTCP,UDP,FastHTTP,FastL4,SCTP(Str

温馨提示

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

评论

0/150

提交评论