扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
OSPF协议算法
通过前两课的学习我们知道OSPF是一种链路状态算法,在介绍链路状态算法之前,我们再来回忆一下DV算法,比如说RIP,RIP协议在计算路由的时候首先把自己已知的路由发送给自己的邻居,当这个邻居收到路由之后会与自己的路由进行比较,然后取一个最优的路由添加到路由表中,同时将下一条指向发给自己路由的路由器。而OSPF链路状态协议采用了一种全新的设计思想,在网络中运行OSPF的路由器在向外发送的信息中不仅包含了路由信息,还包括了链路的状态信息及网络的拓扑结构(拓扑结构可以理解为,在网络中使用的接口,每个接口的网络状况是什么样的,以及在网络中的互连情况)。
OSPF协议通过LSA描述网络拓扑
在了解了OSPF协议的算法后,下面我们来看下OSPF协议是如何来描述这种信息的。首先,现存的网络中的任何形式的组网精选后都不外乎以下四种:
第一种:为整个网段中只有路由器本身运行OSPF,与这台路由器相连的接口的其它设备都不运行OSPF。
第二种:两台运行OSPF协议的路由器通过点对点链路相连(比如PPP/HDLC)。
第三种:一台路由器在同一个网段中通过点对多点链路与多个路由器相连,而这多个路由器之间不存在互连关系。
第四种:一台路由器在一个网段中通过点对多点链路与多个路由器相连,但这多个路由器之间存在互连关系(也就是说在网络中的路由器都是两两互通,不需要转发而可以直接相互访问)。
四种网络拓扑如下图所示:
在对网络拓扑进行抽象描述后,我们具体讲述下上图中RTA是如何描述它身边的这四种网络情况。
首先我们来看第一种(整个网段中只有路由器本身运行OSPF,与这台路由器相连的接口的其它设备都不运行OSPF)无论什么路由协议,归根结底都是为了计算出路由。在第一种网络结构中,首先要描述出自己已知的路由,那么在运行OSPF的路由器中该如何描述呢?
Link Id:192.168.1.0 /本地接口网段/
Data: 255.255.255.0 /掩码/
Type: StubNet (3) /类型/
Metric: 5 /花费值/
由于有了网段和掩码我们就可以描述出这条路由,上述例子描述了192.168.1.0/24网段的路由,同时,到达这个网段的花费值为5。并且把第一种类型的网络定义成3这个字符,当其他设备收到字符3时就会明白在整个网段中只有发送3字符的路由器运行OSPF协议。
接下来我们来看第二种网络拓扑(两台运行OSPF协议的路由器通过点对点链路相连)该如何描述。第二种网络拓扑描述的时候分两步。首先,同第一种情况类似的是,路由器需要把本地运行OSPF接口的路由信息描述出来,即:
Link Id:192.168.2.0 /网段/
Data: 255.255.255.0 /掩码/
Type: StubNet (3) /类型/
Metric: 5 /花费值/
第二步,描述与其相连的RTB路由器。
Link Id:192.168.2.1 /RTB 的Router ID/
Data: 2.2.2.2 /RTB的接口地址/
Type: Router (1) /类型/
Metric: 20 /花费值/
在这里需要说明的是,在对RTB路由器进行描述的时候,Link ID字段必须用一个唯一的数字来表示,既不能是路由器的名称也不能是路由器的型号,因为在整个网络中Router ID是唯一的,所以这里用RTB的Router ID来描述RTA与RTB相连。同时,在Type字段中添加的数字为1,就表示是与一台路由器相连。那么是否通过这些描述就能非常清楚地没有歧义的描述出网络拓扑呢?答案是否定的。因为RTA与RTB相连有可能是多个接口互连,比如RTA与RTB互连是通过多条串行线路。所以,当RTA知道了自己与RTB相连后,还需要知道是与RTB的哪个接口相连,因此在Data字段中我们用RTB的接口地址来描述RTA是与RTB的那个接口相连。最后,在计算到RTB的花费。通过这些描述,RTA就能够清楚地描述出自己的连接状况。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。