运行NetIron 5.2的Brocade路由器和运行IOS 12.4的Dynamips仿真都无法在看上去非常简单的配置中可靠地使用等价路径。我之所以说“可靠”,是因为我确实非常短暂地观察了Brocade的预期行为,但是那是经过长时间的不活动之后,在我干扰系统后就消失了。

如果相关的话,我正在为无状态网络服务设置一个任播目标。这将是一个特定于站点的配置,几乎没有网络路径长度差异,因此任播功能的目的主要是用于故障转移冗余,部分用于负载共享。我的问题与负载共享功能有关。

我的原型网络如下所示。

R1 <--N1--> Rcore <--N2--> R2
R1通过OSPF通告任播目标。如果R2在其RcoreN1接口上具有相同的成本,并且任播目标在其他每个路由器上具有相同的成本,则我希望在N2路由表中找到两条成本相同的路径。我不是,至少不是一直如此,甚至不是可以预见的。为什么不呢?

以下是其他可能相关的细节。




Rcore是连接RcoreN1的ABR,它们是分开的。
检查N2 LSDB确认正确安装了来自RcoreR1的预期LSA,并包含具有正确度量的任意广播目标。

我考虑了三种可能的解释。


我不了解如何在这些平台上配置和操作ECMP。这是可能的,我希望在这里能找到我在供应商文档中找不到的启示。
我不了解OSPF区域,ECMP,Anycast等之间的交互。我认为这不是非常可能,但我还是准备学习一些东西。
这两个供应商的实现遭受相同的错误,功能错误或其他问题。我想这可能发生。

编辑添加了用于Dynamips / Dynagen实现的示例配置和输出。

Configs

路由器R2


!
version 12.4
!
hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf cost 1
!
interface FastEthernet0/0
 ip address 10.1.0.2 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 router-id 10.1.0.2
 log-adjacency-changes
 area 0.0.0.1 nssa no-summary
 passive-interface Loopback0
 network 1.1.1.1 0.0.0.0 area 0.0.0.1
 network 10.1.0.0 0.0.0.3 area 0.0.0.1
!
line console 0
 exec-timeout 0 0
!
end


路由器R1


!
version 12.4
!
hostname R2
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf cost 1
!
interface FastEthernet0/0
 ip address 10.2.0.2 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 router-id 10.2.0.2
 log-adjacency-changes
 area 0.0.0.2 nssa no-summary
 passive-interface Loopback0
 network 1.1.1.1 0.0.0.0 area 0.0.0.2
 network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
 exec-timeout 0 0
!
end


路由器R2


!
version 12.4
!
hostname Rcore
!
interface Loopback0
 ip address 10.0.0.1 255.255.255.255
 ip ospf cost 4
!
interface FastEthernet0/0
 ip address 10.1.0.1 255.255.255.252
 ip ospf cost 2
!
interface FastEthernet0/1
 ip address 10.2.0.1 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 log-adjacency-changes
 area 0.0.0.1 nssa no-summary
 area 0.0.0.2 nssa no-summary
 passive-interface Loopback0
 network 10.0.0.1 0.0.0.0 area 0.0.0.0
 network 10.1.0.0 0.0.0.3 area 0.0.0.1
 network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
 exec-timeout 0 0
!
end


输出

路由器Rcore


Rcore的路由器LSA


Rcore#sh ip ospf database router 10.1.0.2

            OSPF Router with ID (10.0.0.1) (Process ID 1)

        Router Link States (Area 0.0.0.1)

  LS age: 1618
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.1.0.2
  Advertising Router: 10.1.0.2
  LS Seq Number: 80000002
  Checksum: 0x726F
  Length: 48
  Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.1.0.2
     (Link Data) Router Interface address: 10.1.0.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 2


R1的路由器LSA


Rcore#sh ip ospf database router 10.2.0.2

            OSPF Router with ID (10.0.0.1) (Process ID 1)

        Router Link States (Area 0.0.0.2)

  LS age: 1766
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.2.0.2
  Advertising Router: 10.2.0.2
  LS Seq Number: 80000002
  Checksum: 0x8A53
  Length: 48
  Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.0.2
     (Link Data) Router Interface address: 10.2.0.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 2


路由表摘录

Rcore#sh ip route 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 10.1.0.2 on FastEthernet0/0, 00:30:54 ago
  Routing Descriptor Blocks:
  * 10.1.0.2, from 10.1.0.2, 00:30:54 ago, via FastEthernet0/0
      Route metric is 3, traffic share count is 1


评论

任播是哪种路由类型?

@nicotine:任播地址是回送接口上的辅助地址。在此配置的最新排列中,它最终成为路由器LSA中的存根网络。配置摘要和终端抓取。

我试图尽可能减少配置和输出,但不要太多。欢迎提出提高信息密度的建议。

这应该工作。您可以从以下命令发布输出:show ip protocol show ip ospf rib debug ip routing在Rcore上尝试这些命令。这应该为我们提供一些有关为什么未安装双路由的线索。您的OSPF DB输出对我来说很好。

如果您退回活动路线的链接,它是否仍然喜欢原始路线?例如:在您的CLI输出中,它显示了指向10.10.0.2的活动路由。如果您将接口关闭到10.1.0.2足够长的时间以使OSPF邻居中断,然后将其重新联机,是否会重新安装通向10.1.0.2的原始路由?

#1 楼

我首先想到的是OSPF认为它是相同的LSA,而不是简单的相同前缀。我对Brocade的了解不多,但是借助Cisco产品中的LSA输出,我可能会告诉您更多信息。

通常,对于Cisco而言,如果路由在协议中相同,则它们都将显示在路由表中。默认情况下,路由表将同时安装两个路径并执行ECMP。如果度量标准或协议不同,它们将不会进行ECMP。这也将适用于具有相同前缀的不同LSA。

评论


是的-数据库条目应该告诉我们-它们是否具有相同的转发地址和广告路由器?

–烟碱
13年5月8日在23:08

今天下午我将努力获取样本输出。

–neirbowj
13年5月9日在16:35

#2 楼

我正在考虑ECMP是否适合任播。路由应将任播定向到逻辑上最接近的目的地,在该目的地中一台主机将优于另一台。即使在任意播主机是等距的情况下,我仍然希望这仍然适用。至于ECMP负载共享,我认为使用/ 32不可能实现每个目标。也许有考虑到源的负载共享算法。即使对于DNS,每个数据包似乎也有风险。我相信大多数现成的任意播解决方案都在主机上运行ospf。

进行了一些搜索,但是以下来自rfc2178的摘录确定了原因。
16.8。等价多路径

OSPF协议维护到所有
目的地的多个等价路由。这可以在上面用于计算路由表的步骤以及路由表的定义中看到,


多条路由中的每条路由都将是相同的类型(区域内,
区域间,外部1型或外部2型),成本,并且具有相同的关联区域。但是,每个路由都指定一个单独的
下一跳和广告路由器。

评论


嗯,我尝试了一个区域,而ECMP存在于核心中。虽然,我仍然认为/ 32没有用。可能与以下内容有关:morse.colorado.edu/~tlen5710/12s/OSPF.pdf

–丹尼斯·奥尔瓦尼(Dennis Olvany)
13年5月10日在3:20



这表示该区域是ECMP的标准之一。看起来不同领域可能是交易突破者。

–丹尼斯·奥尔瓦尼(Dennis Olvany)
13年5月10日下午3:27

主机上的OSPF-是的,这就是目标。 / 32被分配为回送上的辅助地址。我也正在研究负载共享配置,但这首先取决于ECMP。

–neirbowj
2013年5月10日15:57

#3 楼

我无法使用12.4(24)在实验室中复制它。拓扑相同,RCore区域0回送,R1的lo0和区域1的接口,R2的lo0和区域2的接口(均为NSSA),在Rcore上为ECMP选择了重新分配的路由:
br />
我可以想到的可能性:
取决于路由如何使之成为OSPF,以及使用哪种OSPF路由类型,ASBR路由器的成本可能/可能未计入该路由选择过程(要使ECMP正常工作,路由成本和ASBR的成本必须匹配)。在两者的实际LSA上查看度量标准可能会有所帮助。

通过模仿您的配置,我能够在IOS上重现这一点-将任播内容放置在界面上,并将界面放置在一个区域中。如果确实需要ECMP,请考虑将路由重新分配到OSPF,因为这确实可行。

评论


FWIW,我的Dynamips实例中的图像在7200上为12.4(25d)。您的结果显示为“已知... NSSA extern 2”,而我的显示为“内部区域”。这是一个很好的线索。

–neirbowj
2013年5月9日19:40

重新分配连接将产生该结果,而不是在接口下使用network命令或ip ospf。

–丹尼尔·迪布(Daniel Dib)
13年5月10日下午5:05

@DanielDib我正在耗尽正常/末节/ nssa,区域内/外部以及至少Cisco + Dynamips / Brocade的排列。如果有时间的话,我也会尝试Juniper。

–neirbowj
13年5月10日在13:27

#4 楼

根据您使用的Brocade硬件(MLX?CER?XMR?),您可能需要更新软件。通过5.3(和5.4,具体取决于您的硬件)软件树修复了多个错误,这些错误的症状与OSPF路由成本没有正确更新有关。我不知道查看这些错误的所有标准,但是有两个标准是:如果在1gig端口或运行OSPF的路由器上的回送接口上更改了成本,则更改不会得到处理,成本也不会更新。

我意识到您正在两家制造商的平台上看到此消息,因此这很可能是配置问题。我还意识到,旧的技术支持专家“更新您的软件”通常不值一提。也就是说,可能要记住一些事情。

评论


我会牢记这一点。但是,R1 / R2确定成本,Rcore看到成本,并且Rcore表现出ECMP症状。

–neirbowj
13年5月9日在16:41