我有一个路由器网络,两端有两个客户端,如下图所示。所有路由器都使用基于IP的OSPF路由协议,而在"MPLS主干“子网中的三个路由器都使用基于IP的MPLS协议OSPF,并被认为是负载均衡从jperf-c到jperf-s的流量。客户端配置为正常的ip路由(只是最近路由器的默认网关)。

我知道在实践中,负载平衡在这种情况下是无用的。但这只是一个练习,而不是一个真正的网络。当我用ATM交换机代替MPLS时,负载平衡就起作用了。然而,在MPLS路由器中,所有的TCP和UDP流量都通过R3和R5,即使存在拥塞,因此R4和R6也从未被使用过。最奇怪的是,当我从R7从R1跟踪时,数据包会通过R4和R6。
当交通拥堵的风险发生时,我如何负载平衡交通?我读过OSPF在默认情况下应该这么做,但在我的例子中它没有吗?
所有链接的成本为64,我对路由器2的配置(应该通过负载平衡重定向到R2和R4 )是:
config t
!
ip cef
!
interface Serial2/0
ip address 192.168.0.2 255.255.255.252
no shutdown
!
interface Serial2/1
ip address 192.168.0.5 255.255.255.252
no shutdown
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef
!
interface Serial2/2
ip address 192.168.0.9 255.255.255.252
no shutdown
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef
!
router ospf 1
network 192.168.0.0 0.0.0.3 area 0
network 192.168.0.4 0.0.0.3 area 0
network 192.168.0.8 0.0.0.3 area 0发布于 2014-03-20 10:31:17
..。当我用ATM交换机代替MPLS时,负载平衡就起作用了。
这听起来不像一个平行的比较,因为路由器不关心你是通过ATM还是MPLS LSP转发,它们将以同样的方式负载平衡,假设路由器具有相同的配置。也许你在ATM上做了一些不寻常的事情,但这不是这个问题的焦点。
然而,在MPLS路由器中,所有的TCP和UDP流量都通过R3和R5,即使存在拥塞,因此R4和R6也从未被使用过。最重要的是,当我从R7的R1跟踪时,数据包经过R4和R6。
这其实并不奇怪,这就是路由的工作原理。路由是在每跳的基础上进行的;路由器没有前瞻性的智慧来预测特定路径的后续跳数的拥塞。路由协议在度量计算中不携带关于负载的信息(除了如果你用K值玩游戏,EIGRP,但是这样做会导致路径不稳定)。
尽管如此,在这种情况下,您可以使用不同的算法和强制负载平衡,使用ip load-sharing per-packet on R2 (序列化2/1和串行2/2)以及R7 (串行2/0和2/1):
interface Serial2/1
ip address 192.168.0.5 255.255.255.252
no shutdown
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef
ip load-sharing per-packet
!
interface Serial2/2
ip address 192.168.0.9 255.255.255.252
no shutdown
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef
ip load-sharing per-packet每包负载平衡强制路由器在目的地之间循环通信.您不应该在不考虑后果的情况下使用这是一个生产网络(通常,重新排序数据包.这会使VoIP /视频,有时也会让TCP不开心)。
每包负载平衡在实验室是很棒的,在生产中通常也是不明智的,除非您处于非常特殊的情况下,并且知道您在做什么。每个包的负载平衡也有非常不稳定的平台支持.一些思科路由器(如催化剂6500 Sup720)根本不使用每包负载平衡。
当出现拥塞的风险时,如何使MPLS主干网负载均衡流量?我读过OSPF在默认情况下应该这么做,但在我的例子中它没有吗?
正如我上面提到的,你误解了路由是如何工作的.这是个很大的话题,但我要总结一下这里最相关的信息.
默认情况下,入口标签边缘路由器(LER)处的思科路由器使用每源/每个地址列地址散列可决定采用哪条路径。你可以通过执行show ip cef exact-route [src-ip] [dst-ip].注意下面的label [FOO] TAG adj输出,它指示LDP分配的MPLS标签。
PE4#sh ip cef exact-route 192.168.4.1 192.168.0.5
192.168.4.1 -> 192.168.0.5 => label 154 TAG adj out of GigabitEthernet1/0/0,
addr 10.10.1.189如果我选择了不同的源地址或目的地地址,就有可能看到选择了不同的路径.
PE4#sh ip cef exact-route 192.168.4.1 192.168.0.12
192.168.4.1 -> 192.168.0.12 => label 152 TAG adj out of GigabitEthernet1/0/1,
addr 10.10.1.193如果您想看到路由器上的一般负载平衡配置,请使用show ip cef [dst] internal (借用这个博客的输出).还请注意所选的负载平衡算法(per-destination sharing)。
R2#show ip cef 10.200.4.1 internal
10.200.4.1/32, epoch 0, flags rib only nolabel, rib defined all labels, RIB[B], refcount 5,
per-destination sharing
sources: RIB
feature space:
IPRM: 0x00018000
ifnums:
FastEthernet1/1(5): 192.168.23.3
FastEthernet2/0(6): 172.16.23.3
path 6896722C, path list 68991DF0, share 1/1, type recursive, for IPv4
recursive via 10.4.4.4[IPv4:Default], fib 6894F9B0, 1 terminal fib, v4:Default:10.4.4.4/32
path 689672A4, path list 68991E3C, share 0/1, type attached nexthop, for IPv4
MPLS short path extensions: MOI flags = 0x0 label 19
nexthop 172.16.23.3 FastEthernet2/0 label 19, adjacency IP adj out of FastEthernet2/0,
addr 172.16.23.3 686FC0A0
path 6896731C, path list 68991E3C, share 1/1, type attached nexthop, for IPv4
MPLS short path extensions: MOI flags = 0x0 label 19
nexthop 192.168.23.3 FastEthernet1/1 label 19, adjacency IP adj out of FastEthernet1/1,
addr 192.168.23.3 686FC360
output chain:
loadinfo 689C4DA0, per-session, 2 choices, flags 0003, 6 locks
flags: Per-session, for-rx-IPv4
16 hash buckets
< 0 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
< 1 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
< 2 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
< 3 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
< 4 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
< 5 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
< 6 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
< 7 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
< 8 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
< 9 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
<10 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
<11 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
<12 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
<13 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
<14 > label 19 TAG adj out of FastEthernet2/0, addr 172.16.23.3 686FBF40
<15 > label 19 TAG adj out of FastEthernet1/1, addr 192.168.23.3 686FC200
Subblocks:
None在IOS 12.4中,思科向基于L4端口的负载均衡通信量引入了另一种算法。在全局配置级别使用ip cef load-sharing algorithm include-ports source destination。
MPLS TE引入了负载平衡的另一个转折,包括路径离线优化的可能性;通常您购买一个应用程序来在网络中的各种MPLS TE隧道中执行离线负载优化。这也是一个很深的话题..。我之所以提到它,只是因为你问的是如何“自动”使用MPLS进行负载平衡。
https://networkengineering.stackexchange.com/questions/6918
复制相似问题