出向链路负载均衡之协议分流

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
在之前的文章《 出向链路负载也需要智能DNS解析》中介绍了通过控制DNS解析实现运营商地址分布均衡进而达到链路流量均衡,在很多网络环境中可以实现保证访问速度的同时,各链路流量也达到均衡分配。但在一些链路环境下,通过目的地址匹配加DNS控制的方式却无法达到这样的效果,尤其在一些高校环境下。其一,用户网络不适合DNS轮询,用户的内网地址为教育网公网地址,DNS也使用教育网地址,如果强行做DNS轮询将会导致教育网的一些域名无法解析;其二,一些网络的链路环境本身不适合,除了同运营商多条链路的环境,还有一些极度不均衡的链路环境,如某校园网,200M联通、200M移动、200M教育网三条链路,由于移动网络与教育网内数据资源少,即使用户完全使用教育网或移动的DNS,联通链路依然是最先被占满的。
针对这样的链路环境本文介绍另外一种出向链路负载均衡的策略:按四层协议分配流量。
使用四层协议分流的原因是TCP和UDP的所承载的应用协议有很大不同,不同的应用对网络的要求也不同。在一个网络中如果打开大多数网站的延迟超过3秒,你可以说这个网络很慢,但此时该网络带宽的利用率可能只有10%,造成访问慢的原因是网络延迟而非带宽,可见http对网络延迟很敏感;在同样的网络打开迅雷下载,会发下载速度很高,这说明迅雷对带宽敏感,但对延迟毫无感觉。对于网络用户,网络的访问感受往往来自于http、邮件等基于tcp的应用,而在P2P大行其道的当今网络,UDP流量往往高于TCP流量很多,针对这样的特点我们可以使用协议分流的方式,实现兼顾访问速度和链路流量均衡的链路负载,即TCP协议流量按照目的地址匹配的方式选择链路,UDP流量通过加权轮询的方式将流量按比例分配到各出口链路。UDP加权轮询保证了各链路负载均衡,不发生拥堵,TCP按目的地址选路实现网络的最快访问。下面介绍以下拓扑案例的配置方法:
 

 

 

1、配置链路负载均衡设备的接口IP地址,静态/动态路由等常规配置,这里不做详细介绍。
2、配置各链路网关并绑定模板。
1)先配置各链路的源地址转换地址;定义健康检测方法。
联通网 snat-pool
ip nat pool snat-cnc 1.1.1.3 1.1.1.3 netmask /28 
移动网 snat-pool
ip nat pool snat-cmcc 2.2.2.3 2.2.2.3 netmask /28 
定义各链路健康检测方法:
ping-cnc-gw
ping-cmcc-gw
ping-cernet-gw
 
2)配置server模板,将1)中配置的snat-pool与health-check在模板中引用
教育网模板不做源nat,调用健康检测方法。
slb template port tem-cernet
   health-check ping-cernet-gw
联通网模板做源nat,调用健康检测方法。
slb template port  tem-cnc
   health-check ping-cnc-gw
   source-nat snat-cnc
3)配置各链路网关、服务组信息
教育网网关
slb server cernet-gw 1.1.1.1
   health-check ping-cernet-gw
        weight 10
   port 0 udp
        no health-check
   port 0 tcp
        no health-check
此处weight值为udp请求加权轮询的权值,配置网关时一定将port配置中的健康检测关闭,否则默认的检测会返回探测失败的结果。移动链路网关cmcc-gw和联通链路网关cnc-gw配置同上,只是weight值不同。
 
服务组分别配置TCP、UDP两种类型服务组,并引入服务器端口模板。
配置TCP的服务组:需要对每条链路都定义一个服务组,服务组内链路对应的网关配置为最高优先级(priority值越高,优先级越高,配置实例中服务组只有cernet-gw生效,cnc-gw在cernet-gw健康检测失败后才会生效),按照以下方式定义cnc-gw-tcp、cernet-gw-tcp、cmcc-gw-tcp三条链路的tcp协议服务组
slb service-group cernet-gw-tcp tcp
    member cernet-gw:0  template tem-cernet priority 15
    member cnc-gw:0  template tem-cnc priority 10
member cmcc-gw:0  template tem-cmcc priority 5
配置UDP服务组:只需配置一个udp的服务组,服务组中的成员优先级相同,流量分配的方式为加权轮询。
slb service-group udp-group udp
    method weighted-rr
    member cernet-gw:0  template tem-cernet priority 5
    member cnc-gw:0  template tem-cnc priority 5
    member cmcc-gw:0  template tem-cmcc priority 5
   
以上配置将源地址nat配置和健康检测与各链路网关绑定,当数据报文按照选路策略选择某条链路时,数据包按照模板做源地址nat;各链路的健康状态也是用模板的检测方法进行检测。
 
3、配置出向策略
定义按目的地址做会话保持模板dip-pst:
slb template persist destination-ip dip-pst
导入国内运营商IP地址信息:
bw-list chinaall tftp://172.31.31.100/chinaall.txt
配置tcp按目的地址选路策略:
slb template policy link-select-tcp
   bw-list name chinaall
   bw-list id 1 service-group ctc-gw-tcp
   bw-list id 2 service-group cnc-gw-tcp
   bw-list id 3 service-group cmcc-gw-tcp
   bw-list id 4 service-group cnc-gw-tcp
   bw-list id 5 service-group cmcc-gw-tcp
   bw-list id 6 service-group cernet-gw-tcp
   bw-list id 7 service-group cernet-gw-tcp
   bw-list use-destination-ip
bw-list id 值为chinaall中每个ip地址后的运营商标识,1到7按顺序为电信、网通、铁通、联通、移动、教育、其他。同样配置link-select-udp策略为非tcp和udp的其它类协议选路使用。
配置出向策略:
slb virtual-server To-Internet 0.0.0.0
   port 0 tcp
      use-rcv-hop-for-resp
      no-dest-nat
      template policy link-select-tcp
   port 0 others
      name _wildcard_v4_TCP_0
      use-rcv-hop-for-resp
      no-dest-nat
      template policy link-select-udp
   port 0 udp
      name _wildcard_v4_UDP_0
      service-group udp-group
      use-rcv-hop-for-resp
      no-dest-nat
    template persist destination-ip dip-pst

配置中tcp与其它类型的协议使用按目的地址选路,udp使用加权轮询的方式进行选路。udp加权轮询中一定要配置基于目的地址的会话保持,以保证udp应用的正常使用,不做此项配置,网内用户的与某个外网地址的通讯可能通过多链路完成,对方的安全机制会当作攻击阻断应用。



本文转自 virtualadc 51CTO博客,原文链接:

http://blog.51cto.com/virtualadc/1050151
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
6月前
|
负载均衡 算法 网络协议
slb监听协议UDP
SLB的UDP监听器适用于实时性高、数据完整性要求低的场景,如视频流和在线游戏。它无连接、不可靠,不保证数据顺序和重传,适合延迟敏感应用。SLB进行UDP会话保持依赖应用层协议或数据包标识符,使用定制健康检查检测后端服务器状态,并支持多种负载均衡算法。配置时注意网络环境对UDP的支持,确保流量畅通。
98 4
|
6月前
|
负载均衡 网络协议 算法
slb监听协议与端口
SLB是云服务商提供的负载均衡服务,用于分发客户端请求到多台后端服务器,提升服务可用性和响应速度。关键概念包括监听协议(TCP、UDP、HTTP、HTTPS、TCPSSL)和监听端口。监听协议决定了SLB处理请求的方式,而监听端口则是SLB接收请求的入口。配置时需根据应用选择合适协议和端口,并可设置负载均衡算法(如轮询、最少连接等)。客户端应通过SLB统一入口访问后端服务,避免绕过SLB导致的问题。
518 2
|
6月前
|
负载均衡 网络协议 安全
slb选择监听协议和端口
阿里云SLB中,监听协议(TCP、HTTP、HTTPS)与端口(80、443等)决定客户端请求的处理方式。TCP适用于纯TCP或自处理HTTP的场景,HTTP用于智能调度Web服务,HTTPS提供安全的HTTP传输。监听端口通常匹配应用标准,如80 for HTTP,443 for HTTPS。配置时,可考虑HTTPS重定向和传递`X-Forwarded-Proto`头以识别请求来源。选择应基于业务需求和安全考虑。
262 3
|
6月前
|
负载均衡 算法 网络协议
【专栏】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议
【4月更文挑战第28天】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议。VRRP实现路由器冗余,保证流量转发;VGMP优化多播流量传输,适合多媒体服务;HRP提供无缝故障转移,适用于电信级网络。选择需考虑网络环境和业务需求,VRRP简单易部署,VGMP处理多播流量,HRP适合高稳定性场景。理解协议特点,确保网络最佳性能和可用性。
168 4
|
6月前
|
运维 监控 算法
slb监听协议http
SLB的HTTP监听器用于处理HTTP请求,配置时选择协议类型为HTTP和前端端口(如80)。SLB根据负载算法将请求转发至健康后端服务器,并支持会话保持。通过`X-Forwarded-For`和`X-Forwarded-Proto`头处理请求信息。由于不涉及SSL/TLS,数据传输不安全,推荐升级至HTTPS以加密通信。SLB提供性能监控和故障排查工具,帮助运维管理。
136 5
|
6月前
|
负载均衡 网络协议 安全
slb监听协议tcp
SLB的TCP监听协议适用于WebSocket支持和通用TCP服务,如FTP、SMTP。配置时设定监听端口,健康检查通过TCP握手检测服务器可用性。会话保持基于源IP,可配置SSL/TLS卸载或端到端加密。注意特定HTTP头传递和平台限制。适用于需要传输层流量管理和不依赖HTTP的应用。
130 3
|
弹性计算 负载均衡 算法
【阿里云ALB应用型负载均衡】功能体验 & 利用ALB进行Serverless与ECS分流
Load Balance,负载均衡是一个大型网站永远绕不开的话题,相信略懂架构的人都了解负载均衡技术,他同时出现在服务器架构和网络架构之中,针对不同应用场景有软负载均衡和硬负载均衡产品。当单节点类型的站点无法满足业务时,我们就必须拓展服务器数量,由负载均衡提供前端访问能力,将访问流量分摊给后端服务器,而后端的服务器可横向拓展。
1780 0
【阿里云ALB应用型负载均衡】功能体验 & 利用ALB进行Serverless与ECS分流
|
负载均衡 算法
leach协议性能对比仿真,包括死亡节点数,数据传输,网络能量消耗,簇头产生数以及负载均衡度
leach协议性能对比仿真,包括死亡节点数,数据传输,网络能量消耗,簇头产生数以及负载均衡度
318 0
leach协议性能对比仿真,包括死亡节点数,数据传输,网络能量消耗,簇头产生数以及负载均衡度
|
负载均衡 算法 网络协议
图解网络:什么是网关负载均衡协议GLBP?
GLBP 是 Cisco 专有协议,是第一跳冗余协议 (FHRP) 之一,与 HSRP 和 VRRP 不同,它允许流量在多个路由器之间进行负载平衡。
458 0
图解网络:什么是网关负载均衡协议GLBP?
|
负载均衡 网络协议 NoSQL
我的mqtt协议和emqttd开源项目个人理解(10) - 建立高可用集群,负载均衡haproxy
我的mqtt协议和emqttd开源项目个人理解(10) - 建立高可用集群,负载均衡haproxy
671 0
我的mqtt协议和emqttd开源项目个人理解(10) - 建立高可用集群,负载均衡haproxy