有人能给我举一个例子,说明等成本的多径路由是如何使用散列来决定哪一个包的吗?我对此表示歉意,但我在网上发现的只是ECMP的定义。
发布于 2016-02-17 15:55:41
当多个输出(等成本)路径可用于将数据包转发到同一个网络目的地时,ECMP就会发生。
散列函数必须将信息从传入数据包映射到输出接口。
例如,让我为以下内容编写一个示例性、过于简单的散列函数:
1)用这样的ifIndex绘制每个输出接口:
接口数:3
2)给定目标IP地址A.B.C.D,取最小有效字节D。
例子: IP = 1.0.0.5,D=5
3)将D的值除以接口数,取余数,再加一个。
D = 5
Number of interfaces = 3
Remainder plus 1: 5 % 3 + 1 = 34)将结果作为ifIndex,并在其接口上抛出数据包。
示例:对于IP 1.0.0.5,将数据包写入输出接口Fa2 (ifIndex=3)。
发布于 2016-02-17 16:03:47
负载平衡可以配置为每个数据包或每个目的地(在Cisco设备上)。
来自负载平衡是如何工作的?的报价
对于进程交换-负载平衡是基于每包的基础上的快速交换负载平衡是基于每个目的地的基础上。
更详细的是,在同一条中:
每个目的地和每个包的负载平衡,您可以将负载平衡设置为每个目的地或每个数据包。每个目的地负载平衡意味着路由器根据目标地址分配数据包.给定到同一网络的两条路径,该网络上destination1的所有数据包都经过第一条路径,该网络上的destination2的所有数据包都经过第二条路径,依此类推。这保留了数据包顺序,可能会导致链路的不平等使用。如果一个主机接收到大部分通信量,所有数据包都使用一个链路,这使得其他链路上的带宽未使用。更多的目的地地址会导致更多使用相同的链接。为了实现更平等使用的链接,使用IOS软件为每个目标地址构建一个路由缓存条目,而不是每个目标网络,就像只有一个路径存在时的情况一样。因此,同一目的网络上不同主机的通信量可以使用不同的路径。这种方法的缺点是,对于为数千个目的地主机承载通信量的核心骨干路由器,维护缓存的内存和处理需求变得非常苛刻。每包负载平衡意味着路由器在第一路径上为destination1发送一个数据包,在第二个路径上为(相同) destination1发送第二个数据包,依此类推。每包负载平衡保证所有链路的负载相等.但是,由于网络中可能存在差分延迟,因此有可能导致分组在目的地出现故障。在Cisco IOS软件中,除了发布的11.1CC之外,每个数据包负载平衡都会通过路由缓存禁用转发加速,因为路由缓存信息包括传出接口。对于每个数据包的负载平衡,转发过程通过查找路由表和选择最少使用的接口来确定每个数据包的传出接口。这确保了链路的平等利用,但这是一个处理器密集型任务,并影响整体转发性能。这种形式的每包负载平衡不适合更高的速度接口。每个目的地或每个数据包的负载平衡取决于用于IP分组的交换方案的类型。默认情况下,在大多数Cisco路由器上,在接口下启用快速切换。这是一种按目标进行负载平衡的需求缓存方案。
https://networkengineering.stackexchange.com/questions/27914
复制相似问题