OSPF (传递拓扑信息)

OSPF(传递拓扑信息)

1,OSPF本身是链路状态型协议,所以,计算出的路径不会存在环路;并且使用带宽作为选路依据,所以,在选路的角度上优于RIP;

2,OSPF的计时器时间也短于RIP,所以,收敛速度会快于RIP;

3,因为OSPF协议传递的是LSA信息,所以,单个数据包的资源占用远大于RIP;但是,因为RIP存在30S一次的周期更新,而OSPF并没有如此高频率的周期更新,并且,OSPF协议存在许多针对资源占用的优化措施,所以,从整体的角度看,OSPF资源占用上应该小优于RIP。

OSPF --- 开放式最短路径优先协议

RIP存在3个版本

–– RIPV1;

––RIPV2 用于IPV4;

––RIPNG用于 IPV6;

OSPF也存在3个版本

 --- OSPFV1(在实验室阶段就夭折了);

––OSPFV2 用于IPV4;

––OSPFV3 用于 IPV6;

RIPV2和OSPFV2相同点:

1,OSPFV2和RIPV2一样,都是无类别的路由协议,都支持VLSM和CIDR;(ospf在区域之间传递路由信息)

2,OSPFV2和RIPV2一样,都是使用组播发送数据

RIPV2 --- 224.0.0.9

OSPFV2 --- 224.0.0.5和224.0.0.6

3,OSPFV2和RIPV2都支持等开销负载均衡

不同点:

RIP协议只能适用于小型网络环境中,而OSPF协议可以应用在中大型网络环境中

 

OSPF协议可以实现结构化部署 --- 划分区域

区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递路由信息。 --- 链路状态型协议的距离矢量特征。

如果一个OSPF网络只存在一个区域,这个网络称为单区域OSPF网络

如果一个OSPF网络存在多个区域,这样的网络称为多区域OSPF网络

区域边界路由器 --- ABR --- 同时属于多个区域,一个接口对应一个区域,必须有一个接口在区域0中,将区域内的拓扑信息收集计算成路由信息,之后进行传递。

区域之间可以存在多个ABR设备,一个ABR设备可以处于多个区域。

区域划分的要求:

1,区域之间必须存在ABR设备;

2,区域划分必须按照星型拓扑结构进行划分。 --- 星型拓扑的中间区域 --- 骨干区域。

 为了方便区分和标识不同的区域,所以,我们给每一个区域都定义一个区域ID --- areaid --- 32位二进制构成的 --- 还有两种表示方法 :

1,直接使用十进制进行表示;

2,使用点分十进制进行表示。 (骨干区域的区域ID定义为区域0)

1,OSPF的数据包

hello包 --- 周期性的发现,建立和保活邻居关系。(保活:定期发个包让人知道还活着)

hello包的发送周期 --- hello时间 --- 10S(以太网)/30S

死亡时间 --- dead time --- 4倍的hello时间(40s)

RID --- 区分和标识不同的路由器 --- 本质由32位二进制构成

特点:

 1,格式统一;

 2,全网唯一

RID的生成方式:

1,手工配置

2,自动生成 --- 首先,设备将优先选择环回接口的IP地址作为RID,如果存在多个环回接口,则将选择所有环回接口中IP地址最大的作为RID;如果没有配置环回接口,则将使用设备的物理接口的IP地址作为RID,如果物理接口存在多个,则选择IP地址最大的作为RID。

DBD包 --- 数据库描述报文

【数据库指的是--- LSDB --- 链路状态数据库 --- 传递LSA  (拓扑信息)】  DBD包相当于“菜单”

LSR包 --- 链路状态请求报文

作用--- 基于DBD包,请求未知的LSA信息。      相当于“点菜”

LSU包 --- 链路状态更新报文

作用 --- 真正携带LSA的数据包     相当于 “上菜”

LSACK包 --- 链路状态确认报文 --- 确认包

OSPF协议具有周期更新机制,每个30MIN发送一次。(保底的作用,他不一定需要,但为了防止意外还是得每隔一段时间就发送一次)

2,OSPF的状态机

99cc2d03a4a64262a953270e202c05d9.jpg

 【图中黄色部分为状态机,down  state相当于两个路由器还不认识的状态,接着A要认识B,发了一个hello包给一个组播(相当于一群人),Init state(初始化状态)此时心情很忐忑,之后B收到信息后给A回信,先自我介绍发了一个hello包,然后表示他已经认识A了,然后进入two-way state

Two - Way --- 双向通信状态 ---- 标志着邻居关系的建立。

之后需要条件匹配,条件匹配成功则可以进入到下一个状态,如果条件匹配失败。则将停留在邻居关系,则仅周期性的发送hello包进行保活。68177c323fb34f4190596dc38bcc18e9.jpg

 【接着又进入Exstart State,A给B发一个DBD包,表示A要进入下一个状态,然后B又给A发了一个DBD包表示他才要进入下一个状态,因为他有更高的ID,这就叫主从关系选举,之后就进入了exchange state,B发个包表示这里有摘要信息。】

 主从关系选举 --- 通过发送没有携带数据(摘要信息)的DBD包来进行主从关系选举,比较RID来进行选 举,RID大的为主,为主可以优先进入后面的状态。

之所以使用DBD包主要是为了和之前的邻居关系进行区分

863ac28e23e140f18c1eb9e99a2b1004.jpg

 【通过DBD包进行菜单信息的交换后进入loading state,这时A又发包表示他要看6.0整个网段, B收到后把信息发给他,A收到后并向B表示感谢。】

 FULL(最后一个状态) --- 标志着邻接关系的建立。 ---- 主要目的是为了和之前的邻居关系进行区分,邻居只能通过hello包进行保活,而邻接之间,可以交换LSA(拓扑)信息。

总结:down状态 --- 启动ospf之后,发出hello包进入下一个状态

init(初始化)状态 --- 收到对方的hello包中包含自己本地的RID,则进入到下一个状态

Two-way(双向通信) --- 标志着邻居关系的建立

(条件匹配)匹配成功,则进入到下一个状态;失败则停留在邻居状态,仅使用hello包进行周期保活

exstart(预启动)状态 --- 通过发送没有携带数据的DBD包来进行主从关系选举,比较RID来进行选举,RID大的为主,为主可以优先进入后面的状态

exchange(准交换)状态 --- 交换携带数据(摘要信息)的DBD包进行LSDB数据库目录共享

loading(加载)状态 --- 基于对端发送的DBD包,使用LSR/LSU/LSACK交换未知的LSA信息

FULL状态 --- 标志着邻接关系的建立

 

3,OSPF的工作过程

启动配置完成,ospf协议向本地所有运行协议的接口以组播的形式(224.0.0.5)发送

hello包:

hello包中携带自己本地RID,以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中 --- 邻居表;

邻居关系建立完成后,进行条件匹配。失败则停留在邻居关系,仅hello包进行保活。

匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举。

之后,使用携带数据的DBD包共享目录信息,之后,基本DBD包,通过LSR/LSU/LSACK获取未知的LSA信息。将所有的LSA信息保存本地的LSDB数据库 --- 数据库表;

最后,基于LSDB,使用SPF算法进行计算,得到未知网段的路由信息,将其加载到路由表。

收敛完成后,周期性的发送hello包进行保活,每30min一次周期更新。

结构突变:

1,突然新增一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认

2,突然断开一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认

3,无法联系 --- dead time --- 40s

4,OSPF的基本配置

1,启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1 --- 手工配置RID需要在进程启动时配置

[r1-ospf-1]

2,创建区域

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]

3,宣告

宣告的作用:

1,激活接口 --- 只有宣告的网段包含的接口会被激活,只有激活的接口可以收发OSPF的数据。

2,发布路由 --- 只有激活的接口所对应的直连网段的路由才能被发布

[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 --- 反掩码 --- 由连续的0和连续的1组成,0对应位不可变,1对应位可变。

[r1]display ospf peer --- 查看邻居表

[r1]display ospf peer brief --- 查看邻居关系简表

[r1]display ospf lsdb --- 查看数据库表

[r1]display ospf lsdb router 2.2.2.2 --- 展开一条LSA的方法

[r1]display ip routing-table protocol ospf --- 查看路由表

华为设备,OSPF协议的默认优先级为 -- 10

COST = 参考带宽 / 真实带宽 --- 华为设备默认的参考带宽为100Mbps

如果计算出来是一个小于1的小数,则直接按照1来算。如果是一个大于1的小数,只取整数部分。

[r1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽

条件匹配

DR --- 指定路由器 --- 和广播域内其他设备建立邻接关系

BDR --- 备份指定路由器 --- 和广播域内其他设备建立邻接关系,称为DR设备的备份。

一个广播域内部,至少需要4台设备才能看到邻居关系。

【DR和BDR其实是接口的概念】

条件匹配 --- 在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;故需要进行DR/BDR的选举,所有DRother之间,仅维持邻居关系即可。

DR/BDR的选举规则 

 1,先比较优先级,优先级最大的为DR,次大的为BDR;

优先级默认为1 --- 主要目的让人为修改

[r1-GigabitEthernet0/0/0]ospf dr-priority ?

 INTEGER<0-255> Router priority value

(注意:如果将一个接口的优先级设置为0,则代表这个接口将放弃DR/BDR的选举。)

2,如果优先级相同,则比较RID。RID大的路由器所对应的接口为DR,次大的为BDR。

DR/BDR的选举是非抢占模式的 ---- 一旦角色选举出来,则将无法抢占。 ---- 选举时间:40s(等同于死亡时间)

<r1>reset ospf 1 process --- 重启OSPF进程

OSPF的拓展配置

1,OSPF的手工认证

[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456

2,手工汇总 --- 区域汇总

在ABR设备上进行配置

[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0

3,沉默接口

配置了沉默接口的接口,将只接受不发送路由信息

[r2-ospf-1]silent-interface GigabitEthernet 0/0/2

4,加快收敛 --- 减少计时器的时间

[r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 修改hello时间的方法

[r2-GigabitEthernet0/0/0]ospf timer dead ?

 INTEGER<1-235926000> Second(s)

【注意:邻居双方的hello时间和死亡时间必须相同,否则将断开邻居关系】

5,缺省路由

[r3-ospf-1]default-route-advertise

注意:这个命令要求边界设备自身得具有缺省路由才行

[r3-ospf-1]default-route-advertise always --- 在没有缺省的情况下,强制下发缺省。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值