OSPF

时光毁灭记忆、已成空白 提交于 2020-02-11 01:38:05

OSPF路由协议
开方式最短路径优先
链路状态型的路由
无路由环路
支持触发更新
内部网关协议
封装IP头部协议字段:88eigrp 89ospf
工业标准,工作在IP网络
组播地址:224.0.0.5 224.0.0.6
只支持等价负载

OSPF收敛过程:

  1. LSA泛洪
  2. 收到LSA的路由器建立自己的LSDB
  3. 在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。
  4. 通过最短路径树得出到达目的网 络的最优路由,并将其加入到IP路由表中。

LSA链路状态公告:包含了路由已知的接口IP地址、掩码、开销和网络类型等信息
LSDB链路状态数据库

OSPF报文:

OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。

  1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播NBMA(None-Broadcast Multi-Access)类型的网络中选出指定路由器DR(Designated Router)和备份指定路由器BDR( Backup Designated Router)。
  2. DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
  3. LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息.
  4. LSU报文:用来向对端路由器发送所需要的LSA。
  5. LSACK报文:用来对接收到的LSU报文进行确认

链路状态路由协议

邻居和邻接关系的建立
Hello数据包

邻居(Neighbor): OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现 邻居。收到Hello报文的OSPF路由器会检查报文中所定义的一些参数, 如果双方的参数一致,就会彼此形成邻居关系。
邻接(Adjacency): 形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。 只有当双方成功交换DD报文,并能交换LSA乊后,才形成真正意义上的 邻接关系。

路由器在发送LSA之前必须先发现邻居并建立邻居关系。

  1. Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
  2. Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval (发送Hello报文的时间间隔)。如果RouterDeadInterval(失效时间)间隔内未收到邻居的Hello报文,则转为 Down状态。
  3. Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系 。
  4. 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
  5. ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以 后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的 ,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。
  6. Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD 报文,描述本地LSDB的内容。
  7. Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。
  8. 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(区域边界路由器)

  1. Area为骨干区域
  2. 非骨干区域之间不允许直接相互发布路由信息
  3. 每个非骨干区域都必须连接到骨干区域上
  4. 同一个OSPF区域中的路由器中的LSDB是完全一致的
  5. 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身份验证

  1. OSPF身份验证可以基于端口、基于区域、基于虚链路进行验证。
  2. 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”参数阻止传递汇总路由

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!