如果相关的话,我正在为无状态网络服务设置一个任播目标。这将是一个特定于站点的配置,几乎没有网络路径长度差异,因此任播功能的目的主要是用于故障转移冗余,部分用于负载共享。我的问题与负载共享功能有关。
我的原型网络如下所示。
R1 <--N1--> Rcore <--N2--> R2
和R1
通过OSPF通告任播目标。如果R2
在其Rcore
和N1
接口上具有相同的成本,并且任播目标在其他每个路由器上具有相同的成本,则我希望在N2
路由表中找到两条成本相同的路径。我不是,至少不是一直如此,甚至不是可以预见的。为什么不呢?以下是其他可能相关的细节。
Rcore
是连接Rcore
和N1
的ABR,它们是分开的。 检查
N2
LSDB确认正确安装了来自Rcore
和R1
的预期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
#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
评论
任播是哪种路由类型?@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的原始路由?