ospf介绍

ospf是一种内部网关协议,用于同一自治系统内的路由信息交换。本文介绍了ospf的基本术语,如AS、router-id、DR、BDR,并详细阐述了ospf的建立过程,包括发送hello包寻找邻居、建立邻接关系、更新LSA信息,以及ospf路由表的计算。同时,文章还讨论了ospf中邻接关系建立可能遇到的问题及解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Ospf首先是一种内部网关协议,其描述的路由信息属于同一个自制系统。所谓自制系统,即属于该自制系统的路由器都必须使用同一种内部网关协议。在这里,即为ospf。

  1. Ospf的一些常用术语:

Ospf协议的内容比较丰富,涉及的术语、定义较多。在这里有一些常用的定义:

  1. 自制系统(AS):一组使用相同路由协议交换路由信息的路由器
  2. Router-id:一个32位的数字,在一个AS中每个路由器都有其独一无二的router-id
  3. Network:ospf可以适用于多种网络,有点对点,广播网络,非广播网络。在这里,我们指的都是以太网
  4. 邻居路由器:两台路由器都有接口接在同一网络中,即接口的ip须属于这一网络
  5. 区域/area:ospf会将整个AS划分为多个区域(其主要目的是为了减少宽带负载,减少LSA数量,降低cpu和内存负担)
  6. DR:指定路由器,在一个网段中选举一个特定的路由器,在广播网络中负责与网段中的其他路由器交换信息
  7. BDR:备份指定路由器,与网段中的其他路由器同样建立邻接关系,平时和普通的DRother一样,在DR失效时,顶替DR的工作
  8. ABR:连接多个区域的路由器(广播网络里,ABR必须连接area 0)
  9. ASBR:与属于其他AS的路由器交换路由信息的路由器
  1. ospf的建立过程:

首先一个最简单的ospf的配置:

PA-5500-U20A(config)#router ospf   --进入ospf视图

PA-5500-U20A(config-router-ospf)#router-id  1.1.1.1   设置该路由器的router-id标识(在AS中唯一)

PA-5500-U20A(config-router-ospf)#area  0  设置该路由器可以属于的区域,在这里是区域0,也可以配置路由器同时属于区域1或其他区域

PA-5500-U20A(config-router-ospf)#network  10.0.0.0  24  area  0  --设置该路由器在区域0 中所运行ospf协议的网段

PA-5500-U20A(config-router-ospf)#ospf enable  --启动ospf协议

PA-5500-U20A(config)#interface ge 0/0/1   --配置路由器运行ospf协议的接口,以1口为例

PA-5500-U20A(config-if-Ge0/0/1)#ip  address  10.0.0.1  24   配置接口ip以运行ospf。由于我们刚才设置运行网段为10.0.0.0 24 故配属于该网段的ip即可

PA-5500-U20A(config)local-security  ospf  ospf   --配置ospf的本地安全

这是一个运行ospf协议的最基本配置,我们来看ospf的运行过程:

  1. 发送hello包,寻找邻居路由器
  2. 建立邻接关系,请求以及更新LSA信息
  3. 根据LSA信息建立的数据库,构造SPF树
  4. 计算ospf路由表

在建立过程中,会用到ospf的一些特有的数据包:

1Hello:发现邻居,建立、维持邻居关系,选举DRBDR,确保双向通信

2DBD:数据库描述数据包(主要描述始发路由器数据库中的一些或者全部LSA信息),主要包括接口的MTU,主从位MS,数据库描述序列号等);

3LSR:链路状态请求数据包(查看收到的LSA是否在自己的数据库,或是更新的LSA,如果是将向邻居发送请求);

4LSU:链路状态更新数据包(用于LSA的泛洪扩散和发送LSA去响应链路状态请求数据包);

5LSACK:链路状态确认数据包(用来进行LSA可靠的泛洪扩散,即对可靠包的确认)。

2.1发送hello包,寻找邻居路由器:

     以我们刚才的配置为例,当你对路由器做了如上的配置后,后台的ospf进程会每间隔10s发出一个hello包,hello包的发送是基于组播的。在你启动如上的配置后,ospf会将该接口的ip10.0.0.1加入到组播地址224.0.0.5(这个地址是ospf专用的)。故hello包即为源地址为10.0.0.1到目的地址224.0.0.5。而hello包中内容是所在区域\area、router-id、路由器优先级等设置的信息,以及当前路由器所认为的DR和BDR、和目前该路由器所探测到的邻居所组成的邻居列表。

    HELLO包发送到组播地址224.0.0.5以后,组播会将该hello包洪泛到加入该组的其他组成员中。例如       (fw1)(ge 0/0/1)-----(fw2)(ge 0/0/1)

在fw1上我们做了如上的配置,在fw2上我们可以做类似的配置,相同区域,相同网段。不同的只是router-id以及所使能的接口的ip地址,在这里,假设router-id配置2.2.2.2。接口ip我们配置成10.0.0.2  24。当然fw2也会将接口加入组224.0.0.5.也会发送hello包到组224.0.0.5。他的hello中的内容也是类似的。

当路由器收到洪泛过来的hello包后(DR将使用组播地址224.0.0.5泛洪扩散更新的数据包到DRothersDRothers使用组播地址224.0.0.6发送更新数据包),会将该路由器加入到自己的邻居列表中,同时会检测收到的hello包中的邻居列表是否已包含自己,(由于是第一次收到该hello包,自然是没有)。继续发送hello包,hello包的邻居列表里已包含刚才收到的路由器id。当再次收到hello包时,若检测到收到的包里的邻居列表含有自己时,则证明双方的通信是互通的。路由器的状态则由init状态转换为2-way状态。

    注意,由于这里是广播网络,在收发hello包的同时,会发送自己认为的DR、BDR,也会收到其他路由器认为的DR,BDR。在这一过程中,会利用hello包来进行网络中DR,BDR 的选举。DR选举的过程基本是根据路由器自身设置的优先级(优先级为0不参与选举),router-id等的大小来进行选举。BDR的选举过程也是类似。(是否参与DR,BDR的选举是都可以人为的手动设定的,确定参与DR的选举则不能参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值