OSPF协议

OSPF是为了满足越来越大的IP网络的需求而诞生的链路状态型协议,这次我就来介绍一下OSPF

1、OSPF协议

 1.1、OSPF协议的介绍

OSPF属于IGP内部网关路由协议,协议基于链路状态算法。

OSPF直接运行于IP协议之.上,使用IP协议号89。

 1.2、OSPF的特点

1、支持无类域间路由(CIDR)

2、支持区域划分

3、无路由环路

4、支持变长子网掩码VLSM

5、路由变化收敛速度快

6、使用IP组播收发协议数据(组播:224.0.0.5(DR)   224.0.0.6(DR/BDR))

7、支持多条等值路由

8、支持协议报文的认证(区域和虚拟链路)

1.3、OSPF的工作流程

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

路由表的形成过程:建立邻接关系→链路状态数据库→最短路径树→路由表

2、OSPF的区域

2.1、OSPF的区域类型

骨干区域Area 0

非骨干区域:标准区域、末梢区域、完全末梢区域、非纯末梢区域、完全非纯末梢区域

2.2、Router-id的选举规则

通过router-id指定

选取路由器loopback 口 数值最高的IP地址

没有LOOPBACK口 物理端口大的选IP地址最高的

2.3DR和BDR的选取规则
自动选举DR和BDR

网段上Rquter ID最大的路由器将被选举为DR,第二大的将被选举为BDR

手工选择DR和BDR

优先级范围是0~ 255,数值越大,优先级越高,默认为1

如果优先级相同,则需要比较Router ID

如果路由器的优先级被设置为0,它将不参与DR和DBR的选举

注意:OSPF DR/BDR选举的时间有限制,过了选举时间只能清除OSPF进程,重新选举。

OSPF数据包

2.4、OSPF的网络类型

OSPF网络类型:点对点网络、广播型访问网络 、NBMA网络访问网络 、点到多点网络

3、OSPF的邻居建立

3.1、邻居建立的条件

1、ROUTER ID不能相同;

2、HELLO时间必须一 致;

3、DEAD时间必须一致;

4、区域ID必须相同;

5、认证必须相同;

6、STUB标志位必须相同(直连路由器特殊区域要求一致) ;

7、三层MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE) ;

8、OSPF版本号不同 ;

9、当OSPF网络类型是MA时,要求掩码一定一致(两个邻居)。

 3.2、邻居建立的过程
OSPF用数据包来发现邻居并建立邻居关系

OSPF的包类型    描述
Hello包    用于发现和维持邻居关系

OSPF的包类型描述
Hello包用于发现和维持邻居关系
数据库描述(DD)包用于向邻居发送摘要信息以同步链路状态数据库,选举DR和BDR
链路状态请求(LSR)包在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新(LSU)包收到LSR后发送链路状态通告(LSA),一个LSA数据报可能包含几个LSA
链路状态确认(LSAck)包确认已经收到LSU,每个LSA需要被分别确认

 3.3、邻居建立时的状态

1、Down: 邻居状态机的初始状态,是指在过去的Dead- Interval时间内没有收到对方的Hel1o报文或OSPF没启动时。

1.1、 Attempt: 只适用于NBMA类型的接口,处于本状态时,定期向那些手工配置的邻居发送HELLO报文。

2、Init:本状态表示已经收到了邻居的HELLO报文,但是该报文中列出的邻居中没有包含我的RouterID(对方并没有收到我发的HELLO报文)。

3、2-Way: 本状态表示双方互相收到了对端发送的HELLO报文,建立了邻居关系。在广播和NBMA类型的网络中,两个接口状态是DROther的路由器之间将停留在此状态。其他情况状态机将继续转入高级状态。

4、ExStart:在此状态下,路由器和它的邻居之间通过互相交换报文(该报文并不包含实际的内容,只包含- -些标志位)来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。

5、Exchange: 路由器将本地的LSDB用DD报文来描述,并发给邻居。

6、Loading:路由器发送LSR报文向邻居请求对方的DD报文。

7、Full:在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即,本路由器和邻居建立了邻接(adjacency)状态。

4、OSPF协议消息中的报文

1、OSPF协议报文直接封装在IP报文中,IP报文头部中的协议字段值必须为89。
2、OSPF协议报文有5种类型,分别是Hello报文、DD报文*(Database Description Packet)、LSR报文(Link-state Request Packet)、LSU报文(Link-state Update Packet)和LSAck报文(Link-state Acknowledgement Packet)。

Hello报文中所携带的信息是指,路由器某一接口所发送的Hello报文携带的信息:
  (1)OSPF协议的版本号。
  (2)接口所属路由器的Router D。
  (3)接口所属区域的Area D。
  (4)接口的秘钥信息。
  (5)接口的认证类型,
  (6)接口IP地址的子网掩码。
  (7)接口的HelloInterval。
  (8)接口的RouterDeadInterval。
  (9)接口所连二层网络的DR和BDR。
DD报文用于描述自己的链路状态数据库(Link-state Database,LSDB),并进行数据库的同步
LDR报文用于请求相邻路由器LSDB中的一部分数据;
LSU报文的功能是相对端路由器发送多条LSA用于更新
LSAck报文是指路由器在接收到LSU报文后所发出的确认应答报文。

五、Router ID

Router ID 是OSPF协议区域中路由器的唯一标识,一台OSPF协议路由器的Router ID 一般有管理员手动配置或者自行选择。
自行选择的顺序:
  (1)路由器上创建了逻辑接口(如环回接口),则会选择路由器中逻辑接口中IPV4地址数值最大的作为Router ID(无论该接口是否参与了OSPF协议)。
  (2)没有逻辑接口,路由器则会选择所有活动物理接口的IPV4地址中数值最大的作为Router ID(无论该接口是否参与OSPF协议)。
一旦选定Router ID,只要OSPF协议进程没有重启,路由器的Router ID就不会变化,无论接口是否变化。

六、OSPF的网络类型

OSPF协议所支持的网络类型是指OSPF协议能够支持的二层网络类型,根据数据链路层协议类型可将网络分为下面4中类型。
  (1)广播(Broadcast)类型:通常以组播形式(224.0.0.5和224.0.0.6)发送协议报文。
  (2)非广播-多路访问(Non-Braadcast Multiple Access,NBMA)类型:OSPF协议默认的网络类型,通常以单播形式发送协议报文。
  (3)点到多点(Point-to-Multiple Point ,P2MP)类型:以组播形式(224.0.0.5)发送协议报文。
  (4)点到点(Point-to-Point,P2P)类型:当链路层协议是PPP、HDLC、LAPB时,OSPF默认网络类型是P2P,以组播形式(224.0.0.5)发送网络协议报文。

七、邻居关系与邻接关系

(1)邻居关系
在OSPF协议中,每台路由器的接口都会周期性向外发送Hello报文,相邻的两个路由器之间发送给对方的Hello报文完全一直,两个路由器就会建立“邻居”关系。
(2)邻接关系
在P2P或P2MP的二层网路类型中,两台互为“邻居”关系的路由器彼此同步LSDB成功完成后,就会建立“邻接”关系。


八、OSPF协议网络的指定路由器和备份指定路由器

含义
指定路由器(Designate Router, DR)和备份指定路由器(Backup Designate Router ,BDR)只是适用于广播网络或NBMA网络中,DR会与其他路由器(包括BDR)建立邻接关系,BDR也会与其他路由器之间建立邻接关系,其他路由器之间不会建立关系,互为邻接关系的路由器之间可以交互信息。
DR与BDR的选举规则
(1)路由器的优先级值(0~255)最大的路由器将会成为DR
(2)如果优先级相等,则Router ID 值最大的路由器将会成为DR
(3)BDR的选举规则完全一样,BDR的选举发生在DR角色之后,在一个网络中,DR与BDR不能是同一台路由器。
如果DR出现故障,BDR会替代DR,都故障则重新选举。

9、查看命令

1.设置router-id:
[R1]router id 192.168.20.1            ##设置全局的routerID
[R1]ospf 1 router-id 192.168.10.1    ##只在OSP1 进程中有效
2.设置接口优先级:
[R1]interface GigabitEthernet 0/0/0
[R1]ospf dr-priority 255                ##当为0时不参与DR选举,优先级越大优先
<R1>reset ospf process                 ##清除OSPF 进程
3.查看OSPF邻居
display ospf peer
4.查看DR/BDR、网络类型
display ospf interface G0/0/0
5.查看LSA
查看1类
display ospf lsdb  router
查看2类
display ospf lsdb network
查看3类
display ospf lsdb summary
查看4类LSA
display ospf lsdb asbr
查看5类LSA
display ospf lsdb ase
查看7类LSA
display ospf lsdb nssa
 路由重分发命令
OSPF:
ospf 1
import-route  rip 1 cost 0

rip:
rip 1
import-route ospf 1 cost  0

  1. 配置新的子网:我们需要为新子网10.0.0.0/24配置IP地址和子网掩码。假设我们将这个子网添加到R2上,我们可以使用以下命令:
R2(config)#interface GigabitEthernet 0/0
R2(config-if)#ip address 10.0.0.1 255.255.255.0

  1. 启用OSPF协议:现在我们需要在所有路由器上启用OSPF协议,并将其配置为同一个区域(例如区域0)。我们可以使用以下命令在R1上配置OSPF:
R1(config)#router ospf 1
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0

其中,1是OSPF的进程ID,192.168.1.0是本地网段的网络地址,0.0.0.255是网络的通配符掩码,area 0表示加入区域0。

我们还需要在其他三个路由器上重复相同的命令。

  1. 确定网络拓扑关系:OSPF需要知道从一个路由器到其他路由器的物理连接并计算最短路径。我们可以使用以下命令在R2上配置物理连接:
R2(config)#router ospf 1
R2(config-router)#network 10.0.0.0 0.0.0.255 area 0

这告诉R2它的IP地址所属的网段是10.0.0.0/24,并且这个网段属于区域0。同样,我们需要在所有其他路由器上配置相同的命令。

  1. 增加默认网关:最后,我们需要在主机上配置它的默认网关为10.0.0.1,以便让它能够发送到其他网络。我们可以使用以下命令在主机上配置默认网关:
Host(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1

这告诉主机将所有到其他网络的流量发送到10.0.0.1这个IP地址(也就是R2的IP地址),从而通过OSPF进行路由。

这些是OSPF的一些基本操作步骤。在实际部署中,可能还需要配置其他参数,如路由指标和路由策略等。


 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值