资源描述
OSPF-工作过程
2011-08-19 09:41:06 我来说两句
收藏 我要投稿
1、状态机的变化过程:
(1) OSPF路由器接口up,发送Hello包,(NBMA模式时将进入Attempt状态)。
(2) OSPF路由器接口收到Hello包,检查Hello中携带的参数,如果匹配,进入Init状态;并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中。
(3) OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中。
(4) 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR选举。点对点没有这个过程。
(5) 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并通过交换DBD交换主从路由器,由主路由器定义DBD序列号,Router ID大的为主路由器。目的是为了解决DBD自身的可靠性。
(6) 主从路由器选举完成后,进入Exchange(交换)状态,通过交换携带lsa头部信息的DBD包描述各自的LSDB。
(7) 进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认。
(8) LSA交换完成后,进入FULL状态,同一个区域内所有OSPF路由器都拥有相同链路状态数据库。
(9) 定期发送Hello包,维护邻居关系。
2、协商过程:
本文出自 “Esc结束” 博客
OSPF协议之详细图解
2012-10-10 10:31:46 我来说两句 作者:xuzhiming302
收藏 我要投稿
OSPF是一种基于SPF算法的链路状态路由协议。
下面老马就将本协议的详细工作过程做一总结,希望对大家有所帮助……
上图是在一个OSPF区域里面添入一台新的路由器的时候,OSPF协议的工作过程,如果你能非常详细的叙述出这张图的话,基本上OSPF协议的工作过程你就掌握了。下面老马的主要工作就是分析这张图。
首先大家要清楚,一台运行了OSPF协议的路由器,最终都会存储三张表:邻居表、拓扑表、路由表。老马下面以这三张表的产生过程为线索,来分析在这个过程中,路由器发生了那些变化,从而说明OSPF协议的工作过程。
(一)邻居表的建立
一台新加入OSPF区域的路由器首先要跟邻居路由器建立邻接关系,过程如下:
图1
图2
图3
通过上面3步,新加入的路由器和其邻居路由器已经建立了邻居关系。
(二)拓扑表的建立
在建立拓扑表的时候,新加入的路由器要经历预启动状态、交换状态、加载状态、完全邻接状态。下面老马就将此过程,以图的形式展示给大家:
图1
图2
图3
经过以上四步,此OSPF区域的所有路由器的数据拓扑图都达到了同步。
(三) 然后每个路由器按照产生的全区域数据拓扑图,在运行SPF算法,产生到达目标网络的路由条目。
经过以上三大步,OSPF协议的运行过程基本结束。
注意:在上面的过程当中有几个很重要的问题需要注意
1》此协议的管理距离是110、OSPF路由进程ID的范围必须在1-65535之间,而且只具有本地含义,不同路由器的路由进程ID可以不同、区域ID在0-4294967295,当区域值取0时本区域称为主干区域。
2》确定router ID遵循如下顺序:
用router ID 命令指定的路由器ID的优先级最高
如果没有指定,那么选IP地址最大的环回接口的IP地址为route ID
如果没有换回接口,就选择UP端口中IP值最大的为router ID
但还是建议使用命令指定,这样可控性比较好。
3》DR选举的原则
首要因素是时间,最先启动的路由器被选举成为DR
如果同时启动,或者重新选举,则看接口优先级(0-255),优先级最高的被选举成DR,在默认情况下,多路访问网络的接口优先级为1,点到点网络的接口优先级为0,修改接口优先级的命令是“ip ospf priority”,如果接口的优先级被设置为0,那么该接口不参与DR选举。
如果前两者相同,最后看路由器ID,路由器ID最高的被选举成DR。
DR选举时非抢占的,除非人为地重新选举。重新选举DR的方法有两种,一是路由器重新启动;二是执行“clear ip ospf process"命令
« [CCNA图文笔记十七]EIGRP协议详解[CCNA图文笔记十九]交换机基础 »[CCNA图文笔记十八]OSPF协议详解
发表于 2012 年 11 月 4 日 由 晴刃
这篇文章主要介绍链路状态路由协议OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证等。
___________________________________________
文章目录
[*1*].链路状态路由协议概述
§ 工作过程
§ 优缺点
[*2*].OSPF概述和基本配置
§ 特性
§ 术语
§ 包格式
§ 包类型
§ 邻居关系的建立过程
§ 基本配置实例
§ Router ID选举规则
§ DR和BDR选举规则
§ 度量值计算方法
[*3*].OSPF高级配置
§ 验证实例
§ 默认路由实例
___________________________________________
[*1*].链路状态路由协议概述
链路状态路由协议使用Dijkstra算法,也称SPF(Shortest Path First,最短路径优先)算法。常见的链路状态路由协议有:OSPFv2、OSPFv3和IS-IS。这篇文章主要针对OSPFv2,OSPFv3是面向IPv6的且不兼容IPv4。
* 链路状态路由协议工作过程
1,每台路由器学习激活的直接相连的网络。
2,每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。
3,每台路由器构建包含直接相连的链路状态的LSA(Link-State Advertisement,链路状态通告)。链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。
4,每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作“链路状态数据库(LSDB,Link-State Database)”
5,每台路由器基于本地的“链路状态数据库(LSDB)”然后执行“最短路径优先(SPF)”算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。
下图演示了链路状态路由协议路由表的生成过程:
* 链路状态路由协议优缺点
优点: 运行链路状态路由协议的路由器通过LSA的交换,最后独立的计算出到每个网络的最短路径,相对距离矢量路由具有更强的全局观念;收到邻居的LSA后立即泛洪,并且本路由再执行SPF算法,比距离矢量路由有更高的收敛速度(EIGRP除外,EIGRP是高级距离矢量路由协议有更快的收敛速度);当检测到拓扑发生变化时立即发送更新;多区域设计,可以将一些问题限制在较小的区域中。
缺点: 内存需求高,需要更强的CPU的支持,在网络初始化时,大量链路状态包泛洪,会影响网络的可用带宽。
[*2*].OSPF概述和基本配置
OSPF(Open Shortest Path First,开放最短路径优先)是一个被各厂商设备广泛支持的链路状态路由协议。
* OSPF特性
OSPF执行IETF标准,IETF标准被不同厂商的设备所支持;执行SPF算法,不会产生环路;支持VLSM和CIDR;可以用于大型网络;层次型设计,易扩展;区域化设计,减小路由更新给设备带来的负担;快速收敛,使用触发式更新;支持针对区域和链路的验证。执行OSPF的路由默认每隔30分钟会泛洪一次链路状态通告(LSA),称为链路状态刷新(并非周期性更新);当一条LSA被接收并被储存到链路状态数据库中后,路由器会给这条记录增加一个老化时间标识,默认是一小时,所以为了防止一些正常的LSA被清除,始发这条LSA的路由会每隔30分钟泛洪一次这条LSA的一个新拷贝。
* OSPF术语
§ 链路(Link):当一个接口加入OSPF进程,就被当做是OSPF的一条链路。
§ 链路状态(Link-State):包括接口的IP、子网、网络类型、链路花费、链路上的邻居等。
§ 路由器ID(Router ID,简称RID):RID是一个用来标识路由器的IP地址,可以在OSPF路由进程中手工指定;如果没有指定,路由器默认选择回环接口中最高的IP作为RID;如果没有回环地址,路由器使用所有激活的物理接口中最高的IP作为RID。
§ 邻居(Neighbor):两台或多台路由连接在一个公共的网络上,如两台路由通过串行线路相连,多台路由通过以太网相连。
§ 邻接(Adjacency):邻接是两台路由器之间的关系,OSPF只与建立了邻接关系的邻居共享路由信息。
§ 区域(Area):OSPF通过划分区域来实现分层设计,跨越两个或两个以上区域的路由被称作ABR(Area Border Router,区域边界路由)。所有的区域都和“Area 0”相连,“Area 0”被称作骨干区域,骨干区域路由器具有整个自制系统中所有路由条目,LSA的扩散仅限制在区域内,通过划分多个区域可以减小LSA扩散过程中对硬件的负担。
§ 指定路由器(Designated Router,简称RD):当OSPF链路被连接到多路访问的网络中时,需要选择一台指定路由器(DR),每台路由器都把拓扑变化发给DR和BDR,然后由DR通知该多路访问网络中的其他路由器。
§ 备用的指定路由器(Backup Designated Router,简称BDR):当DR发生故障的时候,BDR转变成DR,接替DR个工作。
§ 花费(Cost):OSPF中使用的唯一度量值,使用链路的带宽计算得来。
* OSPF包格式
OSPF和EIGRP一样,也被设计成一个网络层协议,协议号89。包格式如下图:
各部分解释如下:
§ 数据链路层头部: OSPF使用的组播IP地址是224.0.0.5(非DR和BDR路由使用的地址)和224.0.0.6(DR和BDR使用的组播地址),这两个组播地址对应的MAC地址分别为”01-00-5E-00-00-05″和”01-00-5E-00-00-06″。
§ 包头部:协议号是89,源IP是发送路由的IP,目的IP是组播IP地址224.0.0.5或224.0.0.6。
§ OSPF头部:包括路由ID和所在的区域号、包的类型代码(5种类型的包代码)。
§ OSPF包对应的数据:每种包有每种包具体的内容。
* OSPF包类型
1,Hello包
Hello报文用来建立和维护OSPF路由器间的邻接关系,它的主要作用是:发现OSPF邻居,建立和维护邻接关系;在多路访问中选择DR和BDR。OSPF泛洪链路状态通告给其他路由前需要先建立邻接关系,通过在OSPF协议的接口上发送Hello报文判断是否有其他OSPF路由器运行在相同的链路上。
双方要建立邻接关系,Hello报文中的区域号、Hello间隔和死亡间隔、验证(如果有)以及区域类型都要一致。在广播(如以太网)和点对点链路(如串行线路)中,Hello间隔默认是10秒;死亡时间默认是Hello间隔的4倍(40秒);非广播多路访问(NBMA),比如帧中继网络中默认Hello间隔是30秒。
可以通过下面的命令修改默认的Hello时间和死亡时间:
/*修改串行线路s0/0的Hello间隔为5秒,死亡间隔为20秒。*/
Router(config)#int s 0/0
Router(config-if)#ip ospf hello-interval 5
Router(config-if)#ip ospf dead-interval 20
Router(config-if)#end
Router#
2,DBD(Database Description,数据库状态描述包)DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。
3,LSR(Link-State Request,链路状态请求包)接收端可以发送LSA来请求接收到的DBD中的某些详细信息。
4,LSU(Link-State Update,链路状态更新包)LSU用来更新OSPF路由信息,回复LSR请求。
5,LSAck(Link-State Acknowledgement,链路状态确认)当收到一个LSU,路由器发送LSAck确认。
* OSPF邻居关系的建立过程
OSPF中邻居建立过程演示图如下:
§ Down: OSPF初始状态,还没有开始交换信息。
§ Init: 交换信息初期,表示已经收到了邻居的Hello报文,但是报文中没有列出本路由的RID,也就是说对方还没有收到本路由发出的Hello报文。
§ Two-Way: 双向阶段,双方都收到了对方发送的Hello报文,建立了邻居关系。在多路访问的网络中,两个接口状态是DROther的路由器之间将停留在此状态,其他情况将继续转入高级状态。在此状态下的路由器是不能共享路由信息的,想共享路由信息,必须建立邻接关系。(注意邻居关系和邻接关系的区别)
§ Exstart: 准备开始交换阶段,双方通过Hello报文决定主从关系,最高RID的路由将成为主路由,最先发起交换。主从关系确立后进入下一个阶段。
§ Exchange: 开始交换阶段,路由器将本地的”路由状态数据库(LSDB)”用”数据库描述(DBD)”报文来描述,然后发给邻路由。如果这个阶段中的路由收到不在其数据库中的有关链路的信息,那么在下一个阶段中将请求对方发送该路由条目的完整信息。
§ Loading: 加载阶段,路由器通过发送”链路状态请求(LSR)”,来向邻居请求一些路由条目的详细信息。邻居则会使用”链路状态更新包(LSU)”来回复LSR请求,收到邻居发回的LSU后,再发送LSAck向发送LSU的路由进行确认。
§ FULL: 完全邻接状态,Loading结束后,路由器之间就变成了”Full adjacency”。
* OSPF基本配置实例
使用OSPF配置下面的拓扑:
R1配置:
R1(config)#int s 0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int fa 1/0
R1(config-if)#ip add 123.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#router ospf 1 /*启用OSPF进程,进程号1只具有本地意义。*/
R1(config-router)#net 123.1.1.0 0.0.0.255 area 0
R1(config-router)#net 1.1.1.0 0.0.0.255 area 0
R1(config-router)#net 12.1.1.0 0.0.0.255 area 0
R1(config-router)#end
R1#
/*
* “router ospf 1”中的OSPF进程号1,只具有本地意义,每个路由可以不同,
* “net 123.1.1.0 0.0.0.255 area 0”OSPF网络的宣告使用反掩码形式,
* 最后的“area 0”是OSPF区域号,同一个区域里的路由器区域号要保持一致,
* CCNA中只涉及区域0,也就是骨干区域的配置。
* 其实这里还可以使用下面这条命令,一次性将路由上的所有接口都宣告进OSPF进程:
* “net 0.0.0.0 255.255.255.255 area 0”
*/
R2配置:
R2(config)#int s 0/1
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int lo 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int fa 1/0
R2(config-if)#ip add 123.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#router ospf 2
R2(config-router)#net 0.0.0.0 255.255.255.255 area 0
R2(config-router)#end
R2#
/*“net 0.0.0.0 255.255.255.255 area 0”将R2上的所有接口都发布进OSPF进程*/
R3配置:
R3(config)#int fa 1/0
R3(config-if)#ip add 123.1.1.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int lo 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int lo 1
R3(config-if)#ip add 33.3.3.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#router ospf 3
R3(config-router)#net 123.1.1.0 0.0.0.255 area 0
R3(config-router)#net 3.3.3.0 0.0.0.255 area 0
R3(config-router)#end
R3#
/*R3并没有将Lo1接口宣告进OSPF进程*/
/*
* 对于OSPF的宣告下面还有几种不规范形式,但可以使用:
*
* "net 123.1.1.1 0.0.0.0 area 0"
* 指定仅有一个IP(123.1.1.1)宣告进OSPF进程。
*
* "net 123.1.1.0 255.255.255.0 area 0",
* 这条命令同"net 123.1.1.0 0.0.0.255 area 0"效果相同。
*
* "net 0.0.0.0 0.0.0.0 area 0",
* 这条命令同"net 0.0.0.0 255.255.255.255 area 0"效果相同。
*
* 上面几种格式都能被正确识别,但是最好使用规范格式。
*/
1,配置完成后查看路由表:
/*
* 查看R1的路由表,显示如下:
* 可以看到R1学习到了R2和R3上面的回环接口的IP地址,
* 因为R3的Lo1并没有宣告进OSPF进程,所以这里没有33.3.3.3这个地址。
* “O”表示是从OSPF学习到的路由条目。
*/
R1#show ip route
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/2] via 123.1.1.2, 00:15:04, FastEthernet1/0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/2] via 123.1.1.3, 00:15:04, FastEthernet1/0
123.0.0.0/24 is subnetted, 1 subnets
C 123.1.1.0 is directly connected, FastEthernet1/0
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial0/0
R1#
在OSPF中所有的回环接口都被自动宣告成32位的主机路由”/32″,如果想显示回环接口的实际子网掩码,可以使用下面的命令:
/*在R1、R2、R3宣告进OSPF的回环接口上执行下面的命令*/
R1(config)#int lo 0
R1(config-if)#ip ospf network point-to-point
执行完成后,再次查看路由表就会发现所有回环接口的子网掩码都变成了实际的子网掩码。
2,查看OSPF邻居表
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:00:37 12.1.1.2 Serial0/0
2.2.2.2 1 FULL/BDR 00:00:37 123.1.1.2 FastEthernet1/0
33.3.3.3 1 FULL/DROTHER 00:00:31 123.1.1.3 FastEthernet1/0
R1#
/*
* Neighbor ID: 邻居的RID,通过上面的输出可以看到R2的RID是2.2.2.2
* R3的RID是33.3.3.3,R1和R2通过不同的接口(以太网和串行线路),
* 建立了两次邻居关系。
*
* Pir: OSPF邻居接口的优先级,接口优先级用于DR和BDR的选举,
* 以太网接口接口的默认优先级是1,串行线路不需要选举DR和BDR,
* 所以上面显示中和串行线路建立的那条邻接关系的优先级是0,
* 0代表不参与选举。
*
* State: 邻居路由器的状态,FULL代表已经建立邻接关系,
* 斜杠"/"后面是选举的DR或BDR标识,因为串行线路不需要选举,所以是"-",
* "FULL/BDR"表示R2是BDR,R3是DROTHER,除了DR和BDR的其余路由器都是DROTHER。
* 所以R1自己就是DR了。稍后会介绍DR和BDR的选举过程。
*
* Dead time: 默认的死亡时间是hello时间的4倍,即40秒。
* 死亡时间是一个倒计时,计时器为0时,该邻居被删除。
*
* Address: 邻居直连接口的IP地址。
*
* Interface: 本路由的外出接口。
*/
3,查看OSPF拓扑表
R1#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 1087 0x80000006 0x0096BA 4
2.2.2.2 2.2.2.2 486 0x80000004 0x001832 4
33.3.3.3 33.3.3.3 953 0x80000004 0x00358D 2
Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
123.1.1.1 1.1.1.1 292 0x80000003 0x00304B
R1#
/*在同一个区域中的所有路由器的OSPF拓扑表都是相同的*/
* OSPF ROUTER ID选举规则
Router ID简称RID,用来唯一标示OSPF网络中的每一台路由器。如果两条OSPF路由器的RID一样,彼此间无法建立邻接关系。RID是以IP地址的形式出现的,按照下面的顺序来选举RID:
1,Router-id 配置命令最优先
首先在R3上查看一下默认选举出来的RID:
R3#show ip protocols
Routing Protocol is "ospf 3"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 33.3.3.3 /*默认选出来的RID是lo1接口的IP*/
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
3.3.3.0 0.0.0.255 area 0
123.1.1.0 0.0.0.255 area 0
Reference bandwidth unit is 100 mbps
Routing Information Sources:
Gateway Distance Last Update
2.2.2.2 110 01:11:14
1.1.1.1 110 01:11:14
Distance: (default is 110)
下面手工配置Router ID:
R3(config)#router ospf 3
R3(config-router)#router-id 8.8.8.8 /*使用命令将RID配置成8.8.8.8*/
Reload or use "clear ip ospf process" command, for this to take effect
/*路由器提示需要重启OSPF进程来使更改生效*/
R3(config-router)#end
R3#clear ip ospf process /*重启OSPF进程*/
Reset ALL OSPF processes? [no]: y /*输入y回车*/
R3#
/*再次查看协议,发现RID更改成了8.8.8.8*/
R3#show ip protocols
Routing Protocol is "ospf 3"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 8.8.8.8
......
从上面手动配置RID来看,RID可以是一个并不存在的IP地址,RID仅仅作为路由的标识,不用于寻址。
2,如果没有手动指定RID,路由器默认使用最大已激活的回环接口IP作为RID(注意,这个最大并不是接口号最打,而是IP地址最大,比如33.3.3.3大于3.3.3.3)。
下面我们通过取消R3的手动RID配置,并且关闭Lo1接口,这个时候最大的已激活回环接口IP应该是lo0的3.3.3.3,重启OSPF进程看看结果是否和预测的一样:
R3(config)#router ospf 3
R3(config-router)#no router-id /*删除手动RID配置*/
Reload or use "clear ip ospf process" command, for this to take effect
R3(config-router)#int lo 1
R3(config-if)#shutdown /*关闭Lo1,它将处于非激活状态*/
R3(config-if)#end
R3#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R3#
/*再次查看协议,RID果然变成了3.3.3.3*/
R3#show ip protocols
Routing Protocol is "ospf 3"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 3.3.3.3
......
3,如果路由器没有激活的回环接口,路由器默认选择最大激活的物理接口的IP地址作为RID(同上,是接口的IP最大,而不是接口号最大)。
下面我们关闭R3的lo0接口,再次重启OSPF进程,看看RID的变化情况:
R3(config)#int lo 0
R3(config-if)#shut
R3(config-if)#end
R3#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R3#
/*关闭回环接口lo0后,再次查看协议*/
R3#show ip protocols
Routing Protocol is "ospf 3"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 3.3.3.3
/*看到这里大家可能觉得奇怪,为什么还是回环接口的地址作为RID,回环地址明明已经全部关闭了,下面使用手动配置RID然后再
删除手动配置的方法来让物理接口成为RID*/
R3#conf t
R3(config)#router ospf 3
R3(config-router)#router-id 5.5.5.5 /*首先手动配置一个RID*/
Reload or use "clear ip ospf process" command, for this to take effect
R3(config-router)#end
R3#clear ip ospf process /*重启OSPF进程*/
Reset ALL OSPF processes? [no]: y
R3#conf t
R3(config)#router ospf 3
R3(config-router)#no router-id /*接着清除这个手动配置的RID*/
Reload or use "clear ip ospf process" command, for this to take effect
R3(config-router)#end
R3#clear ip ospf process /*重启OSPF进程*/
Reset ALL OSPF processes? [no]: y
R3#
/*这时候再次查看协议,发现RID变成了最大激活的物理接口IP地址了*/
R3#show ip protocols
Routing Protocol is "ospf 3"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 123.1.1.3
* OSPF DR和BDR选举规则
首先用下面的图来说明一下为什么多路访问的以太网中需要选举DR和BDR,选举它们有什么好处:
在上图的多路访问的网络中,如果没有选举DR和BDR,为了交互路由信息,每台路由器都需要和其他路由建立邻接关系,就会有10个邻接关系,如果其中一台路由离开,要和所有的路由断开邻接关系,新的路由加入,也需要和所有路由建立邻接关系,这样会影响收敛效率。
如果选举了DR和BDR,那么所有DROther路由器只需要和DR以及BDR建立邻接关系即可,DROther之间的关系停留在Two-Way状态,如果网络上有路由条目更新,DROther向组播地址224.0.0.6发出,224.0.0.6是DR和BDR的组播地址,DR接收到这个更新后,再用224.0.0.5组播地址向其他的DROhter发送LSA。这样不仅加快的网络
展开阅读全文