OSPF如何在点对点以太网接口(即2个路由器通过电缆连接)上工作

网络工程 路由 ospf
2021-08-01 08:12:50

OSPF RFC 描述了 OSPF 的两种不同操作模式,用于 (1) 点对点和 (2) 广播网络(和其他网络)。

(2)的操作包括选择指定路由器和备份指定路由器及其后果。我们称之为 DR/BDR 模式。AFAIK OSPF 应配置为每个接口的类型。

如果多个路由器通过交换机连接,则 DR/BDR 模式发生是有意义的。

最近,我看了一段cisco认证相关的视频:(特别是这个时间戳这个时间戳的问题)。视频中,在以太网链路上进行了DR/BDR选举,标记为广播,但该链路只连接了两个路由器?想要在只有两个路由器之间建立一条链路作为广播链路,这似乎很奇怪。

OSPF 是否必须在以太网上以 DR/BDR 模式工作?它是应该被覆盖的 cisco 路由器的默认配置。仍然使用以太网接口作为广播是不是配置不好?或者它只是一个与实践无关的认证问题。

编辑:

我知道数据包中的多播地址没有区别。我对广播网络的额外开销更感兴趣:

  • 对于广播网络,OSPF 创建所谓的网络 LSA。这应该意味着必须传播额外的 LSA,将其存储在数据库中,并且最短路径计算 (dijkstra) 需要考虑额外的节点和 2 个链接。
  • 浸水程序。拥有 DR 和 BDR 会导致 LSA 传播的额外步骤吗?(如果我正确理解了该过程,来自 DR 的 LSA 不会引起任何额外的事情,但是来自 BDR 的 LSA 应该在链路上重新通告,因此它会发送两次。)
  • 路由器如何知道是否将来自网络 LSA 的网络放入路由表中?此网络应标记为中转网络(因为它连接了 2 个以上的路由器并可用于中转)。但是两个路由器都不知道这个网络是否有终端系统。如果它有端系统,那么这些端系统的前缀需要在转发表中。OSPF 怎么知道要不要做呢?它是否默认假设传输网络上没有终端系统,还是需要单独配置?.

这对现代路由器(及其处理能力)造成的开销如此之小,以至于根本无关紧要吗?

4个回答

OSPF 是否必须在以太网上以 DR/BDR 模式工作?

否。默认情况下,以太网接口是广播类型的,它们选举DR/BDR。但是你可以用ip ospf network point-to-point取消DR/BDR选举的命令来改变它

它是应该被覆盖的 cisco 路由器的默认配置。仍然使用以太网接口作为广播是不是配置不好?或者它只是一个与实践无关的认证问题。

实际上,几乎没有区别。最初创建 OSPF 时,路由器的处理能力和内存比现在少得多。现代路由器拥有大量计算资源和内存,因此除非您拥有大量接口,否则您不会看到任何区别。

编辑

路由器如何知道是否将网络从网络 LSA 放入路由表中?

他们没有。LSA 被放入数据库,而不是路由表。SPF 进程从数据库中读取数据,然后计算到每个网络的最佳路径。这些路径(路由)被放入路由表中。

Cisco 有ip ospf network point-to-point针对此类情况interface 命令。您也可以使用neighborOSPF 路由器配置下语句来使用单播。

在以太网点对点链路上拥有 DR/BDR 确实不是问题,因为流量是通过多播发送的。在这样的链路上,单播或多播在单个数据包中实现相同的目的。设置 DR/BDR 的延迟非常小。但这只有在链接出现时才会发生。

在像以太网 OSPF 这样的广播网络上,默认情况下使用多播来发现邻居——即使两个路由器直接连接在一起,因为以太网需要寻址,毕竟一个广播网络。在某些系统上,您可以跳过检测并手动配置邻居,从而使路由器关系变得类似于 P2P 模式。

关于开销:可能有一些方法可以优化 OSPF 并减少一些开销,但是鉴于当前(和主题)设备中的(多)千兆链路、千兆字节 RAM 和多 GHz 可能的多核 CPU,您可以非常忽略总开销,除了非常极端的情况。与点对点网状连接相比,使用以太网上的默认多播可以减少开销。

当然,您可以使 OSPF 适应更多用例,但话说回来,您将拥有一个新的路由协议,它必须与已建立的协议竞争。

并非所有 LSA 最终都会出现在实际转发表中。所有接收到的链路状态通告(LSA) 和其他路由信息都使用 Dijkstra 算法编译到路由信息库(RIB) 中。由此,只有最佳路由(每个目的地一个)被传输到转发信息库(FIB) 以加快处理速度(用于基于软件的路由)或节省宝贵的 TCAM 空间(用于基于硬件的路由)。

由于在评论和聊天之间传播了相当多的讨论,这里是讨论的摘要以供参考。

前言:

(1) OSPF 定义了三种基本网络类型上的几种操作模式:点对点、广播(多路访问)网络和非广播多路访问网络。后者现在大概是不相关的。

广播多路访问链路(或网络)是一个第 2 层域,它互连 N 个设备,其中 N 可以大于 2。也就是说,这样的“链路”可以互连两个以上的路由器。广播意味着一个设备可以将消息发送到到达所有其他设备的广播/多播地址。这可以用于例如邻居发现。

特殊的DR/BRD模式是为了处理“互连2个以上的路由器。网络的广播能力用于通信。

(2) 目前主导的二层技术是以太网。可以使用以太网电缆直接连接两个路由器(这实际上创建了一个点对点链接),或者(至少在理论上)将多个路由器与一个交换机互连,这创建了一个互连两个以上路由器的广播链接。

显然,由于以太网是一种广播媒体(好吧,CSMA/CD 是广播媒体,而其他一切都模拟这种广播媒体),路由器默认将以太网视为这样,即使链路确实是点对点的。问题是,是否值得专门将点对点以太网电缆配置为点对点链路。

问题和答案:

寻址

OSPF 定义了不同的方法来寻址不同类型介质上的数据包。在广播媒体上,数据包被寻址到多播地址 AllSPFRouters。

如果链路实际上是点对点的,那么在数据包中写入什么地址并不重要。所以,这不会有什么不同。

但是,对于以太网链路,OSPF 还要求链路两端的接口都分配 IP 地址。这与接口配置为点对点或广播链路无关。

对于广播网络,OSPF 创建所谓的网络 LSA。这应该意味着必须传播额外的 LSA,将其存储在数据库中,并且最短路径计算 (dijkstra) 需要考虑额外的节点和 2 个链接。

浸水程序。拥有 DR 和 BDR 会导致 LSA 传播的额外步骤吗?(如果我正确理解了该过程,来自 DR 的 LSA 不会引起任何额外的事情,但是来自 BDR 的 LSA 应该在链路上重新通告,因此它会发送两次。)

一个额外的 LSA 是 140-256 字节。对于具有通过 1Gb 或 10Gb 链接互连的几 Gb RAM 的路由器,这是可以忽略不计的。路由器也有足够的处理能力,所以计算 Dijkstra 的额外成本。

路由器如何知道是否将来自网络 LSA 的网络放入路由表中?[检查这句话其余部分的问题]

问题是拥有广播链接是否会导致转发表中的额外条目。

转发表中的空间可以被视为一种约束资源,因为 TCAM 是耗电的。这让我问了一个问题,哪些IP地址确实以转发表结尾,以及点对点链接上的地址是否可以省略。

简短的回答 - 每个配置的 IP 地址都会在转发表中结束。并且由于以太网需要配置地址,而不管它是点对点链路还是多路访问链路,转发表中的地址数量不受此配置选项的影响。

[这是我的假设错误的地方。我认为只有末节网络(来自路由器 LSA)和传输网络(来自网络 LSA)的地址进入转发表,因为这些是潜在终端系统可以驻留的网络。如果是这种情况,配置为广播的接口将导致额外的传输网络 LSA 和额外的地址。]