可以在 OSPF 中将链路成本设置为零吗?
是和否...您不能手动将链接的成本设置为 0,但是如果您在网络上进行了指定路由器选举,则从 DR 到同一广播 / NBMA 网络上的任何连接路由器的成本被视为 0。
因此,请确保 AB 和 CD 链路是 OSPF 广播网络;这将强制进行 DR 选举,并使 AB 和 CD 的成本为零。DR 在 OSPF 中有时被称为伪节点。
一旦您在 OSPF 中使 AB 和 CD 链路的成本为零(凭借 DR 选举),如果您想要等成本负载均衡,AC 和 BD 链路应设置为相同的成本。
在某些情况下,这可能是强制负载平衡所需要的。
如果你想要一个通用的解决方案来解决这个问题(不依赖于所涉及的 OSPF 网络的拓扑或类型),你正在制作 MPLS TE 的经典案例之一;OSPF 支持 MPLS TE(请参阅RFC 3630)。
让我们假设:
- 您正在运行 Cisco IOS
- 您只需要在单个 OSPF 区域中进行负载平衡
- 您不是在尝试处理主机上的 NIC 级故障转移(仍然可以使用 MPLS TE 进行管理,但为了简洁起见,我没有在此处进行说明)
- 我下面的配置没有错误(警告:我没有在下面对我的配置进行实验室测试,自从我真正需要 MPLS TE 以来已经快十年了);但是,即使我必须修复配置中的错误,通过 MPLS TE 隧道以等价负载平衡解决问题的概念是正确的。
拓扑
假设图中的所有 IP 地址均取自 10.1.xx..
1.1/30 1.2/30
g1/1 g1/1
A-------------C
g1/2| |g1/2
2.253/24| |3.253/24
| |
| |
2.252/24| |3.253/24
g1/2| |g1/2
B-------------D
g1/1 g1/1
1.5/30 1.6/30
MPLS TE 隧道
构建以下隧道,以便我们可以使用ECMP来满足您的要求。每个隧道接口将具有相同的 OSPF 成本。
- 来自前端路由器 A 的隧道
Tunnel0
: 路径 A -> C
Tunnel1
: 路径 A -> B -> D -> C
- 来自前端路由器 C 的隧道
Tunnel0
: 路径 C -> A
Tunnel1
: 路径 C -> D -> B -> A
环回
- 答:Lo0 10.0.0.1/32
- B:Lo0 10.0.0.2/32
- C:Lo0 10.0.0.3/32
- D:Lo0 10.0.0.4/32
路由器 A 的配置(你可以从这个例子中推导出所有其他的)
参考链接:
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 10.0.0.1 255.255.255.255
!
interface Tunnel0
ip unnumbered Loopback0
tunnel destination 10.0.0.3
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng bandwidth 10000
tunnel mpls traffic-eng path-option 1 explicit name A_C
!!! NOTE: Keep the tunnel up if path-option 1 fails
tunnel mpls traffic-eng path-option 2 dynamic
!
interface Tunnel1
ip unnumbered Loopback0
tunnel destination 10.0.0.3
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng bandwidth 10000
tunnel mpls traffic-eng path-option 1 explicit name A_B_D_C
!!! NOTE: Keep the tunnel up if path-option 1 fails
tunnel mpls traffic-eng path-option 2 dynamic
!
interface GigabitEthernet1/1
description [A -> C]
mtu 1524
mpls mtu 1524
ip mtu 1500
ip address 10.1.1.1 255.255.255.252
ip rsvp bandwidth 10000 10000
mpls traffic-eng tunnels
!
interface GigabitEthernet 1/2
description [A -> B]
mtu 1524
switchport
switchport mode access
switchport access vlan 10
!
interface Vlan10
mtu 1524
mpls mtu 1524
ip mtu 1500
ip address 10.1.2.253 255.255.255.0
standby 10 ip 10.1.2.254
standby 10 priority 105
standby 10 timers msec 200 750
ip rsvp bandwidth 1000000 1000000
mpls traffic-eng tunnels
!
router ospf 10
router-id 10.0.0.1
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
!
ip explicit-path name A_C enable
next-address 10.1.1.2
!
ip explicit-path name A_B_D_C enable
next-address 10.1.2.252
next-address 10.1.1.6
next-address 10.1.3.253
!