rip是距离矢量路由协议(基于跳数)ospf是链路状态协议 rip只知道怎么去目的地,有多远,不知道网络拓扑

OSPF的网络类型:

  • 1、点到点网络类型(point-to-point):如果数据链路层封装的是HDLC或者PPP协议的,运行ospf时默认点到点(默认串口连接)
  • 2、广播型网络(broadcast):运行ospf时默认广播型网络,
  • 3、非广播多路访问(NBMA):帧中继和ATM等,可以连接两台以上路由器,但无法广播数据包。一台NBMA网络上的路由器发的数据包无法被与之相连的路由器获取,需要额外增加配置。需要选举BR,BDR,并且所有数据包为单播,不能自己发现邻居,需手动配置
  • 4、点到多点网络(point-to-multipoint):(p2mp)不需要选brbdr,ospf数据包以单播发送邻居,缺点是交互复杂
  • 5、虚链路(virtual links):没有编号的点到点的特殊设置,单播发送

OSPF的路由类型:

1、内部路由器(Internal Router):所有接口都在同一个区域内的路由器。 2、主干路由器(Backbone Router):至少有一个接口连接骨干区域(area 0)的路由器。【内部路由器也是主干路由器】 3、区域边界路由器(ABR):路由器连接多个区域(其中一个区域必须是骨干区域area 0),对于每一个区域都有一个独立的链路状态数据库。 4、自制系统边界路由器(ASBR):与AS外部相连的路由器。同一台路由设备可能既是ABR又是ASBR。ASBR可以认为是和外界通信的路由器,它负责学习外部的其他路由协议产生的路由,把它们通过重分发的方式注入到本ospf区域。

OSPF的三张表(邻居表,拓扑表–链路状态数据库,路由表):

1、邻居表(Neighbor Table):OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。 2、拓扑表(Topology Table):OSPF用LSA(Link State Advertisement 链路状态通告)来描述网络拓扑信息,然后OSPF路由器用拓扑数据库来存储网络的这些LSA。 3、路由表(Routing Table):对链路状态数据库进行SPF(Dijkstra)计算,而得出的OSPF路由表。 OSPF 网络结构:自治系统,区域 OSPF 算法:Dijkstra’s SPF 算法。 OSPF 成员类型:指定路由器 (DR) , ==备份指定路由器 (BDR) ==, 其他路由 (DRother)

OSPF的五种报文:

OSPF报文封装在IP报文的负载中,不使用TCP,而使用LSAck实现自己的确认机制。

1、Hello: 建立并维护邻居关系。hello组播地址 224.0.0.5/6。【DRother(非指定路由)通知所有的DR/BDR使用组播地址224.0.0.6,DR通知DRother使用组播地址224.0.0.5】 2、DBD: DatabaseDescribe 数据库描述,建立邻居时发送,描述自身接口状态。 3、LSR : LinkState Request 链路状态请求,向邻居请求。 4、LSU: LinkState Update 链路状态更新,发送的是LSA。【LSA是属于LSU里面的消息】 5、LSAck: 对DBD、LSR、LSU进行确认 LSA的老化时间是3600s,正常情况下每隔1800s,LSA会全部刷新一遍。 OSPF的序列号,用于判断这个LSA是否是最新LSA。 序列号范围:0x80000001~0x7fffffffffff。

OSPF工作过程

1

ospf 点到点模式如何设置 ospf点到点网络_OSPF

 

2

ospf 点到点模式如何设置 ospf点到点网络_ospf 点到点模式如何设置_02

 

3

ospf 点到点模式如何设置 ospf点到点网络_OSPF_03

 

简单概叙一下(不一定都对)

  1. 路由器A、B处于down状态,a向组播地址224.0.0.5发送hello包(也可能是b)
  2. b收到a的hello包,生成邻居表ip地址及接口,然后向A发送自己的RID,A收到自己的RID后进入init初始化阶段,生成邻居表,结束后双方进入2way 双向通讯(邻居关系建立的标志)
  3. 开始选举DRBDR(欲启动阶段):A向B发送DBD报文,里面只有自己的RID表示想开始交换DBD数据库目录,B收到后发现自己的RID比A大,向A发送自己的DBD,此时进入(Exchange)准交换阶段,双方发送DBD,里面有LSDB(链路状态数据库)即路由信息
  4. 共享完后双方发送LSAck报文进入LOADING加载阶段:A/B查询到自己的DBD中有缺少的LSA信息(如缺少另外网段的信息),像B/A (邻居)发送LSR报文(链路状态请求),告诉邻居我缺少哪个网段的信息,然后邻居再用LSU(链路状态更新)补给他,邻居收到后发送LSAck(链路状态确认)告诉邻居我收到了
  5. 以上完成后双发邻接关系建立 进入FULL转发阶段
  • 匹配成功进入邻接;失败后停留在邻居关系,仅hello周期保活
  • 邻接数据库一致后,生成LSDB表(链路状态数据库)该网络所有LSA的集合,基于LSA—>生成有向图—>最短路径树—>树最佳路径加载到本地路由表中;收敛完成,hello包周期保活;之后每30min邻接关系周期对比一下DBD查漏补缺
  • 默认hello包hello time为10s(广播型网络);NBMA为30s,dead time为hello time的4倍

hello包前4个必须相同的参数

区域id

认证

hello时间 死亡时间 接口类型

特殊区域标记

华为(邻居接口子网掩码长度必须相同)

一致才能建邻