OSPF----开放式最短路径优先协议
1、RIP是基于跳数选路的----跳数小的优,不会考虑带宽问题,可能会导致选路不佳
2、RIP的占用资源过多---30S的周期更新,使得链路中充斥着大量的广播报文
3、仅支持小规模网络----RIP支持最大跳数为15
1、基本概念
- OSPF是一个标准的IGP协议(AS内部使用)
- OSPF的协议算法是链路状态型协议-font>—>传递拓扑
- OSPF版本
- OSPFv1、OSPFv2、OSPFv3
- OSPF是携带真实掩码的(无类别的路由协议)
- 优先级----10(华为)
- 开销值:参考带宽/实际带宽(华为默认的参考带宽100Mbps)
- OSPF是跨层封装协议----协议号为89
- OSPF协议特点
- OSPF传递的不是路由,是LSA(链路状态通告)
- OSPF的更新方式
- 触发更新
- 30min的周期链路状态刷新
- OSPF算法叫做SPF算法
- OSPF是一种比较消耗路由器资源的协议,并且也会消耗链路资源
- 更新方式
- 使用组播
- 224.0.0.5(所有OSPF路由器)
- 224.0.0.6(一个MA网络中的DR/BDR接收的信息地址)
2、OSPF区域化结构
- OSPF为了适应大中型网络环境,进行了结构化部署----区域划分
- 我们把只有一个区域的OSPF网络称为单区域OSPF网络
- 我们把只有多个区域的OSPF网络称为多区域OSPF网络
- 区域划分的特点
- 区域内部传递拓扑信息,区域间传递路由信息
- 区域划分的标准是基于路由器的接口的
- 区域的编号----帮助设备区分信息的不同来源、方便管理
- 32位二进制组成,也是点分十进制表现形式
- 区域编号为0的区域—>他被称为骨干区域(有且只有一个),其他编号的区域被称为非骨干区域
- 在单区域网络中,这个区域一定是骨干区域。
- 在多区域网络中,所有的非骨干区域必须和骨干区域直接相连。
- 区域边界路由器----ABR
- 同时属于多个区域,并且一个接口对应一个区域,且至少有一个接口是属于区域0的
- 区域间可以存在多个ABR,一个ABR也可以对应多个区域
- 自治系统边界路由器----ASBR
- 同时属于多个网络,例如某台路由器既属于OSPF网络,又属于RIP网络
- 为什么要区域划分
- 限制LSA的传播范围
- 减少LSA的数量
OSPF的工作过程:5种数据包、7种状态机、2种关系、3种接口角色、4种路由器角色与3张表
3、OSPF的五种数据包
- hello包
- 周期保活、发现、建立邻居关系
- 10s hello-time
- 死亡时间hold-time====4倍的hello包时间
- 如果在死亡时间内没有接收到对端邻居发送的hello报文,则认为邻居不存在
- Router-ID
- 全网唯一,标识路由器的身份
- 32位二进制组成,由点分十进制形式表示
- DBD包
- 数据库表述报文
- 内部包含了所有的拓扑的目录信息,本地数据库目录
- LSR包
- 链路状态请求报文
- 请求获取未知的链路信息
- LSU包
- 链路状态更新报文
- 携带真正的LSA信息的数据包
- LSAck包
- 链路状态确认报文
Lsa-链路状态,具体的一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带
4、OSPF的七个状态机
- down:关闭状态----一旦启动OSPF协议后,则发出Hello报文,进入init状态
- Init初始化:一旦接收到的hello包中,存在本地的Rid,进入下一个状态:
- 2way双向通讯:邻居关系建立的标志
条件匹配:匹配成功进入下一状态,匹配失败,则停留在邻居关系
- Exstart预启动:使用不携带目录信息的DBD包,进行主从关系的选举;RID大的为主,优先进入下一个状态,解决了目录共享时的无序
- Exchange准交换:使用携带目标信息的dbd包,共享本地数据库目录
- loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;使用lsr向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要lsack来进行确认
- Full 转发状态:邻接关系的建立的标志;意味着邻接间,数据库的同步(一致)
5、条件匹配(选举)
- 三种接口角色
- 指定路由器—DR
- 备份指定路由器----BDR
- 其他路由器—DROther
- OSPF成为邻接关系的条件—根据网络类型不同而不同
- MA网络(以太网)类型
- 多路访问–在一个网段中的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点 —以太网
- 点到点网络类型
- 在一个网段内只能存在两个节点 — 串线链路
- 点到点网络邻居关系直接成为邻接关系;
- MA网络中,将进行DR/BDR的选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系
- 角色之间的关系
- DR与BDR—邻接
- DR与DRother—邻接
- BDR与DRother—邻接
- DRother与DRother----邻居
- 选举规则
- 先比较该网段所有参选设备接口的优先级,越大越优;默认优先级为1;取值范围0-255,0标识不参选
- 若所有参选者优先级相同,比较参选设备的RID,数值大优
- 选举的范围
- 一个广播域,进行一次DR/BDR的选举
- 选举模式
- 非抢占性的
- 一旦选举成功,不会因为新加入的设备而重新选举
- 若需要重新选举,则需要重启OSPF进程
- reset ospf 1 process
- 干涉选举
- 1、DR优先级最大,BDR次大 – 切记OPSF的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程
- 2、DR优先级最大,BDR次大,其他路由器优先级为0,无需重启设备
- 修改接口优先级
- [r3-GigabitEthernet0/0/0]ospf dr-priority 0
- 当修改接口优先级为0时,则认为不参与选举
- 在一个MA网络中,可以没有BDR,但是一定要有DR
6、OSPF的工作过程
- OSPF协议启动后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送hello报文;hello报文中携带了本地的全网唯一的RID值;之后对端路由器B也将回复hello报文,该hello报文中若携带了对端A的RID值,则A与B建立邻居关系,并生成邻居表。
- 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留在邻居关系,仅使用hello报文保活;若条件匹配成功,则可以开始建立邻接关系。
- 邻接间共享DBD报文,将本地与邻接的DBD包进行对比,查找本地没有的LSA信息,之后使用LSR报文来询问,对端使用LSU报文来回复具体的LSA信息,之后本地使用LSAck报文进行显性确认,该过程完成后,生成数据库表(LSDB表)。
- 在之后,本地基于数据库表,启用SPF算法,生成有向图—>最短路径树—>计算本地到达所有未知网段的最短路径,然后将其加载到本地的路由表中。此时收敛完成。
- 最后,收敛完成后,邻居和邻接关系间均hello包每10s保活;每30min一次邻接关系间的周期数据库比对,保障一致;
7、结构突变
- 新增网络
- 直接使用更新包(LSU)告知邻居路由器
- 断开网段
- 直接使用更新包告知邻居路由器
- 无法沟通
- hello包10s发送一次,若40s时间未接收到对端发来的hello报文,即超出死亡时间
- 断开邻接关系,删除路由
8、基本配置
[r1]ospf 1 router-id 1.1.1.1 //启动OSPF进程1,并配置rid为1.1.1.1 如果不进行手工配置RID,最大环回IP地址>最大物理接口IP地址
[r1-ospf-1]area 0 //进入骨干区域
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 //宣告,使用反掩码的形式宣告; 反掩码:32位二进制,使用点分十进制表示,由连续的0和连续的1组成,0表示IP的对 应位不变,1表示IP对应位可变
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255
宣告 – 需要使用反掩码,来匹配宣告的IP地址范围:
1、激活接口 – 可以收发OPSF的信息
2、被选中接口的拓扑信息可以共享给邻接
3、区域划分
- OSPF邻居表
- [r1]display ospf peer //查看邻居表
- [r1]display ospf peer brief //查看邻居简表
- OSPF数据库表
- [r2]display ospf lsdb //查看数据库简表
- OSPF路由表
- [r1]display ip routing-table protocol ospf
9、OSPF扩展配置
- 修改参考带宽
- [r1-ospf-1]bandwidth-reference 1000
- 一台设备修改参考带宽后,所有设备均需要修改
- 缺省路由(默认路由)----一般在ABR上配置
- 非强制性下发
- [r3-ospf-1]default-route-advertise //路由器中必须有缺省路由存在
- 强制性下发
- [r3-ospf-1]default-route-advertise always
- 静默接口
- 只接接不发,一般在连接用户的接口配置
- [r3-ospf-1]silent-interface GigabitEthernet 0/0/1
- 认证
- 支持在邻居间的接口上配置认证秘钥
- 认证类型
- 不认证—0
- 明文认证-1
- 密文认证-2
- [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
- 双方都要配置,并且key ID保持一致
- 区域汇总:
- OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给b区域时进行汇总
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
R2为一台连接区域0和其他区域的ABR;以上操作将区域0学习到的拓扑计算所得到的路由,传递给其他区域时进行汇总,汇总网端1.1.0.0/22
- 加快收敛
- 邻居间计时器 10s hello time 40s dead time
- 邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配;但OSPF中邻居间的hello time 和dead time必须完全一致,否则无法建立邻居关系
- [r1-Gin]ospf timer hello 5