网络工程Routing&Switching —— OSPF 小白来说说自己了解的内容(2)

Hello~

大家晚上好啊~ 我这个小白又出现了~ 今天继续跟大家说一说我们的OSPF动态路由协议

首先

还是很感谢大家给我这个小白一个机会来说说OSPF动态路由协议。
(以下内容均为个人总结,如有不对,请大家指正,谢谢)

接下来

我们接着说,我们上一次主要说了RIP与OSPF的区别,已经RIP的弊端,那么,我们今天来正式的说说OSPF。
首先,我们说说OSPF的工作过程,OSPF的工作过程可以简单的分为三个阶段,分别是

  • Step1:邻居的建立
  • Step2:链路数据库的同步
  • Step3:最优路径的计算

Step1 邻居的建立

在邻居建立的过程中,我们或用到很多的参数,我们来一一介绍:

  1. Router ID :

    Router ID 是在自治系统内的每一台运行中的路由器的唯一标识,每台运行中的路由器都有一个Router ID 。我们可以理解为类似于每个网卡的MAC地址,同样,一台路由器就拥有一个Router ID,但是最大的不同是MAC地址是烧录在网卡中不可以更改的,而我们的Router ID 是可以进行手工配置和更改的。Router ID 一般是一串IP地址的样式。
    我们在对路由器进行配置的时候理论上是不需要将任何一个接口配成Router ID的,但是,在实际的工程中,我们通常把此台路由器的loopback口(环回接口)配置为Router ID。正常,我们的Router ID是我们可以手工设定的,但是如果当我们没有对路由器进行手工配置Router ID的时候,我们会发现路由器还是会有一个Router ID ,所以这里涉及到了一个Router ID的选举过程。

Router ID的选举过程
  • 首先,毫无疑问,路由器会先选择我们手工配置的Router
    ID,如果没有,则,路由器会继续选择loopback口中IP地址最大的那个作为Router
    ID。而如果loopback口没有进行配置,那路由器会选择物理接口最大的IP地址作为Router ID。

  • 但是这里还可能会有的一个问题是,虽然我们的管理员可能手工设定了Router ID,但是,之后查看的时候发现,路由器仍然选择了最大物理接口的IP地址作为Router ID,这个是因为OSPF的一个自我保护机制,稳定大于一切。所以为了避免管理员忘记设定Router ID,而在一段时间后又设置了Router ID,这个时候,如果更改Router ID,会改变路由的邻居关系,造成网络的震荡,为了使网络稳定,此时路由器不会更改Router ID。此时,如果你想更改Router ID,只能通过重启OSPF进程,或者重启路由器的方式来使得路由器可以重新选举新的Router ID。

2. Hello报文:
Hello报文的作用可以归为3点:

  • 发现邻居,

  • 建立邻居,

  • 保持邻居关系。

OSPF邻居关系的建立:

网络工程Routing&Switching —— OSPF 小白来说说自己了解的内容(2)
我们来看这个图(这个图是小白从网上盗的,自己画太麻烦了),首先,两台交换机RTA与RTB都处于down状态,RTA先发送一条hello报文给RTB,这条hello报文中携带了自己的Router ID;当RTB收到这条hello报文后,会将自己从down状态变为init状态,并回复给RTA一条hello报文,来告诉RTA自己的Router ID;当RTA收到此条回复,并且也确认了没有Router ID的冲突后,会将自己从down状态改为init状态。之后RTB会在回复RTAhello报文的同时再发送一条hello报文,此条hello报文会携带自己的Router ID的同时,会声明自己的邻居的Router ID是RTA的Router ID;当RTA收到后,RTA会从init状态变为2-way状态,同时再回复给RTB一条hello报文,同样在其中声明自己的邻居的Router ID是RTB(也就是宣称RTB是自己的邻居了),RTB在收到报文后,也会变为2-way状态。至此,RTA与RTB的邻居关系建立完成。

注意:此时建立的是邻居关系,不是临接关系,临接关系还需要相互传递链路信息,我们后面说。
  • 还要说明的是hello报文是自动发送的,也就是OSPF有可以通过组播的方式,在同一个area内自动发现邻居,并建立邻居关系的能力,但是,对于某些不支持组播的网络,我们也可以通过手动的方式来发现和维护邻居,也就是说,OSPF是同时支持组播和单播发现,建立邻居关系的,但是单播需要进行手工配置。补充:通常情况下,OSPF的组播地址是224.0.0.5和224.0.0.6

Step2 协商 链路状态信息(LSA)

链路状态信息通过以下几个方面来进行描述:

  • 链路类型
  • 接口IP地址及掩码
  • 链路上所连接的邻居路由器
  • 链路带宽

链路类型主要是表明这条链路使用的是什么链路,比如可能为以太网链路,也可能为帧中继链路 等。
链路上所连接的邻居路由器主要是描述并告知自己邻居的接口信息,Router ID等等,就是对于整个网络拓扑结构的描述与表明。
描述链路带宽是因为OSPF在选择最优路径的spf算法中加入了链路贷款作为重要参考标准,为了方便最优路径的选择,加入链路带宽。

(未完~)

最后

很抱歉

时间有些晚了,我们今天就先分享到这里吧,没有说很多,下回,我们再继续分享关于协商链路信息中所具体遇到的问题,说一说不同的链路类型,最优链路的计算选择,等等。。。

重点

(希望大家可以指出内容中的不足与错误,给小白一点建议和改进的机会。如果有非常严重的错误,请私信我改正,同时也请大家多多担待。感谢大家,小白一定会更加努力的。晚安 ~ 我们再会,明天又是工作日了,祝大家都有一个好心情。安~)

网络工程Routing&Switching —— OSPF 小白来说说自己了解的内容(2)