Fortinet负载均衡技术 Jan, 2009
1 负载均衡概述 2 链路负载均衡 3 服务器负载均衡 2
负载均衡概述 负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 链路负载均衡 通过为不同链路通过算法分配合理流量,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。 服务器负载均衡 把大量的并发访问或数据流量分担到多台服务器上分别处理,减少用户等待响应的时间
1 负载均衡概述 2 链路负载均衡 3 服务器负载均衡 4
链路冗余——优先路由 大多数公司使用多个ISP线路实现链路冗余,通过路由管理距离值配置实现链路切换。 当ISP A链路出现问题时,流量可以切换到ISP B 通过这种方式可以实现链路冗余,但负载没有在多条ISP链路上分布 ISP A ISP B 10M专线 默认路由 二级路由 DMZ 内部网
链路冗余——优先路由 通过管理距离值选择ISP(路由) 当第一默认路由被检测到失效时,连接切换到第二条路由 ISP A — 第一默认路由 ISP B — 第二默认路由 通过管理距离值选择ISP(路由) 当第一默认路由被检测到失效时,连接切换到第二条路由 可以通过Ping服务器经过接口的可达状态来检测链路是否失效。Ping服务器可以识别到上游设备的3层问题,而不仅仅是通过本地接口的是否失效来检测。
链路冗余——检测接口状态 在本地物理接口状态正常时,ISP也可能不能路由流量 上游设备的三层问题可能造成网络中断 开启网络接口选项可以监测一台上游设备/服务器(通常但不限于是下一跳的路由器) 失效网关检测在网络—>选项中配置阈值
链路冗余——优先路由+PBR 优先路由可以通过策略路由进行扩展,以更好的使用两条链路 内网到外网的非关键流量(端口为80/443),可以被重定向到低宽带的ISP B链路 ISP A可以为关键流量保留(DMZ+Email) 链路A失效时,所有的流量可以切换到链路B 这种方式可提供基本的负载分发功能 ISP A ISP B 10M专线 默认路由 二级路由 80/443端口流量 DMZ 内部网
链路冗余——FortiOS 3.0的ECMP ECMP (Equal Cost Multipath) 通过多个ISP分发流量。当静态路由配置相同的距离值和优先级时,ECMP将会生效 流量基于源地址进行分发 ECMP支持OSPF或静态路由(ECMP只能在相同的路由协议下工作) 两条链路宽带相同时可正常工作,否则,宽带较低的链路将会始终饱合(轮循方式)。 这种方式可以链路冗余及负载均衡 ISP A ISP B 10M专线 默认路由 二级路由 DMZ 内部网
链路冗余——FortiOS 4.0 MR1的ECMP 与3.0相同,4.0的ECMP (Equal Cost Multipath) 通过多个ISP分发流量,但有更多的功能 流量可通过三种方式在链路中分发 源HUSH(与3.0相同) 基于权重(基于权重的下一跳分发) 基于使用率(路由选择基于网关的流量) 最多支持10条链路 ECMP支持OSPF或静态路由(ECMP只能在相同的路由协议下工作) ISP A ISP B 10M专线 默认路由 二级路由 DMZ 内部网
ECMP描述——源 FortiGate基于会话的源地址在ECMP路由中对会话进行负载均衡,例如: 192.168.1.1通过ISP A路由 192.168.1.2通过ISP B路由 192.168.1.3通过ISP A路由 如果在网络中有大量的代理服务,流量分发将不平均 与3.0版本相同的工作方式 ISP A ISP B ECMP 10M专线 默认路由 二级路由 内部网 11
ECMP描述——权重 FortiGate基于增加在ECMP路由中的权重值,在ECMP路由中对会话进行负载均衡,更多的流量将被指向到权重值高的路由 基于4层的负载均衡(源/目的/端口),根据静态路由中的路由权重值决定权重 ISP A ISP B ECMP 10M专线 默认路由 二级路由 权重 10 权重 4 内部网 12
ECMP描述——使用率 FortiGate基于有多少流量经过路由的接口(例如在ISP A的路由接口上配置7Mbps阀值),在ECMP路由中对会话进行负载均衡。超过7Mbps的流量将被动态路由到ISP B。 FortiGate把所有的ECMP路由会话发送到配置最低值的接口,直到这个接口处理的宽带达到链路超载阀值。FortiGate将把后续的会话分配到第二低值的接口中。 ISP A ISP B ECMP 10M专线 默认路由 二级路由 流量超过使用率阀值后,将溢出到另一条链路 内部网 13
注意 在以上所有示例中,内网与多个ISP(公网)之间必须使用NAT地址翻译。 用户的常见问题是:“在网络中使用ECMP后,是否会出现非对称路由的情况”。因为使用了NAT,所以回答的否定的。当流量被发送到任意ISP链路时,内部IP将被NAT为ISP的公网IP。因此,流量的返回路由不可能被指向到其它ISP。 上述所有ECMP描述都应用在对外出(outbound)流量进行路由,而没有对来自Internet的进入(inbound)的流量进行处理。进入流量将通过一些应用程序实现。 14
Inbound负载均衡——SMTP 通过SMTP自有功能实现冗余 在DNS中为MX记录指定权重,在主服务器失效时,可切换到第二台服务器上 MX1.company.com MX2.company.com 通过SMTP自有功能实现冗余 在DNS中为MX记录指定权重,在主服务器失效时,可切换到第二台服务器上 也可以指定相同的权重值,两台服务器以轮循方式工作 MX记录使用相同权重值 MX1 ISP A NAT到邮件服务器 MX2 ISP B NAT到邮件服务器 ISP A ISP B 10M专线 默认路由 二级路由 MX1.company.com MX2.company.com Mail Server DMZ 内部网 15
Inbound负载均衡——HTTP/Web DNS www.company.com www.company.com 在DNS中指定多个IP地址 大多数DNS服务器可以为不同的客户端随机返回一个IP地址。 大多数浏览器在发现第一个IP地址失效时,可以自动切换到第二个IP地址 ISP A ISP B 10M专线 默认路由 二级路由 Web Server DMZ 内部网 16
1 负载均衡概述 2 链路负载均衡 3 服务器负载均衡 17
服务器负载均衡 FortiGate把来自Internet对服务器的访问,分发到多台服务器上 健康检测发现某台服务器失效时,可以把流量分配到其它服务器上 HTTP多路复用技术减少到Web服务器访问的会话数量 SSL Offloading可替代服务器进行SSL认证 服务器 18
服务器负载均衡 访问服务器时,先访问到FortiGate外部接口的虚拟IP地址,由FortiGate将访问转发至真实服务器 VIP Client 访问服务器时,先访问到FortiGate外部接口的虚拟IP地址,由FortiGate将访问转发至真实服务器 一个虚拟IP对应多个真实服务器IP,实现服务器负载均衡 隐藏真实服务器IP,提高安全性 负载均衡支持多种算法 Static Round Robin Weighted First Alive Least RTT Least Session
X 服务器负载均衡健康检测 某台服务器出现问题时,FortiGate将把流量自动转发到状态良好的服务器上 检测服务器状态可用方法 TCP VIP Client 某台服务器出现问题时,FortiGate将把流量自动转发到状态良好的服务器上 检测服务器状态可用方法 TCP HTTP Ping
应用加速—HTTP多路复用 在FortiGate上维持和客户端的大量连接,而在FortiGate和服务器之间建立少量常开的连接 多个客户连接 健康检查 Server Farm 客户请求复用 (通过单个服务器会话) Client 每个连接中的多个请求 在FortiGate上维持和客户端的大量连接,而在FortiGate和服务器之间建立少量常开的连接 减少服务器的资源消耗,提高服务器的处理性能。 服务器必须支持HTTP/1.1
服务器负载均衡——虚拟服务器 配置虚拟服务器,用户通过访问虚拟服务器IP访问物理服务器 服务类型包括HTTP、HTTPS、SSL、TCP、UDP及IP 服务器负载均衡方式选择分配负载的算法 通过健康检查检测服务器的状态 22
负载均衡方式——静态与轮询 静态与轮询方式都可以把流量平均的分配到各台服务器上 静态方式 轮询方式 根据源地址分发负载,实现3层负载均衡 不根据会话进行流量分发 轮询方式 基于会话进行负载均衡 不考虑服务器的响应时间或连接数 服务器 23
负载均衡方式——加权 基于权重值对流量进行分配 基于4层的负载均衡,根据真实服务器中配置的权重值的比例,按比例进行流量分配 权重 权重 10 5 服务器 24
负载均衡方式——最早存活与最小响应时间 最早存活 最小响应时间 永远把流量转向第一个保持存活的服务器 “第一”,指的是虚拟服务器配置中真实服务器的顺序 最小响应时间 根据健康检查的ping获得的RTT来判断将流量传到哪台服务器,流量一直转发到RTT值最低的服务器上 没有配置Ping监测,则默认最小响应时间为0 服务器 25
负载均衡方式——最小连接数 FortiGate始终把流量分配到连接数最少的服务器 连接数是指FortiGate分配在服务器上的连接数量 26
负载均衡保持方式 确保用户在每次发起请求时,都连接到同一台真实服务器 FortiGate根据负载均衡方式把新发起会话发送到某台真实服务器上,如果会话中包含HTTP Cookie或SSL Session ID,则所有的含有相同HTTP Cookie或SSL Session ID的后续会话都将发送到同一台真实服务器 虚拟服务器类型设置为HTTP、HTTPS或SSL时,可配置保持方式 选择无,会话只根据负载均衡方式进行分配。静态方式可以实现会话保持。 选择HTTP Cookie,所有的含有相同的HTTP session cookie的HTTP或HTTPS会话将发送到同一台真实服务器上。 选择SSL Session ID,所有的含有相同的SSL session ID的会话将发送到同一台真实服务器上。 服务器 27
HTTP多路复用 FortiGate上维持和客户端的大量连接,而在FortiGate和服务器之间建立少量常开的连接 最小化TCP会话的建立,减少服务器的资源消耗,提高服务器的处理性能。 服务器必须是HTTP/1.1 HTTP HTTPS 服务器 28
SSL offloading FortiGate进行SSL的加/解密运算,从服务器上“卸载”了SSL协商过程,加速客户端到服务器的SSL连接 仅在客户端和FortiGate设备间使用SSL硬件加速,FortiGate与服务器间使用明文通讯 可最大的提高性能 客户端<->FortiGate <->服务器 客户和FortiGate、FortiGate与服务器间都使用SSL硬件加速 FortiGate与服务器间的SSL协商被简化,仍可以提高SSL性能 SSL计算 服务器 29
X 负载均衡健康检查 FortiGate通过健康检查的方式检测服务器运行状态 健康检查失败的服务器被不会被分配流量 健康检查方式 TCP HTTP PING X 服务器 30
Thank You.