OSPF协议
- OSPF:open short path first---开放式最短路径优先协议
- RIP中的路由信息:携带两个参数---目标IP+掩码,cost值
- OSPF本身时链接状态型协议,所以计算出的路环不会出现环路,并且使用带宽作为选路依据,所以在选路的角度上优于RIP;
3.,OSPF的计时器时间也短于RIP,所以,收敛速度会快于RIP;
4.因为OSPF协议传递的是LSA信息,所以,单个数据包的资源占用远大于RIP;但是,因为 RIP存在30S一次的周期更新,而OSPF并没有如此高频率的周期更新,并且,OSPF协议存在许多针对资源占用的优化措施,所以,从整体的角度看,OSPF资源占用上应该小优于RIP。
- OSPF与RIP的相似
RIP存在3个版本 --- RIPV1,RIPV2 --- IPV4
RIPNG --- IPV6
OSPF也存在3个版本 --- OSPFV1(实验室阶段就夭折了),OSPFV2 --- IPV4
OSPFV3 --- IPV6
- OSPFV2与RIPV2的相同点与不同点:
相同点:1.OSPFV2和RIPV2一样,都是无类别的路由协议,都支持VLSM和CIDR;
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网络存在多个区域,这样的网络称为多区域OSPF网络
- OSPF的数据包:
- hello包:周期性的发现,建立和保活邻居关系
A:hello包的发送周期叫hello时间---10s(以太网)/30s
B:死亡时间---dead time---4倍的hello时间
RID(Route ID):用来区分和标识不同的路由器(其是由32位二进制构成):1.格式统一;2.全网唯一;(与IP相似)
RID的生成方法:
A.手工配置
B.自动生成:首先,设备将优先选择环回接口的IP地址作为RID,如果存在多个环回接口,则将选择所有环回接口中IP地址最大的作RID;如果没有配置环回接口,则将使用设备的物理接口的IP地址作为RID,如果物理接口存在多个,则选择IP地址最大的作为RID;
- DBD包:数据库描述报文---LSDB(可减少资源占用)
链路状态数据库---LSU信息(菜单)
- LSR包:链路状态请求报文---基于DBD包,请求未知的LSA信息(点 菜)(点菜)
- LSU包:链路状态更新报文---真正携带LSA数据包(上菜)
- LSACK包:链路状态确认报文---确认包(吃菜)
注意:OSPF协议具有周期更新机制,每隔30min发送一次;
- OSPF状态机:
1.
Two - Way --- 双向通信状态 ---- 标志着邻居关系的建立。
(条件匹配)条件匹配成功则可以进入到下一个状态,如果条件匹配失败。则将停留在邻居关系,则仅周期性的发送hello包进行保活
2.
主从关系选举 --- 通过发送没有携带数据的DBD包来进行主从 关 系选举,比较RID来进行选举,RID大的为主,为主可以优先进入后面的状态;
之所以使用DBD包主要是为了和之前的邻居关系进行区分。
3.
FULL --- 标志着邻接关系的建立。 ---- 主要目的是为了和之前的邻居关系进行区分,邻居只能通过hello包进行保活,而邻接之间,可以交换LSA信息;
七个步骤:
A.down状态 --- 启动ospf之后,发出hello包进入下一个状态
B.init(初始化)状态 --- 收到对方的hello包中包含自己本地的RID,则进入到下一个状态
C.Two-way(双向通信) --- 标志着邻居关系的建立
(条件匹配)匹配成功,则进入到下一个状态;失败则停留在邻居状态,仅使用hello包进行周期保活;
D.exstart(预启动)状态 --- 通过发送没有携带数据的DBD包来进行主从关系选举
比较RID来进行选举,RID大的为主,为主可以优先进入后面的状态
E.exchange(准交换)状态 --- 交换携带数据(摘要信息)的DBD包进行LSDB数据库目录共
享
F.loading(加载)状态 --- 基于对端发送的DBD包,使用LSR/LSU/LSACK交换未知的LSA信息
G.FULL状态 --- 标志着邻接关系的建立;
- OSPF的工作过程
1.启动配置完成,ospf协议向本地所有运行协议的接口以组播的形式(224.0.0.5)发送hello包;hello包中携带自己本地RID,以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中 --- 邻居表;
2.邻居关系建立完成后,进行条件匹配。失败则停留在邻居关系,仅hello包进行保活。
3.匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举之后,使用携带数据的DBD包共享目录信息,之后,基本DBD包,通过LSR/LSU/LSACK获取未知的LSA信息。将所有的LSA信息保存本地的LSDB数据库 --- 数据库表;
4.最后,基于LSDB,使用SPF算法进行计算,得到未知网段的路由信息,将其加载到路由表。
5. 收完成后,周期性的发送hello包进行保活,每30min一次周期更新。
八.结构突变
1,突然新增一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
2,突然断开一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
3,无法联系 --- dead time --- 4倍的hello时间
九.OSPF的基本配置
1.启动OSPF进程
[名]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,发布路由 --- 只有激活的接口所对应的直连网段的路由才能被发布
A.[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 --- 反掩码 --- 由连续的0和连续的1组成,0对应位不可变,1对应位可变---是对1.1.1.1这个接口的宣告
B.也可以对某个网段进行宣告
[名-ospf-1-area-0.0.0.0]networ+网段 0.0.0.255---是对这个网段里面的所有接口进行宣告
- OSPF的优化措施--让资源占用减少
- 区域划分
目的:区域内部传递拓扑信息,区域之间传递路由信息(链路型协议的距离矢量特征)
要求:a.区域之间必须存在ABR设备---可有多个
b.区域划分必须按照星型拓扑结构进行划分
星型拓扑中:其中间设备叫区域边界路由器--ABR---同时属于多个区域,一个接口对应一个区域将区域内的信息计算成路由信息,进行传递;其中间区域叫骨干区域;
为了方便区分和标识不同的区域,所以,我们给每一个区域都定义一个区域ID --- area id --- 32位二进制构成的 --- 两种表示方法 -- 1,直接使用十进制进行表示;2,使用点分十进制进行表示。 ---- 骨干区域的区域ID定义为区域0。
- DBD包---数据库描述报文---LSUB
- 主从关系选举---同时发送会导致资源占用量大,主从关系选举会避免这种情况的发生;
- 一些相应查看表的操作
[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=参考带宽/真实带宽---在华为中,默认的参考带宽值为100;
修改带宽值:
[r1-ospf-1]bandwidth-reference 1000
当然,如果计算出来是一个小于1的小数,则直接按照1来算。如果是一个大于1的小数,只取整数部分
- 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 --- 在没有缺省的情况下,强制下发缺省