OSPF: 常见问题
问题
前言
OSPF 中为什么将环回作为 /32 主机路由通告?
如何更改 OSPF 的参考带宽?
OSPF 如何计算其度量或成本?
OSPF 路由协议交换是否经过身份验证?
什么是链路状态重传间隔?用什么命令设置它?
变量 IP-OSPF-Transmit-Delay 起什么作用?
在 OSPF 中是否只有虚拟链路的静态选项允许不连续网络,而不管掩码传播属性如何?
多播 IP 地址是否将映射到 MAC 级别多播地址?
Cisco OSPF 实现是否支持基于 IP TOS 的路由?
offset-list 子命令对 OSPF 起作用吗?
在本身没有 OSPF 默认路由的路由器上能否根据外部信息在系统中生成默认路由?
能否在 OSPF 中使用 distribute-list in/out 命令过滤路由?
如何向 OSPF 域间路由赋予比域内路由更高的优先级?
是否必须用 OSPF neighbor 子命令为交换式多兆位数据服务 (SMDS) 网云上的路由器手动设置邻接?
在 OSPF 进程之间重分配路由时,是保留所有最短路径优先算法 (SPF) 度量还是使用默认度量值?
Cisco 如何在部分网状帧中继网络中实现 OSPF 路由?
将未编号接口分配到一个区域时应该使用哪个地址通配符掩码对?
OSPF 中能否对一端编号而对另一端保持不编号?
配置路由器 OSPF 1 时,为什么收到“cannot allocate router id”错误消息?
配置路由器 OSPF 1 时,为什么收到“unknown routing protocol”错误消息?
Show ip ospf interface 命令输出中的状态 DR、BDR 和 DROTHER 表示什么意思?
发出 show ip ospf neighbor 命令时,为什么只看到 FULL/DR 和 FULL/BDR,而对于所有其他邻居显示 2-
WAY/DROTHER?
在串行链路上为什么看不到 FULL/DR 或 FULL/BDR 类型的 OSPF 邻居?
在 BRI/PRI 链路上运行 OSPF 是否需要使用任何特殊命令?
在异步链路上运行 OSPF 是否需要使用任何特殊命令?
哪个 Cisco IOS 软件版本开始支持 OSPF 中的每接口身份验证类型?
向次末节区域 (NSSA) 导入外部路由时能否控制 P 位?
OSPF show 命令的响应为什么非常慢?
clear ip ospf redistribution 命令有何用途?
OSPF 是否会使不在同一子网中的邻居形成邻接?
OSPF 多长时间发送一次链路状态通告 (LSA)?
在 OSPF 网络中如何阻止单个接口发展邻接?
当 OSPF 数据库中对同一外部网络有两个类型 5 链路状态通告 (LSA) 时,应该在 IP 路由表中安装哪条路径?
Cisco 1600 路由器为什么无法识别 OSPF 协议?
Cisco 800 路由器为什么不能运行 OSPF?
在同一网络中的多个路由器上配置 OSPF 时,是否应使用相同进程号?
当路由器中同时运行 Cisco 快速转发 (CEF) 和 OSPF 时,如果与目标之间存在多条路径,由谁执行负载均衡?
OSPF 如何使用两条多链路路径传输数据包?
如何能迅速地发现拓扑变化?
3825 系列路由器是否支持 OSPF 末节功能?
错误消息 %OSPF-4-FLOOD_WAR: Process process-id re-originates LSA ID ip address type-2 adv-rtr ip address
in area area id 表示什么意思?
能否在 GRE 隧道上运行 OSPF?
相关信息
前言
本文档讨论与开放最短路径优先 (OSPF) 相关的最常见问题 (FAQ)。 本文档仅涉及 OSPF 版本 2。 在 Cisco IOS® 软件版本12.0(24)S、12.2(18)S 和 12.2(15)T 中引入的 OSPF 版本 3 用于分发 IP V6 路由信息; 本文档中未明确涉及 OSPF 版本 3。 在本文档范围内,“OSPF”指的是 OSPF 版本 2,“IP”指的是 IP V4。
问。 OSPF 中为什么将环回作为 /32 主机路由通告?
答:在 OSPF 中,环回被视为主机路由,并通告为 /32。 有关详细信息,请参阅 RFC 2328 中的第 9.1 部分。 在Cisco IOS 软件版本 11.3T 和 12.0 中,如果在环回下配置了 ip ospf network point-to-point 命令,OSPF 会将环回子网作为在环回上配置的实际子网通告。 ISDN 拨号器接口通告 /32 子网,而不是其配置的子网掩码。 如果配置了 ip ospf network point-to-multipoint,则这是期望的行为。
问。 如何更改 OSPF 的参考带宽?
A. 在 Cisco IOS 软件版本 11.2 及更高版本中,可以在 router ospf 下面使用 ospf auto-cost reference-bandwidth
命令更改参考带宽。 默认情况下,参考带宽为 100 Mbps。
问。 OSPF 如何计算其度量或成本?
答:OSPF 使用参考带宽 100 Mbps 计算成本。 计算成本的公式是用参考带宽除以接口带宽。 例如,对于以太网,成本为 100 Mbps/10 Mbps = 10。
注意: 如果在接口上使用了 ip ospf cost cost,则它会覆盖用公式计算出的成本。
问。 OSPF 路由协议交换是否经过身份验证?
A. 是,OSPF 可以对邻居之间交换的所有数据包进行身份验证。 身份验证可能是通过简单的口令或通过 MD5 密码校验和
进行。 要为一个区域配置简单的口令验证,请使用命令 ip ospf authentication-key 将最多包含八个八位字节的口令分配给与该区域连接的每个接口。 然后,对 OSPF 路由器配置发出 area x authentication 命令启用身份验证。 (在该命令中,x 是区域号。)
Cisco IOS 软件版本 12.x 还支持在每个接口上单独启用身份验证。 如果只想在某些接口上启用身份验证,或者如果要在属于同一区域的不同接口上使用不同的身份验证方法,请使用 ip ospf authentication 接口模式命令。
问。 什么是链路状态重传间隔?用什么命令设置它?
答:OSPF 必须对新收到的每个链路状态通告 (LSA) 发送确认。 它通过发送 LSA 数据包进行确认。 LSA 会进行重传,直到确认为止。 链路状态重传间隔定义两次重传所间隔的时间。 可以使用命令 ip ospf retransmit-interval 设置重传间隔。 默认值为 5 秒。
问。 变量 IP-OSPF-Transmit-Delay 起什么作用?
A. 此变量用于在更新的 age 字段中添加指定的时间。 如果在通过某个链路传输之前未增加延迟时间,
则不会考虑链路
状态通告 (LSA) 通过该链路传播所用的时间。 默认值为 1 秒。 此参数对于传输速度很低的链路更为重要。
问。 在 OSPF 中是否只有虚拟链路的静态选项允许不连续网络,而不管掩码传播属性如何?
A. 否,OSPF 中的虚拟链路用于维持从非骨干网区域到骨干网的连接,但它们并非不连续编址所必需的。 OSPF 支持不连
续网络是因为每个区域都包含一个网络集合,并且 OSPF 在每个通告中附加一个掩码。
问。 多播 IP 地址是否将映射到 MAC 级别多播地址?
答:OSPF 使用多播编址发送所有通告。 除令牌环外,多播 IP 地址都将映射到 MAC 级别多播地址。 对于令牌
环,Cisco 将多播 IP 地址映射到 MAC 级别广播地址。
问:Cisco OSPF 实现是否支持基于 IP TOS 的路由?
答:Cisco OSPF 仅支持 TOS 0。 这表示路由器在 TOS 0 路径上路由所有数据包,而不需要计算非零 TOS 路径。
问:offset-list 子命令对 OSPF 起作用吗?
A. offset-list 命令对 OSPF 不起作用。 该命令用于距离矢量协议,例如,内部网关路由协议 (IGRP)、路由信息协议
(RIP) 和 RIP 版本 2。
问。 在本身没有 OSPF 默认路由的路由器上能否根据外部信息在系统中生成默认路由?
答:仅当使用命令 default-information originate 配置了 OSPF 并且系统中存在来自另一个进程的默认网络时,OSPF 才生成默认路由。 OSPF 中的默认路由为 0.0.0.0。 如果想要启用了 OSPF 的路由器生成默认路由(即使该路由器本身没有默认路由也如此),请使用命令 default-information originate always。
问。 能否在 OSPF 中使用 distribute-list in/out 命令过滤路由?
A. OSPF 中支持 distribute-list 命令,但该命令在 OSPF 中的作用与在距离矢量路由协议(例如,路由信息协议
(RIP) 和增强型内部网关路由协议 (EIGRP))中不同。 不能过滤 OSPF 路由使其无法进入 OSPF 数据库。 distribute-
list in 命令仅过滤路由使其无法进入路由表; 它不能阻止链路状态数据包传播。 因此,该命令不能帮助节省路由器内存,并且它不能禁止路由器将已过滤的路由传播到其他路由器。
警告: 如果实施时不小心,在 OSPF 中使用 distribute-list in 命令可能会导致网络中形成路由环路。
命令 distribute-list out 仅对由自治系统边界路由器 (ASBR) 重分配到 OSPF 中的路由起作用。 可以将该命令应用于外部类型 2 和外部类型 1 路由,但不能应用于域内路由和域间路由。
问。 如何向 OSPF 域间路由赋予比域内路由更高的优先级?
答:根据 RFC 2328 的第 11 部分,OSPF 路由的优先级顺序如下:
域内路由,O
域间路由,O IA
外部路由类型 1,O E1
外部路由类型 2,O E2
不能更改该优先级规则。 但是,该规则仅在单个 OSPF 进程内适用。 如果一个路由器正在运行多个 OSPF 进程,则会进行路由比较。 路由比较是对 OSPF 进程的度量和管理距离(如果它们已更改)进行比较。 比较两个不同的 OSPF 进程提供的路由时,会忽略路由类型。
offset命令问。 是否必须用 OSPF neighbor 子命令为交换式多兆位数据服务 (SMDS) 网云上的路由器手动设置邻接?
A. 在 Cisco IOS 软件版本 10.0 之前的版本中,需要使用 neighbor 命令在非广播多路访问 (NBMA) 网络(例如,帧中
继、X.25 和 SMDS)上建立邻接。 对于 Cisco IOS 软件版本 10.0 及更高版本,可以使用 ip ospf network broadcast 命令将网络定义为广播网络,而不需要使用 neighbor 命令。 如果使用的不是全网状 SMDS 网云,则必须使用 ip ospf network point-to-multipoint 命令。
问。 在 OSPF 进程之间重分配路由时,是保留所有最短路径优先算法 (SPF) 度量还是使用默认度量值?
A. 保留 SPF 度量。 在 OSPF 进程之间重分配就像在任意两个 IP 路由进程之间重分配一样。
问。 Cisco 如何在部分网状帧中继网络中实现 OSPF 路由?
A. 可以配置 OSPF,以了解 OSPF 是否应该尝试在多路访问接口上使用多播设备。 此外,如果可以使用多播设备,OSPF
是否将其用于正常多播。
Cisco IOS 软件版本 10.0 包括称为子接口的功能。 可以在帧中继中使用子接口,以便将一组虚拟电路 (VC) 结合在一起形成一个虚拟接口,该虚拟接口充当单个 IP 子网。 该子网中的所有系统都应该是全网状的。 对于 Cisco IOS 软件版本 10.3、11.0 及更高版本,ip ospf point-to-multipoint 命令也可用。
问。 将未编号接口分配到一个区域时应该使用哪个地址通配符掩码对?
A. 配置未编号接口时,该接口将引用路由器上的另一个接口。 在未编号接口上启用 OSPF 时,请使用未编号接口所指向
的接口的地址通配符掩码对。
问。 OSPF 中能否对一端编号而对另一端保持不编号?
A. 否,如果对一端编号而对另一端不编号,则 OSPF 将不能工作。 这会使 OSPF 数据库中存在矛盾,从而导致无法将路
由安装在路由表中。
问。 配置路由器 OSPF 1 时,为什么收到“cannot allocate router id”错误消息?
答:OSPF 选择最高的 IP 地址作为路由器 ID。 如果配置了 IP 地址的接口都不处于 up/up 模式,则会返回该错误消息。 要解决该问题,请配置环回接口。
问。 配置路由器 OSPF 1 时,为什么收到“unknown routing protocol”错误消息?
A. 您的软件可能不支持 OSPF。 使用 Cisco 1600 系列路由器时,最常出现此错误消息。 如果您使用的是 1600 路由
器,则需要 Plus 映像才能运行 OSPF。
问。 show ip ospf interface 命令输出中的状态 DR、BDR 和 DROTHER 表示什么意思?
答:DR 表示指定路由器。 BDR 表示备份指定路由器。 DROTHER 表示既不是 DR 也不是 BDR 的路由器。 DR 生成网络链路状态通告,该通告列出网络中的所有路由器。
问。 发出 show ip ospf neighbor 命令时,为什么只看到 FULL/DR 和 FULL/BDR,而对于所有其他邻居显示
2-WAY/DROTHER?
A. 为了减少广播媒体(例如,以太网、FDDI 和令牌环)上的泛洪量,路由器仅对于指定路由器 (DR) 和备份指定路由器
(BDR) 显示为 Full,而对于所有其他路由器显示为 2-WAY。
问。 在串行链路上为什么看不到 FULL/DR 或 FULL/BDR 类型的 OSPF 邻居?
A. 这是正常现象。 在点对点网络和点到多点网络中,没有指定路由器 (DR) 或备份指定路由器 (BDR)。
问。 在 BRI/PRI 链路上运行 OSPF 是否需要使用任何特殊命令?
答:除了正常的 OSPF 配置命令外,还应使用 dialer map 命令。 使用 dialer map 命令时,请使用 broadcast 关键字指示应将广播转发给协议地址。
问。 在异步链路上运行 OSPF 是否需要使用任何特殊命令?
答:除了正常的 OSPF 配置命令外,还应在异步接口上使用 async default routing 命令。 此命令使路由器能够通过异步接口将路由更新传递给其他路由器。 此外,使用 dialer map 命令时,请使用 broadcast 关键字指示应将广播转发给协议地址。
问。 哪个 Cisco IOS 软件版本开始支持 OSPF 中的每接口身份验证类型?
答:Cisco IOS 软件版本 12.0(8) 中增加了 RFC 2178 中说明的每接口身份验证类型。
问。 向次末节区域 (NSSA) 导入外部路由时能否控制 P 位?
A. 向类型 7 链路状态通告 (LSA) 中的 NSSA 导入外部路由信息时,该类型 7 LSA 只有区域泛洪范围。 为了进一步分
发外部信息,类型 7 LSA 在 NSSA 边界转换为类型 5 LSA。 类型 7 LSA Options 字段中的 P 位指示是否应转换类型 7 LSA。 只有设置了 P 位的那些 LSA 才会转换。 将信息重分配到 NSSA 中时,会自动设置 P 位。 当自治系统边界路由器 (ASBR) 还充当区域边界路由器 (ABR) 时,有一种可能的解决方法。 此时,NSSA ASBR 可以通过 not-advertise 关键字进行汇总,这导致不会通告已转换的类型 7 LSA。
问。 OSPF show 命令的响应为什么非常慢?
A. 发出 OSPF show 命令时,该命令的响应可能非常慢,但运行其他命令时不存在该问题。 导致此延迟的最常见原因是
在路由器上配置了 ip ospf name-lookup 配置命令。 此命令导致路由器对所有 OSPF show 命令查设备域名系统(DNS) 名称,这样便于标识设备,但会使命令的响应时间变长。 如果不仅仅是 OSPF show 命令的响应非常慢,运行其他命令时也存在相同问题,则可能需要查其他可能的原因,比如 CPU 使用率是否过高。
问。 clear ip ospf redistribution 命令有何用途?
A. clear ip ospf redistribution 命令用于清除所有类型 5 和类型 7 链路状态通告 (LSA),并扫描路由表以查重分
配的路由。 这使得网络上所有收到清除的/更新的 LSA 的路由器中存在部分最短路径优先算法 (SPF)。 当期望的重分配路由不在 OSPF 中时,此命令可能有助于更新 LSA 并将该路由放入 OSPF 中。
问:OSPF 是否会使不在同一子网中的邻居形成邻接?
答:对于不在同一子网中的邻居,只有当这些邻居是通过点对点链路连接时,OSPF 才在它们之间形
成邻接。 使用 ip unnumbered 命令时可能需要那样做,但在所有其他情况下,邻居必须在同一子网中。
问:OSPF 多长时间发送一次链路状态通告 (LSA)?
答:当 LSA 老化时间达到链路状态刷新时间(1800 秒)时,OSPF 会发送其自己生成的 LSA。
问。 在 OSPF 网络中如何阻止单个接口发展邻接?
A. 要在特定接口上阻止路由器成为 OSPF 邻居,请在该接口发出 passive-interface 命令。
在 Internet 服务提供商 (ISP) 和大型企业网络中,许多分发路由器都有超过 200 个接口。 在 200 个接口中的每个接口上配置 passive-interface 是一项困难的任务。 在这种情况下,默认解决方案是使用单个 passive-interface default 命令将所有接口配置为被动接口。 然后,使用 no passive-interface 命令配置需要邻接的各个接口。 有关详细信息,请参阅默认被动接口功能。
passive-interface default 命令存在一些已知问题。 Cisco Bug ID CSCdr09263 (仅限注册用户)中列出了相应的解决方法。
问。 当 OSPF 数据库中对同一外部网络有两个类型 5 链路状态通告 (LSA) 时,应该在 IP 路由表中安装哪条路径?
A. 当 OSPF 数据库中对同一外部网络有两个类型 5 LSA 时,请优先选择到自治系统边界路由器 (ASBR) 具有最短路径的
外部 LSA 并将它安装到 IP 路由表中。 请使用 show ip ospf border-routers 命令检查到 ASBR 的成本。
问。 Cisco 1600 路由器为什么无法识别 OSPF 协议?
答:Cisco 1600 路由器需要 Cisco IOS 软件的 Plus 功能集映像才能运行 OSPF。 有关详细信息,请参阅表 3: Cisco 1600 系列路由器功能集,该表位于 Cisco IOS 版本 11.2(11) 软件功能包发行版本注释(适用于 Cisco 1600 系列路由器)中。
问。 Cisco 800 路由器为什么不能运行 OSPF?
答:Cisco 800 路由器不支持 OSPF。 但是,它们支持路由信息协议 (RIP) 和增强型内部网关路由协议 (EIGRP)。 要获取有关功能支持的详细信息,请使用 Software Advisor(仅限注册用户)工具。
问。 在同一网络中的多个路由器上配置 OSPF 时,是否应使用相同进程号?
答:与边界网关协议 (BGP) 或增强型内部网关路由协议 (EIGRP) 不同,在邻居路由器之间形成邻接并交换路由信息
时,OSPF 不检查进程号(或自治系统编号)。 仅当 OSPF 用作多协议标签交换 (MPLS) VPN 中提供商边缘到客户边缘
(PE-CE) 链路上的路由协议时,才会考虑 OSPF 进程号。 PE 路由器使用派生自 OSPF 进程号的域属性标记 OSPF 路由,以指示该路由是源自同一 OSPF 域还是源自该域外部。 如果 MPLS VPN 中的 PE 路由器上的 OSPF 进程编号不一致,则应该使用 domain-id OSPF 模式命令将具有不同编号的 OSPF 进程标记为属于同一 OSPF 域。
在许多实际情况下,这表示可以对网络中的同一 OSPF 域使用不同的自治系统编号。 但是,应尽可能使用一致的 OSPF
进程编号。 编号一致性可简化网络维护,并符合网络设计者的意图,将路由器保持在同一 OSPF 域中。
问。 当路由器中同时运行 Cisco 快速转发 (CEF) 和 OSPF 时,如果与目标之间存在多条路径,由谁执行负载均衡?
答:CEF 的工作方式是根据路由协议(如 OSPF)所填充的路由表执行数据包的交换。 计算路由协议表之后,CEF 会执行负载均衡。 有关负载均衡的详细信息,请参阅负载均衡的工作原理?
问。 OSPF 如何使用两条多链路路径传输数据包?
答:OSPF 使用与带宽相关的度量 aCost。 如果有成本相同的路径(两个多链路上的带宽相同),则 OSPF 会将这两个路由都安装在路由表中。 路由表尝试均衡地使用这两个链路,而不管接口使用率如何。 如果第一个多链路中的一个链路出现故障,OSPF 不会让所有流量通过第二个多链路发送。 如果第一个多链路的峰值为 100%,OSPF 不会让任何流量通过第二个多链路发送,因为 OSPF 尝试均衡地使用两个链路,而不管接口使用率如何。 只有在第一个多链路断开时,才会完全利用第二个多链路。
问。 如何能迅速地发现拓扑变化?
答:为了迅速地对拓扑变化进行故障检测,需要将 hello 计时器值设置为 1 秒。 此外,还需要配置 hold 计时器值,该值是 hello 计时器值的四倍。 如果设置的 hello 和 hold 计时器值小于其默认值,则路由流量可能会增多。
问:3825 系列路由器是否支持 OSPF 末节功能?
A. 运行 Advanced IPServices 映像的 3800 系列路由器支持 OSPF 末节功能。
问。 错误消息 %OSPF-4-FLOOD_WAR: Process process-id re-originates LSA ID ip address type-2
adv-rtr ip address in area area id 表示什么意思?
A. 对于正在刷新网络的某路由器,当由于路由器收到的网络 LSA 的 LSA ID 与该路由器的其中一个接口的 IP 地址相冲
突,因此路由器将该 LSA 清理出网络时,会导致显示该错误消息。 要使 OSPF 正常工作,中转网络的 IP 地址必须唯
一。 如果 IP 地址不是唯一的,出现冲突的路由器将报告该错误消息。 在错误消息中,OSPF 路由器 ID 被报告为 adv-rtr 的路由器报告该消息。
问。 能否在 GRE 隧道上运行 OSPF?
A. 可以,请参阅使用 OSPF 基于 IPSec 配置 GRE 隧道。
相关信息
技术问答
版权所有 ©1992-2010 思科系统
文件创建日期: Nov 18, 2010
www.cisco/cisco/web/support/CN/107/1076/1076908_9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论