网络中均分负载流量

 在日常的网络运维中,经常会遇到两条或者两条以上链路作为线路的负载,比如ABC三个路由器互联,其中AB就有两条链路互联,那么如何对流量进行均分负载呢?

均分负载可以是等价的也可以是非等价的,一些路由选择协议可以支持等价或者非等价负载均衡,而一些路由协议仅支持等价方式,由于静态路由(思科)没有度量可选,所以仅支持等价负载均衡;

现实往往对负载均衡了解不足,仅以为配置了两台路由条目就已经实现了负载均衡,但是实际原理如何却所致甚少;负载均衡有两种方式:一种是基于目标网络的负载均衡,一种是基于数据包的负载均衡;两种方式基于不同的负载机制和操作命令;这其中必然会使用到cisco的快速转发cef和路由器自带的高速缓存route-cache;

基于目标网络的负载均衡是根据目标地址分配负载,比如到一个网络存在两台路径,那么第一个目标数据包如1.0.0.0从第一条路径通过,第二目标数据包2.0.0.0则选择第二条路径;相同特定目标网络都会从相同的接口出去;这是为什么呢?这其实离不开cisco 的CEF,默认情况下,cisco的CEF功能时开启的,当路由器收到第一个去往特定目标的数据包时,路由器将执行路由表查询并选择出去的接口,然后对被选接口进行ARP封帧,将前面获取的路由和数据链路信息存放在交换的高速缓冲区FIB信息表中,一旦去往相同目标网络则不必查询路由表和ARP表,高速缓冲区立即转发数据包;这样的作用是降低了交换时间和处理器的占用率;

基于数据包的负载均衡称之为过程交换,就是对每个数据包,路由器都要执行路由表查询和接口匹配。每一次数据包确认路由都是相互独立的,所以不会强迫去往相同网络的数据包使用相同的转发接口;但是要实现该功能,必须在接口上关闭路由缓存,no ip route-cache;这种方式虽然分布较为均匀,但是需要耗费较高的交换时间和处理器使用率;同时在一些特定的业务是不能使用的,比如像视频会议和VOIP等;

那么路由器是基于CEF的数据转发还是基于数据包的负载呢?哪一种方式将会被使用,IOS首先基于入口接口的配置来决定交换模式的。如果入口接口上配置了CEF,不管出口的配置是什么,数据包都是基于目标网络进行负载转发;

附:路由器接口可以配置ip load-sharing per-packet和ip load-sharing per-destination命令,不同的负载方式基于不同的命令,大家可以操作实验哦!

本文出自 “love~gg” 博客,转载请与作者联系!

你可能感兴趣的:(负载均衡)