注:机翻,未校对。一个小众的功能。
OSPF over a Demand Circuit
What is a Demand Circuit? 什么是需求电路?
OSPF can be tuned to better handle demand circuits. But what are demand circuits? Are they still relevant today?
可以调整 OSPF 以更好地处理需求电路。但什么是需求电路?它们在今天仍然适用吗?
This is a type a circuit that’s not always up. One that dials on demand. Think of old ISDN, x.25, and dial-up lines for example.
这是一个 A 型电路,并不总是启动。一种按需拨号的产品。例如,想想旧的 ISDN、x.25 和拨号线路。
In the old days, these may have been expensive, and were only meant to be up when needed. Also, the amount of traffic that was sent over them also needed to be kept to a minumum.
在过去,这些可能很昂贵,并且只打算在需要时使用。此外,通过它们发送的流量也需要保持在最低限度。
OSPF caused problems with demand circuits. The regular hello messages cause the link to stay up. Additionally, the regular LSA refresh (every 30 minutes) caused the circuit to be used more heavily than desired.
OSPF 导致需求电路出现问题。定期的 hello 消息会导致链接保持运行。此外,定期刷新 LSA(每 30 分钟一次)导致电路的使用比预期的更为频繁。
OSPF With Demand Circuits 带需求电路的 OSPF
Back in 1995 (way back when I started high school!) RFC1793 was released. This included support for OSPF to be aware of demand circuits.
早在 1995 年(早在我开始上高中的时候!RFC1793 被发布。这包括支持 OSPF 了解需求电路。
This feature is enabled per-interface (so it can be enabled selectively per neighbour). When two neighbours start an adjacency, and will negotiate the DC bit. If they both have this bit, then this feature is enabled. If successful, they then set the DNA (DoNotAge) bit in the LSA field.
此功能是按接口启用的(因此可以按邻居选择性地启用此功能)。当两个邻居开始邻接时,将协商直流位。如果它们都有此位,则启用此功能。如果成功,他们将在 LSA 字段中设置 DNA (DoNotAge) 位。
This provides two major changes. Firstly, beyond the initial formation of the neighbour adjacency, hellos are suppressed. They’re not sent at all. This prevents OSPF from keeping a circuit up unnecessarily.
这提供了两个主要变化。首先,除了邻接关系的最初形成之外,hello 被抑制了。他们根本没有被发送。这样可以防止 OSPF 不必要地保持电路正常运行。
This does have a side effect. One neighbour won’t know (from an OSPF standpoint) when its neighbour goes down. The adjacency will remain up, even if the underlying circuit is down.
这确实有副作用。一个邻居不会知道(从OSPF的角度来看)它的邻居何时 down 。即使底层电路关闭,邻接关系也将保持 on 。
Note: Hello suppression applies to point-to-point and point-to-multipoint network types only. Hellos are not suppressed on other network types.
注意:Hello 抑制仅适用于点对点和点对多点网络类型。在其他网络类型上不会禁止显示 hello。
The second change is that the periodic LSA refresh is also suppressed. This is because of the DNA bit I mentioned earlier. This means that the LSDB entries for this neighbour will not age out.
第二个变化是,定期 LSA 刷新也被抑制。这是因为我之前提到的 DNA 位。这意味着此邻居的 LSDB 条目不会过期。
There will still be LSA refreshes, but now they will occur on demand, when there are changes in the network.
仍会进行 LSA 刷新,但现在,当网络发生变化时,它们将按需发生。
Is it Still Relevant Today? 它今天仍然适用吗?
We generally don’t use circuits like dial-up, and x.25, and ISDN is nearly extinct too. So, is this important at all?
我们通常不使用拨号和 x.25 等电路,ISDN 也几乎灭绝了。那么,这重要吗?
Well, there are still some technologies that are on demand. Think of site-to-site VPNs for example. In particular, think of technologies like Cisco’s DMVPN (phase 2 or 3), or Juniper’s Auto Discovery VPN. These dynamically build tunnels between spoke routers on demand.
好吧,仍然有一些技术是按需的。例如,以站点到站点 VPN 为例。特别是,想想像思科的 DMVPN(第 2 阶段或第 3 阶段)或瞻博网络的自动发现 VPN 这样的技术。它们按需在分支路由器之间动态构建隧道。
In cases like this, you may decide to this feature in OSPF. That is, of course, if the network type is point-to-point or point-to-multipoint (in an NBMA or broadcast network, OSPF will still send hellos).
在这种情况下,您可以决定在 OSPF 中使用此功能。也就是说,当然,如果网络类型是点对点或点对多点(在NBMA或广播网络中,OSPF仍将发送hellos)。
Configuration 配置
Cisco
interface gi0/0
ip ospf demand-circuit
Juniper
set protocols ospf area 0 interface ge-0/0/0 demand-circuit
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/0 {
demand-circuit;
}
}
}
}
References 引用
-
Cisco – OSPF Demand Circuit Feature
-
Juniper – Configuring OSPF Interfaces (Example: Configuring OSPF Demand Circuits)
-
IETF – RFC 1793: Extending OSPF to Support Demand Circuits ( 3.4. Virtual link support )
via:
-
OSPF over a Demand Circuit - Network Direction
https://networkdirection.net/articles/routingandswitching/ospf-over-a-demand-circuit/
OSPF 需求电路特性
已更新: 2005 年 7 月 21 日
文档 ID: 5132
简介
为响应 OSPF RFC 1793,在 Cisco IOS® 软件版本 11.2 中引入了开放最短路径优先 (OSPF) 的 需求电路选项。OSPF 每 10 秒发送一次 hello 消息,并每 30 分钟刷新一次其链路状态通告 (LSA)。这些功能可保持邻居关系,并确保链路状态数据库准确,并且使用的带宽比路由信息协议 (RIP) 和内部网关路由协议 (IGRP) 中的类似功能少得多。 不过,这种流量对于需求电路来说仍太大。使用 OSPF 需求电路选项可抑制 Hello 和 LSA 刷新功能。OSPF 可以建立需求链路以形成邻接关系并执行初始数据库同步,即使需求电路的第 2 层断开,邻接关系仍保持活动状态。
Cisco IOS 版本 12.1 (2) T 引入了 OSPF 的泛洪减少功能。此功能旨在最大限度地减少因定期刷新具有大量 LSA 的 OSPF 域中的 LSA 而创建的流量。与 OSPF 需求电路功能不同,泛洪减少通常在租用线路上配置。泛洪减少使用与需求电路相同的技术来抑制周期性 LSA 刷新。此功能已提交以标准化到 IETF OSPF 工作组。
要求
本文档的读者应掌握以下这些主题的相关知识:
- OSPF
- IGRP
- RIP
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科 IOS 版本 12.1 (2) T 及更高版本
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
规则
有关文件规则的更多信息请参见 “ Cisco 技术提示规则”。
在需求电路与一般电路上 OSPF 有什么不同?
OSPF 按需电路有两个主要功能,使其与普通电路不同。
- 抑制定期 Hello
- 抑制定期 LSA 刷新
抑制定期 Hello
在链路上配置 OSPF 需求电路时,会抑制定期 OSPF 问询。定期问询仅在点对点和点对多点网络类型上被抑制。* 在任何其他网络类型上,OSPF 问询仍通过接口发送。*
抑制定期 LSA 刷新
OSPF 需求电路不会定期刷新每 30 分钟一次的 LSA。当建立需求电路链路时,相邻路由器之间会交换一个唯一的选项位(DC 位)。如果两台路由器成功协商 DC 位,则会记录该位,并在 LSA 时代中设置一个称为 DoNotAge 位 (DNA) 的特定位。 DNA 位是 LS 年龄字段中最有意义的位。通过设置此位,LSA 将停止老化,并且不会发送定期更新。
在 OSPF 需求电路上何时发送周期性 LSA 更新?
使用 OSPF 需求电路功能时,只有两种情况会定期刷新 LSA:
- 如果网络拓扑发生变化
- 如果 OSPF 域中有路由器无法理解需求电路
首先,由于路由器必须发送新的 LSA 信息来更新邻居的拓扑更改,因此在停止 LSA 刷新时,无法做太多。
但是,有一种特殊的方法来处理第二种情况。区域边界路由器 (ABR) 是下面网络图中的路由器 D,它知道路由器 C 无法理解 DNA LSA,因为它发现 DC 位在路由器 C 发起的 LSA 的选项字段中是清晰的。在这种情况下,ABR(路由器 D)通知能够请求电路的路由器不要使用 DNA 位设置来发起 LSA,因为路由器不理解 DNA 位。
此网络图显示了定期 LSA 刷新通过需求电路发送的场景:
指示 LSA
ABR(路由器 D)在主干中发出指示 LSA,告知主干中的所有路由器不要发起任何 DNA LSA。当路由器 A(另一个 ABR)看到此指示 LSA 时,它会将指示 LSA 发送到其他区域,不包括主干区域和任何末节区域或非末节区域 (NSSA) 区域。路由器 D 的此指示 LSA 如下所示。指示 LSA 是第 4 类汇总 LSA,其中链路状态 ID 是 ABR 本身,而不是自治系统边界路由器 (ASBR)。 换句话说,链路状态 ID 和通告路由器字段是相同的,如下所示:
RouterD# show ip ospf database asbr-summary
Adv Router is not-reachable
LS age: 971
Options: (No TOS-capability, No DC)
LS Type: Summary Links (AS Boundary Router)
Link State ID: 141.108.1.129 (AS Boundary Router address)
Advertising Router: 141.108.1.129
LS Seq Number: 80000004
Checksum: 0xA287
Length: 28
Network Mask: /0
TOS: 0 Metric: 16777215
指示 LSA 的度量设置为无穷大。链路状态 ID 和通告路由器字段始终是发起指示 LSA 的 ABR 的路由器 ID。在上述网络图中,路由器 A 和路由器 B 之间的链路配置为需求电路,但由于区域 1 中的路由器无法理解 DNA LSA,因此不会有任何源自区域 1 的 DNA LSA。因此,源于区域 1 的定期 LSA 更新会通过需求电路发送。
只有两种情况会导致 OSPF ABR 生成指示 LSA:
- 网络中有一台路由器运行 IOS 11.2 或更低版本。
- 网络中有一台非 Cisco 路由器不支持需求电路。
解决方案
将区域 2 配置为末节或 NSSA 区域。这可以防止路由器 D 发起的指示 LSA 由路由器 A 发送到区域 2,因为区域 2 是末节区域,而且指示 LSA(第 4 类汇总 LSA)不能泛洪到末节区域。现在,由于区域 2 没有看到任何指示 LSA,因此它会继续在区域 2 内生成 DNA LSA,并且路由器 A 和路由器 B 之间的链路不会启动,因为定期 LSA 刷新被抑制。
思科建议您在非主干区域配置 OSPF 需求电路,并将这些区域设置为 NSSA、末节或完全末节(后者更可取)。 这是为了最小化从其他区域注入到包含需求电路的区域的信息。因此,您可以最小化更改范围,这可以启动 OSPF 需求电路。有关 OSPF 需求电路功能的故障排除方案,请参阅 “为什么 OSPF 需求电路不断启动链路”。
如果您的情况类似于上图所示,并且需求电路也是主干的一部分,则无法使用此解决方案,因为主干区域不能配置为末节或 NSSA。
配置任务
本节中的配置任务示例显示创建需求电路所需的配置。只需一端在接口下拥有需求电路命令,因为如果另一端能够理解需求电路,它会在 hello 数据包中自动协商此功能。如果它不能理解需求电路,它会忽略此选项。
RouterA# show run interface Serial0
interface Serial 0
encapsulation frame-relay
ip address 141.108.1.1 255.255.255.0
ip ospf network-type point-to-mutipoint
ip ospf demand-circuit
!
注意: 尽管需求电路仅在点对点或点对多点网络类型上使用,但可以对任何网络类型使用需求电路来抑制问询。
扩散缩减特性与需求电路特性有什么不同?
OSPF 泛洪减少功能是对需求电路的细微修改,旨在减少因定期 LSA 刷新而引起的链路上的额外流量。它使用相同的机制来消除对定期 LSA 刷新的需求。通常,路由器不会立即连接到链路,并且无法识别它是配置为需求电路还是泛洪减少链路 — 这两种链路的数据库表示是相同的。
泛洪减少与需求电路的主要区别在于前者仅抑制周期性 LSA 刷新;它不会抑制定期 hello 数据包。因此,泛洪减少功能不会影响邻居路由器发生故障的检测。
泛洪减少链路的限制与需求电路相同。特别是,区域内的所有路由器必须支持需求电路功能,才能减少泛洪。需求电路和泛洪减少链路的故障排除技术也很常见。
此示例显示 OSPF 泛洪减少功能配置:
interface POS 0/0
ip address 192.168.122.1 255.255.255.0
ip ospf flood-reduction
如上所述,路由器的接口 POS 0/0 已配置为减少 OSPF 泛洪。链路上不发送定期 LSA 刷新,但会发送问询。
via:
-
OSPF 需求电路特性 - Cisco
https://www.cisco.com/c/zh_cn/support/docs/ip/open-shortest-path-first-ospf/5132-dc.html
OSPF over Demand Circuit
I. OSPF over Demand Circuit 实现原理
在 demand circuit 链路上的 OSPF 包:
- hello 包,只在链路初始化时发送,用于同步 LSDB,在 LSDB 同步完成后,hello 包不再发送。
- LSA 洪泛,只在同步 LSDB 时发送,在完成后没有进一步的同期更新(30 分钟 refresh timer),除非有 LSA 的变更并产生一个新的 LSA 实例。
因为 LSA 不能周期性的更新,那 LSA 就有可能到达 MaxAge(1 小时,3600 秒),所以在 Circuit 链路上必须去避免,实现方式是:
在 Age 字段的最高位为 DoNotAge 位,我们可以置位这个 bit,当它存在于 LSDB 中时就不会逐渐增加了,但其在 LSA 洪泛过程中还是会根据 InfTransDelay 而不断增加的。
为了使全部 OSPF 节点能够识别这个 DoNotAge 位的 capability,就要在我们的 Hello/DD/LSA 的 Options 字段中置位 DC 位 (Demand Circuit)。这样两个 OSPF 节点在建立 Adjacency 时就会协商这个 capability,如果 area 中有一个节点不能支持此特性,则 DC 位必须被清除,那我们的 DoNotAge 位也就不生效了。
如果同一 area 中的任意一个节点的 LSDB 中的 LSA 的 DC Options 位被清除了,则路由器清除 LSDB 中所有的 DoNotAge 的 LSA,LSA 发送源必须发送一个新的 DoNotAge 清除的 LSA。
注:推荐将 demand circuit 配置于一个 stub/nssa area,从而避免 ABR 或 ASBR 产生带有 type3/4/5/7 的 LSA。
II. demand circuit 链路问题
1、因为没有 hello 在 demand circuit 链路上进行 neighbors 的监控,如果有一端 down 掉了,对端也不知道。
解决方案:
neighbor probing: 在有数据发送使 demand circuit 打开时,OSPF 发送更新,并等待 ACK 确认,如果对端 down 掉了,则这时可以探测到此问题。
2、 当两端节点都是正常的,但是 link 是不通的,因为没有 hello 交互,所以不能发现这种问题。
解决方案:
presumption of reachability:OSPF 总是假定 link 是 UP 的,即使 link 在数据传输时不通了,OSPF 会认为 link 的负载过大,直接将数据包丢弃,而不会认为 link 是 down 的,进而使 OSPF 邻居关系 down 掉。
注:ospf over demand circuit 总不是一个好的解决方案,推荐在链路两端使用静态或是默认的路由。
III. flood reduction (洪泛抑制)
尽管 ospf over demand circuit 是一个不好的解决方案,但可以有一些措施使实现结果不会太坏,那就是 flood reduction。
使用这个技术后,hello 包如其它链接一样正常的周期性发送,但是 LSA 被标记 DoNotAge 位,这样 LSA 就不会周期刷新,除非:
LSA Options 字段改变。
收到一个新的 age 字段为 MaxAge 的 LSA。
LSA 头中的 length 字段变化。
LSA 的内容变更。
配置接口的 flood reduction:
Router (config-if)# ip ospf flood-reduction
via:
-
OSPF over Demand Circuit 实现细节_SENSE 的技术博客_51CTO 博客 原创 sense5 2008-04-10 08:37:46