动态路由OSPF

OSPF协议就是开放式最短路由优先协议,突出体现了它相对于RIP这类距离矢量路由协议的优势:更加可靠、扩展性更强、效率更高。运行OSPF的路由器会首先通过启用了OSPF的接口来寻找同样运行了OSPF协议的路由器,并且判断双方是否应该相互交换链路状态信息,目的是让同一个OSPF区域中的每一台路由器拥有相同的链路状态数据库。从设计上就保证了无路由环路。OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路。OSPF还利用区域间的连接规则保证了区域之间无路由环路。OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。OSPF可以解决网络扩容带来的问题。

原理:
运行OSPF协议的路由器会将自己拥有的链路转态信息,通过启用了OSPF协议的接口发送给其他OSPF设备。同一个区域中的每台设备都会参与链路状态信息的创建、发送、接收与转发,直到这个区域中所有OSPF设备获得了相同的链路状态信息为止。OSPF的收敛过程由链路状态公告LSA泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到这个LSA信息的路由器就可以根据LSA里面提供的信息来建立自己的链路状态数据库,在这个基础上使用算法,建立起到达每个网络的最短路径树。最后通过最短路径树得出到达目的网络的最优路由,并加入到IP路由表。

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

  1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播和NBMA类型的网络中选举指定路由器DR和备份指定路由器BDR。
  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报文进行确认。

OSPF的状态机:

1、down状态,表示没有从邻居收到hello报文
2、Init状态,单项收到hello,没有在hello报文里面看到自己
3、2-way,双向通行,表示收到的hello里面看到了自己的标识符。但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
4、EXStart,选举主从,发送的是空的DD报文
5、exchange、发送的是带有数据库描述信息的DD
6、loading,发LSR,回LSU,再回LSACK
7、full,ospf路由器的LSDB同步,也就是LSA都有了

OSPF网络类型:
点到点(P2P):只把两台路由器直接相连的网络。常用PPP格式封装
广播:支持两台以上路由器,并且具有广播能力的网络。以太网数据链路层封装
非广播多路访问(NBMA):在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置。NBMA方式要求网络中的路由器组成全连接。
点到多点(P2MP):将整个网络看成是一组点到点网络。对于不能组成全连接的网络应当使用点到多点方式,例如只使用PVC的不完全连接的帧中继网络。

DR和BDR的作用:
广播型和非广播多路访问型网络需要选举DR/BDR,
DR和BDR可以减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了较大的广播型 网络和NBMA网络中的邻接关系数量。为了维护网络上邻接关系的稳定性,如果网络中已经存在DR和BDR,则新添加进该网络的路由器不会成为DR和BDR,不管该路由器的Router Priority是否最大。如果当前DR发生故障,则当前BDR自动成为新的DR,网络中重新选举BDR;如果当前BDR发生故障,则DR不变,重新选举BDR。这种选举机制的目的是为了保持邻接关系的稳定,使拓扑结构的改变对邻接关系的影响尽量小。

OSPF为什么划分区域:
OSPF支持将一组网段组合在一起,这样的一个组合称为一个区域。
划分OSPF区域可以缩小路由器的LSDB规模,减少网络流量。区域内的详细拓扑信息不向其他区域发送,区域间传递的是抽象的路由信息,而不是详细的描述拓扑结构的链路状态信息。每个区域都有自己的LSDB,不同区域的LSDB是不同的。路由器会为每一个自己所连接到的区域维护一个单独的LSDB。由于详细链路状态信息不会被发布到区域以外,因此LSDB的规模大大缩小了。

ABR和ASBR的定义:

ABR路由器:也就是区域边界路由器,是指有接口被划分到区域之中, 也有接口被划分到其他OSPS区域的路由器。接口在不同的区域都有,那么作用就是连接这些区域,并充当这些区域间通信的关口。这是个核心作用,通过ABR将自己连接的某一个区域中的路由器发送到自己连接的另一个区域,从而达到从整体上减轻OSPF路由器进行网络拓扑计算及路由计算的负担,并在一定程度上隔离网络故障的设计效果。

ASBR路由器:也就是自治系统边界路由器,是指通过其他方式获得(包括动态学习和静态配置)的外部路由条目注入到OSPF网咯中,让启用OSPF的路由器获取OSPF网络之外的路由信息的路由器