科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换出向链路负载均衡之协议分流

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

通过控制DNS解析实现运营商地址分布均衡进而达到链路流量均衡,在很多网络环境中可以实现保证访问速度的同时,各链路流量也达到均衡分配。但在一些链路环境下,通过目的地址匹配加DNS控制的方式却无法达到这样的效果,尤其在一些高校环境下。

来源:比特网 2012年11月12日

关键字: 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

移动网模板tem-cmcc与联通设置方法相同。

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-listchinaall 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 id 值为chinaall中每个ip地址后的运营商标识,1到7按顺序为电信、网通、铁通、联通、移动、教育、其他。同样配置link-select-udp策略为非tcp和udp的其它类协议选路使用。

配置出向策略:

slb virtual-server To-Internet 0.0.0.0

port 0 tcp

name _wildcard_v4_TCP_0

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应用的正常使用,不做此项配置,网内用户的与某个外网地址的通讯可能通过多链路完成,对方的安全机制会当作攻击阻断应用。


    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章