diff --git a/d39-OSPF.md b/d39-OSPF.md index ede21bf..d85f361 100644 --- a/d39-OSPF.md +++ b/d39-OSPF.md @@ -44,6 +44,62 @@ *图39.1 -- OSPF的指定与后备指定通告* -> **注意:** 后备指定路由器仅简单地收听发送到`224.0.0.5`(`AllSPFRouters` 多播组地址)与`224.0.0.6`(`AllDRRouters`多播组地址)两个组地址的数据包 +> **注意:** 后备指定路由器仅简单地收听发送到`224.0.0.5`(`AllSPFRouters` 多播组地址)与`224.0.0.6`(`AllDRRouters`多播组地址)两个多播组地址的数据包 + + +某台路由器要成为网段的指定路由器或后备指定路由器,其就必须被选中。选举基于以下两点: + +- 有着最高的路由器优先级值(the highest router priority value) +- 有着最高的路由器ID(the highest router ID) + +默认下所有路由器都有着默认的优先级值`1`。可使用接口配置命令`ip ospf priority <0-255>`对该值进行调整。路由器的优先级值越高,那么其就越有可能被选为该网段的指定路由器。有着第二高优先级的路由器,则将被选为后备指定路由器。如配置了优先级值`0`,则该路由器将不参加到DR/BDR的选举过程。最高路由器优先级与路由器ID原则,仅在参与指定/后备指定路由器选举过程的所有路由器同时加载OSPF进程时才起作用。如这些路由器没有同时加载OSPF进程,则最先完成OSPF进程加载的路由器,将成为网段上的指定路由器。 + +在确定OSPF路由器ID时,思科IOS将选取已配置的环回接口的最高IP地址。在没有配置环回接口时,IOS软件将使用所有已配置的物理接口的最高IP地址,作为OSPF路由器ID。思科IOS软件还允许管理员使用路由器配置命令`router-id [address]`,来手动指定路由器ID。 + +重要的是记住在OSPF下,一旦指定路由器与后备指定路由器被选出,那么在进行另一次选举之前,它们都将始终作为指定/后备指定路由器。比如,在某个多路访问网络上已存在一台指定路由器与一台后备指定路由器的情况下,一台有着更高优先级或IP地址的路由器被加入到该同一网段时,既有的指定与后备指定路由器将不会变化。在指定路由器失效时,接过指定路由器的角色的是后备指定路由器,而不是新加入的有着更高优先级或IP地址的路由器。此外,一次新的选举将举行,而那台路由器极有可能被选举为后备指定路由器(Instead, a new election will be held and that router will most likely be elected BDR)。而为了让那台路由器成为指定路由器,就必须将后备路由器移除,或使用`clear ip ospf`命令对OSPF进程进行重置,以强制进行一次新的指定/后备指定路由器选举。一旦完成选举,OSPF像下面这样来使用指定与后备指定路由器: + +- 用于减少网段上所要求的临接关系(To reduce the number of adjacencies required on the segment) +- 用于对多路访问网段上的路由器进行通告(To advertise the routers on the Multi-Access segment) +- 用于确保所有更新送达网段上的所有路由器 + + +为了更好地掌握这些基础概念,这里参考下图39.2中的基本OSPF网络拓扑: + +![OSPF指定与后备指定路由器基础](images/3902.png) + +*图 39.2 -- OSPF 指定与后备指定路由器基础* + +在图39.2中,网段上的各台路由器与指定及后备指定路由器之间建立临接关系,但相互之间并不建立临接关系(Referencing Figure 39.2, each router on the segment establishes an adjacency with the DR and the BDR but not with each other)。也就是说,非指定/后备指定路由器之间不会建立临接关系。这一特性阻止网段上的路由器形成相互之间的`N(N-1)`个临接关系,从而降低过多的OSPF数据包在网段上泛滥。 + +比如在没有网段上的指定/后备指定路由器概念时,各台路由器都需要与网段上的其它路由器建立临接关系。对于图39.2的情形,这将导致网段上的`4(4-1)`,也就是`12`个临接关系。但有了指定/后备指定路由器后,每台路由器只需与这两台路由器,而无需与其它非指定与后备指定路由器,建立临接关系。指定路由器与后备指定路由器之间也会建立临接关系。此特性降低了网段及各台路由器上的临接关系数目,进而降低各台路由器上资源消耗(比如内存与处理器使用)。 + +对于第二点,OSPF将一条链路,视为两台路由器或两个节点之间的连接。在多路访问网络,比如以太网中,多台路由器可处于同一网段上,就如同图39.2中所演示的那样。在这样的网络中,OSPF使用网络链路状态通告(Network Link State Advertisement, Type 2 LSA, 类型2的链路状态通告),来对多路访问网段上的路由器进行通告。这种链路状态通告是由指定路由器生成,并仅在该区域传播。因为其它非指定/后备指定路由器并不在各自之间建立临接关系,所以此类链路状态通告就令到那些路由器知悉在该多路访问网段上的其它路由器了。 + +为进一步说明这一点,这里参考图39.2, 假定该网段上的所有路由器都具有默认的OSPF优先级`1`(并同时加载OSPF进程),因为`R4`有着最高的路由器ID而被选为指定路由器。`R3`因为有着第二高的路由器ID而被选为后备指定路由器。因为`R2`与`R1`既不是指定也不是后备指定路由器,因此它们为称为思科命名法中的`DROther`路由器。可在所有路由器上使用`show ip ospf neighbour`命令对此进行验证,如下所示: + +```sh +R1#show ip ospf neighbor +Neighbor ID Pri State Dead Time Address Interface +2.2.2.2 1 2WAY/DROTHER 00:00:38 192.168.1.2 Ethernet0/0 +3.3.3.3 1 FULL/BDR 00:00:39 192.168.1.3 Ethernet0/0 +4.4.4.4 1 FULL/DR 00:00:38 192.168.1.4 Ethernet0/0 + +R2#show ip ospf neighbor +Neighbor ID Pri State Dead Time Address Interface +1.1.1.1 1 2WAY/DROTHER 00:00:32 192.168.1.1 FastEthernet0/0 +3.3.3.3 1 FULL/BDR 00:00:33 192.168.1.3 FastEthernet0/0 +4.4.4.4 1 FULL/DR 00:00:32 192.168.1.4 FastEthernet0/0 +R3#show ip ospf neighbor +Neighbor ID Pri State Dead Time Address Interface +1.1.1.1 1 FULL/DROTHER 00:00:36 192.168.1.1 FastEthernet0/0 +2.2.2.2 1 FULL/DROTHER 00:00:36 192.168.1.2 FastEthernet0/0 +4.4.4.4 1 FULL/DR 00:00:35 192.168.1.4 FastEthernet0/0 + +R4#show ip ospf neighbor +Neighbor ID Pri State Dead Time Address Interface +1.1.1.1 1 FULL/DROTHER 00:00:39 192.168.1.1 FastEthernet0/0 +2.2.2.2 1 FULL/DROTHER 00:00:39 192.168.1.2 FastEthernet0/0 +3.3.3.3 1 FULL/BDR 00:00:30 192.168.1.3 FastEthernet0/0 +``` diff --git a/images/3902.png b/images/3902.png new file mode 100644 index 0000000..2bb07d6 Binary files /dev/null and b/images/3902.png differ