目录
ospf概念
OSPF:开放式最短路径优先协议(无类别链路状态IGP动态路由协议)
距离矢量协议:路由器会周期性泛洪自己的路由表,通过路由交互,共享路由
只清楚目的地方向和距离(下几跳)
链路状态协议:通告链路状态信息(共享拓扑)、
链路状态协议执行过程:
- 首先建立协议邻居关系
- 然后彼此交互LSA(链路状态通告)---双向的都要发送
- 每个路由器将接收到的LSA存入LSDB(链路状态数据库)中
- 路由器通过LSDB已知全网拓扑,由路由器的SPF算法计算出最优路径,存放在自己的路由表中----这个时候已经全网通
ospf特征:
- 基于组播更新(224.0.0.5 224.0.0.6)
- 支持等开销负载均衡
- 支持触发更新每30min进行一次周期更新
- 需要结构化部署(区域划分)类似于地址规划----其实可以想成划分成小部分不会过于卡顿
- 相同区域传递拓扑有,不同区域传递路由
区域划分规则(两者缺一不可)
1.星型结构
不能在单一看作一个核心设备向外扩散,而应该形成块状范围思维
在OSPF中,0区为骨干区域,大于0为非骨干区域,所有非骨干区域必须连接在骨干区域上
2.必须有ABR(域间路由器)
ABR同时工作在两个区域上,可以有多个域间路由器
Router-ID(RID)
1.含义:路由器唯一标识标识符,为了区分每台有OSPF协议的路由器
2.配置方法:手工配置或使用系统自动生成
3.定义RID值时,最好手工配置IP地址;否则会自动生成,优先配置环回的最大数值,如果没有环回,则自动配置为最大物理接口数值
cost值作为度量值
同rip区别:rip是使用跳数作为度量值
cost值=开销值=参考贷款/接口带宽-----参考带宽默认100M,cost值之和越小路径越好
缺点:若接口带宽大于参考带宽,则度量值为1---则会导致选路不佳,需人为修改参考带宽
ospf如何工作
- ospf的数据包类型
- ospf的状态机
- ospf的工作过程
- ospf的基础配置
- ospf的扩展配置
ospf的数据包类型
- HELLO包(10秒一次):用于发现邻居,关系建立及保活---用组播地址发送
- DBD(DD)包:数据库描述包,用于携带本地数据库目录
- LSR包:链路状态请求包,查看完对端的DBD包,基于本地位置查询LSA,去索要未知的LSA信息
- LSU包:链路状态更新包,携带各种LSA信息
- LSACK包:链路状态确认包,用于确认接收到对端的信息
ospf的状态机
用来形容每个时间段处于什么状态
- down状态:表示未激活状态-------未发送hello包前
- init状态:初始化状态,被激活------发送完/接收到hello包
- 2-way:双向通信,建立邻居关系-----已知对方名字且确认对方也知道我的名字
经过条件匹配成功则进入下一个状态机,失败则停留于2-way邻居状态
- Exstart状态:预启动状态------发送一个空DD包,会进行主从选举RID大为主则优先进入下一状态 空DD包里有RID和我要当主的信息
- Exchange状态:准交换状态-----发送有目录的DD数据包
- Loading状态:加载状态---查看完对端dd包,确认自己有哪些包,使用LSR来询问未知的,对端使用LSU包进行回复,本地使用LSACK回复
- Full状态:邻接关系建立
数据包大小会受到MTU值限制,默认最大不能超过1500字节
ospf工作过程
- 开启ospf路由器,以本地组播地址发送hello包,此时携带自己的RID值和已知所有邻居的信息
- 查看对端发来的hello包是否有自己的RID,如果有,则邻居关系已建立并生成邻居表
- 进行条件匹配,不匹配则停留2-way邻居关系,匹配成功进行下一阶段Exstart--Exchange--Loading(LSR,LRU,LSACK)---full
- 当都拥有LSA链路信息,则开始使用SPF算法,基于LSDB生成有向图并基于树形结构算出最优路径加载到路由表中,收敛完成
- 收敛完成后,hello保活即可,每30min进行一次周期更新(对比数据库目录,相同则hello包保活,不相同则重新收敛,即重来一遍Loading状态的工作流程)
结构突变
添加了新网段(直连新增网络设备),直接使用更新包告知邻接关系,需要ack确认
断开一个网段(直连断开网络设备),直接使用更新包告知邻接关系,也需要ack确认
无法沟通(hello包发不同通),hello time:10s,dead time:40s,时间到了则删除邻居信息
ospf实验1
拓扑图:
AR1-3基础配置
OSPF基础配置
[AR1]ospf 1 router-id 1.1.1.1 ---不手动配置RID,会自动生成
[AR1-ospf-1]area 0----进入0区,进行规划
若要使AR1都在0区,AR2的g 0/0/0接口和环回地址放在0区,其余在1区
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
解释这两条命令需要用到反掩码
反掩码:可以理解为能把数字用0进行上锁
1.1.1.1 0.0.0.0:他们是一一对应的关系,0代表锁定,表示只有0种变化,也叫精确宣告
12.1.1.0 0.0.0.255:也是一一对应的关系,0被锁死,255代表除了0以外还有255种变化
这里宣告的是一个网段,掩码为24的有2的8次方个子网ip,一共256种变化(可理解为子网数)
如何简单的求反掩码呢
用255.255.255.255-子网掩码即是反掩码
[AR2]ospf router-id 2.2.2.1
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 2.2.2.1 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]quit ----返回上一层
[AR2-ospf-1]area 1
[AR2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0
[AR3]ospf 1 router-id 3.3.3.1
[AR3-ospf-1]area 1
[AR3-ospf-1-area-0.0.0.1]network 23.1.1.2 0.0.0.0
[AR3-ospf-1-area-0.0.0.1]network 3.3.3.1 0.0.0.0
可以看到一个状态变化图,这就验证了我们上面所讨论的工作状态
状态机工作示例图
![](https://i-blog.csdnimg.cn/blog_migrate/82eff376618b19d0ea4114d26adec081.png)
查看ospf配置
可以用display this查看当前0/1区配置,或者使用display ip routing-table protocol ospf
可以看到ospf的优先级默认10,rip默认100,直连0,静态60
查询邻居相关命令
display ospf peer----查询邻居关系
display ospf brief ----查询邻居表
display ospf lsdb ---查询链路状态数据库
display ospf lsdb router IP地址----查看数据库中的内容
修改带宽,首先进入进程,再用命令(如修改则全网设备都需修改)
[AR1]ospf 1
[AR1-ospf-1]bandwidth-reference 1000
ospf实验2
拓扑图
实验要求:全网通,存在四个ospf区域
区域划分后拓扑图
AR1-4基础配置
配置ospf
这里以AR4和较复杂的AR2为例,其余同命令
[AR4]ospf 1 router-id 3.3.3.3
[AR4-ospf-1]area 0
[AR4-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[AR4-ospf-1-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area 3
[AR2-ospf-1-area-0.0.0.3]network 2.2.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.3]q
[AR2-ospf-1]area 1
[AR2-ospf-1-area-0.0.0.1]network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.1]q
[AR2-ospf-1]are 2
[AR2-ospf-1-area-0.0.0.2]network 24.1.1.1 0.0.0.0
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 23.1.1.1 0.0.0.0
可以查看AR2是已经配置好了
ospf扩展配置
- 从邻居关系建立为邻接关系的条件
- 邻居关系是只在2-way阶段不会进入下一阶段
- 只有邻接关系才能互发LSA
网络类型
1.点到点的网络 :在一个网段中,仅支持存在两个节点的(类似只存在两个可用主机)---可直接成为邻接关系
2.MA:多路访问---在一个网段内,存在的节点数量不限
DR/DBR/DRother
在MA网络中,若所有设备均是邻接关系,则会造成大量重复更新,所以要进行DR/BDR选举,所有非DR/DBR的设备被称为DRother(类似于成员),DRother之间维持邻居关系---禁止成员之间互相传递信息
DR:可以理解为是老大
BDR:用作DR的备份,是老二
DRother:可以看作是他们的朋友(朋友和朋友之间没有权利互通),只能都是邻居
选举规则
- 先比较参选接口的优先级:默认为1 范围0-255 越大越好 ospf dr-priority 修改参选接口优先级
- 若参选接口优先级相同,比较参选设备的RID 越大越好
ospf若不重启进程,则DR选举是非抢占性的,重启即可重新选举
在用户视图用命令:reset ospf ----即可重启进程
手工认证
在邻居间接口上定义安全密钥(在对端也要进行认证)
进入接口---ospf authentication-mode md5 1 cipher 123456(1在这为账号编号)
手工汇总
和以往所学不同之前是汇总网段,ospf是汇总区域
链路状态下的距离矢量特征指的就是ospf的区域划分