OSPF路由协议
开方式最短路径优先
链路状态型的路由
无路由环路
支持触发更新
内部网关协议
封装IP头部协议字段:88eigrp 89ospf
工业标准,工作在IP网络
组播地址:224.0.0.5 224.0.0.6
只支持等价负载
OSPF收敛过程:
- LSA泛洪
- 收到LSA的路由器建立自己的LSDB
- 在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。
- 通过最短路径树得出到达目的网 络的最优路由,并将其加入到IP路由表中。
LSA链路状态公告:包含了路由已知的接口IP地址、掩码、开销和网络类型等信息
LSDB链路状态数据库
OSPF报文:
OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。
- Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播NBMA(None-Broadcast Multi-Access)类型的网络中选出指定路由器DR(Designated Router)和备份指定路由器BDR( Backup Designated Router)。
- DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
- LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息.
- LSU报文:用来向对端路由器发送所需要的LSA。
- LSACK报文:用来对接收到的LSU报文进行确认
链路状态路由协议
邻居和邻接关系的建立
Hello数据包
邻居(Neighbor): OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现 邻居。收到Hello报文的OSPF路由器会检查报文中所定义的一些参数, 如果双方的参数一致,就会彼此形成邻居关系。
邻接(Adjacency): 形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。 只有当双方成功交换DD报文,并能交换LSA乊后,才形成真正意义上的 邻接关系。
路由器在发送LSA之前必须先发现邻居并建立邻居关系。
- Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
- Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval (发送Hello报文的时间间隔)。如果RouterDeadInterval(失效时间)间隔内未收到邻居的Hello报文,则转为 Down状态。
- Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系 。
- 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
- ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以 后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的 ,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。
- Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD 报文,描述本地LSDB的内容。
- Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。
- Full:路由器的LSDB已经同步。
可使用命令debug ip ospf adj查看邻居建立的详细过程
DR/BDR选取
DR:指定路由 BDR:备份指定路由
(1)在多路访问网络中,DROTHER路由器只与DR与BDR建立邻接关系,DROTHER之间只建邻居关系。
(2)DR与BDR有自己的组播地址:224.0.0.6
(3)DR与BDR选取原则
首要因素是时间
其次是接口优先级(多路访问网络的接口优先级为1,点到点网络接口优先级为0。
ip ospf priority 可以修改接口优先级,若为0则不参与DR选举
再次是路由器ID:先比环回接口,再比物理接口
(4)DR与BDR选取是非抢占的,以下情况会重选
重启ospf进程或路由器;参与的路由器都执行clear ip ospf process命令;DR故障;
OSPF接口优先级为0。
(5)如果DR故障,BDR接管DR,如果BDR故障,选新的BDR
数据库同步
OSPF分层路由
在同一个AS,通过接口划分区域,ABR(区域边界路由器)
- Area为骨干区域
- 非骨干区域之间不允许直接相互发布路由信息
- 每个非骨干区域都必须连接到骨干区域上
- 同一个OSPF区域中的路由器中的LSDB是完全一致的
- OSPF区域号可以手动配置。
ABR区域边界路由器:运行在区域之间的路由器,柏寒所有项链区域的LSDB。
ASBR自治系统边界路由器:和其他AS中的路由器交换路由信息的路由器,这种路由器会向整个AS通告AS外部路由信息
划分区域的好处:
1、减少路由表的路由条目
2、拓朴发生改变时,只影响本区域的数据库
3、每隔30分钟泛数据库信息(周期和触发更新),划分区域后,只在本区域泛洪
4、网络设计灵活
5、每个区域维护一个独立的LSDB
链路状态路由的优缺点
六、最短路径优先算法(SPF Calculation)
Cost=108/BW(b/s)
metric值=所有目的地址到达本地路由器的入接口的cost值之和
metric值=所有本地路由器到达目的地址的路由器的出接口的cost值之和
也可以使用命令sh ip ospf interface loopback 0 查看接口的cost值
修改接口的cost值:
Router(config)#int f0/0
Router(config-if)#ip ospf cost 1
或Router(config-if)#bandwidth 100
七、配置单区域OSPF
Router(config)#router ospf process-id
Router(config-router)#network address wildcard-mask area area-id
八、配置环回接口
RID:环回口----物理口
九:配置OSPF身份验证
- OSPF身份验证可以基于端口、基于区域、基于虚链路进行验证。
- OSPF支持明文和MD5身份验证
(1)配置明文认证
R1(config-if)#ip ospf authentication-key ccie 设置明文密码,两端口密码要一致
R1(config-if)#ip ospf authentication 开启接口认证
R1(config)#router ospf 1
R1(config-router)#area 1 authentication 开户区域认证
(2)配置密码认证
R1(config-if)#ip ospf message-digest-key 1 md5 ccie
R1(config-if)#ip ospf authentication
(3)配置区域认证
R1(config-if)#ip ospf message-digest-key 1 md5 ccie
R1(config-router)#area 1 authentication message-digest
十、验证OSPF配置:
查看是否配置ospf:sh ip protocols
查看邻居表:sh ip ospf neighbor
查看链路状态数据库(拓朴表):sh ip ospf database
Link ID:标识每个LSA
ADV Router:指通告链路状态信息的路由器ID
Age:老化时间,范围是0–60min,老化时间到达60min的LSA条目将从LSDB中删除
Seq#:序列号,范围为0X80000001-0X7fffffff,序列号越大,LSA越新。为了确保LSDB的同步,OSPF每隔30min对链路状态刷新一次,序列号会自动加1。
Checksum 校验和,计算除了Age字段以外的所有字段,LSA存放在LSDB中,每5min进行一次校验,以确保LSA没有损坏。
Link count:通告路由器在本区域内的链路数目
Tag:外部路由的标识,在route-map中,可以通过匹配tag值来定义路由策略
查看路由表:sh ip route /sh ip route ospf
查看ospf进程及相关信息:sh ip ospf
查看运行ospf接口的信息:sh ip ospf interface f0/0
十一、OSPF路由手工汇总
1、区域间路由汇总必须在ABR上完成
2、外部路由汇总必须在ASBR上完成
3、“no-advertise”参数阻止传递汇总路由
来源:CSDN
作者:吔?
链接:https://blog.csdn.net/weixin_46206611/article/details/104225817