- OSPF的工作原理
- 链路状态路由协议仅在网络拓扑发生变化时才生成路由更新,链路状态发生变化后,检测到发生变化的设备生产一个针对该链路的链路通告LSA,然后使用多播地址127.0.0.5将该LSA发送给该区域所有的邻接设备,其他设备收到该LSA后存储并转发该LSA给该区域的其他邻接设备。LSDB用于计算穿越网络的最佳路径,应用SPF算法建立SPF树,选择去往目的地的最佳路径并加入路由表。
- OSPF区域结构
- 单区域OSPF的缺点
- SPF算法过于频繁
- 路由表庞大
- 链路状态数据库LSDB庞大
- 多区域OSPF的优点
- SPF计算频率更低
- 路由表更小
- 降低了链路状态更新LSU开销
- 骨干区域
- 区域0,网络的核心
- 常规区域
- 常规区域又分为:标准区域、末节区域、绝对末节区域、次末节区域
- 有关区域路由器
- 内部路由器
所有接口都位于同一个区域的路由器,同一区域内所有路由器的LSDB都相同
- 骨干路由器
至少有一个接口与区域0相连
- 区域边界路由器ABR
连接多个区域的路由器,为其连接的每一个区域维持一个LSDB,ABR将区域0与非骨干区域相连,建议ABR连接不要超过三个区域
- 自治系统边界路由器ASBR
至少有一个接口与其他域相连,ASBR可以将外部路由重分发到OSPF域中,反之亦然。
- 内部路由器
- 单区域OSPF的缺点
- OSPF邻接关系
通过与邻接路由器交换hello分组来实现- 点到点串行链路:使用的封装类型通常是高级数据链路控制(HDLC)或点到点协议(PPP)
- 点到多点广播型链路:选举一个DR和BDR,其他路由器都与这两台路由器建立邻接关系,且只将LSA通告给他们,DR收到后将其转发给链路上的其他所有邻居
- OSPF度量值计算
cost值,通过计算去往目的地的每条链路的cost值的总和,比较哪条链路的总cost最小,并将作为最佳路径放入路由表中- 计算公式:cost=100/X Mbit/s 或 10^8/X bit/s
- 默认OSPF开销:56kbit/s的串行链路---1785 64kbit/s的串行链路---1562 1.544Mbit/s串行链路----64以太网----10 快速以太网----1
- OSPF分组
OSPF分组不使用传输控制协议TCP和用户数据报协议UDP,OSPF使用确认分组(5类OSPF分组)来实现自己的确认机制- OSPF分组(五种数据包)
- Hello分组
- 建立邻居关系和维持邻居关系
- Hellotime 10秒 holdtime 40秒
- 30秒 120秒
- 在eigrp中,如果修改了hellotime , holdtime不会自动变化
- 在OSPF中,修改了hellotime,holdtime将自动变化
- 如果hello时间不匹配,邻居关系无法建立
- 决定hello时间是由运行OSPF的接口的接口网络类型
- hello包携带的信息
- 发送者的路由ID
- 邻居路由ID
- 计时器(hello time和hold time)
- 接口网络类型
- 区域类型和特殊区域类型(stub.....)
- 发送接口IP所在的网络号(掩码)
- 数据库描述(DBD / DD报文)
- 数据库描述 LSA(链路状态通告)的摘要
- 链路状态请求(LSR)
- 链路状态更新(LSU)
- 1、链路状态ID
- 2、通告路由器
- 链路状态确认(LSACK)
- Hello分组
- OSPF邻接关系状态⭐️⭐️⭐️
- Down:没有检测到活动邻居
- Attempt: NBMA 网络中没有收到邻居最新的信息
- Init: 初始化状态,接口刚打开,ospf刚运行,开始发送hello报文(没有接收到邻居的hello)
- 2way / 双向: 路由器在收到的Hello分组中看到了自己的路由器ID
- Exstart预启动: 确定了主从关系,在多路访问环境(broadcast、NBMA)中,在2way状态中选举DR和BDR,选举成功了才能进入Exstart状态(30s)
- Exchange交换:在P2P、P2MP网络类型,(Exstart状态中选举)描述master和slave,发送DBD (LSDB摘要)
- Loading加载:交换LSR和LSU以填充LSDB
- Full完全邻接:邻居处于完全邻接状态
- LSA的扩散机制过程
当链路发生变化时,路由器通过扩散机制将信息传递给网络中的其他路由器,LSU提供了LSU的扩散机制- 1.路由器发现链路状态发生变化后,将一个LSU分组发送到224.0.0.6(DR与BDR),该LSU包含更新后的LSA条目,且LSA的序列号+1
- 2.DR收到LSU后,对其进行处理和确认,并使用多播地址224.0.0.5将该LSU扩散到网络中的其他路由器。收到LSU后,每台路由器都使用LSAck来响应DR。
- 3.连接到其他网络的路由器将LSU扩散到该网络。如果该网络是多路访问网络,则将LSU转发给DR,如果该网络是点到点网络,则将LSU转发给邻接路由器。随后DR以多播方式将该LSU转发给其他路由器
- 4.路由器收到变化后的LSA的LSU后,据此更新其LSDB,对更新后的数据库执行SPF算法,更新路由表。
- OSPF使用的两个多播地址
- 224.0.0.5表示链路上所有OSPF路由器
- 224.0.0.6表示链路上的DR和BDR
- OSPF分组(五种数据包)
- 配置和验证基本的OSPF
- 基本配置
- router ospf 1
- network x.x.x.x 0.0.0.0 area 0
- router-id x.x.x.x
- router ospf 1
- show命令
- show ip ospf interface
- sh run | s r o
- sh ip ospf neighbor
- sh ip route ospf
- sh ip protocols
- 基本配置
- OSPF网络类型
- OSPF接口网络类型
进入接口 ip ospf network point-to-mulitpoint/......- IETF标准
- 点到多点(P2MP)
- 1、基于224.0.0.5发送hello包,一个接口可以同时建立多个OSPF邻居关系,自动建立邻居关系
- 2、适用于星型拓扑结构
- 3、帧中继的二层映射必须支持伪广播参数(Frame-relay map ip A.B.C.D 305 broadcast)
- 非广播多路访问(NBMA)
- 1、连接的路由器超过两台但没有广播功能,所有的信息以单播形式发送,手动指定邻居,选举DR和BDR,如帧中继、ATM和X.25
- 2、适用于全互联或者部分互联拓扑结构
- 3、帧中继的二层映射可以不支持伪广播参数
- 点到多点(P2MP)
- 思科标准
- Broadcast:广播型网络(针对NBMA环境的补充)
- 1、适用于全互联或者是部分互联拓扑结构
- 2、基于224.0.0.5自动建立邻居关系
- 3、要求帧中继的二层映射必须支持伪广播参数
- 4、要求选举DR和BDR
- 点到多点非广播:针对P2MP环境的补充
- 1、适用于星型拓扑结构
- 2、帧中继的二层映射可以不支持伪广播参数
- 3、可以手动指定邻居关系
- 点到点P2P:
- 1、适用于任何网络拓扑结构
- 2、结合点到点子接口一起使用
- 3、将一对路由器连接起来的网络,如串行接口链路层封装协议PPP或HDLC
- 4、帧中继的二层映射必须支持伪广播参数
- 5、基于224.0.0.5自动发送hello包,建立邻居关系
- Broadcast:广播型网络(针对NBMA环境的补充)
- 使用接口网络类型的项目环境
- 1、以太网环境中:为了加快邻居的收敛,将唯一的一对邻居的接口设置为P2P,防止DR和BDR选举
- 2、DMVPN环境:动态多点VPN,基于tunnel,需要将HUB端设置为P2MP
- IETF标准
- DR与BDR
- DR与BDR选举规则
- 优先级高的为DR,次高的为BDR
- 优先级相同比较路由器ID,路由器ID最大的为DR,次之为BDR
- DR与BDR选举不抢占
- BDR接收所有的信息,但转发LSA和同步LSDB的任务由DR完成。仅当DR出现故障时BDR才执行DR的任务。
- 修改接口优先级 ip ospf priority X
- DR与BDR选举规则
- OSPF接口网络类型
- OSPF LSA⭐️⭐️⭐️
LSA是OSPF LSDB的基本元素,共11类- 📌1类LSA
- 名称:路由器LSA (Router-LSA)
- 作用:宣告自己网段信息
- 泛洪范围:本区域
- 通告者:运行了OSPF的路由器本身
- 查看命令:sh ip ospf database router
- 📌2类LSA
- 名称:网络LSA (network-LSA)
- 作用和条件:宣告多路访问网段信息和邻居信息,必须是多路访问环境
- 泛洪范围:本区域通告者:DR
- 查看命令:sh ip ospf database network
- 📌3类LSA
- 名称:汇总LSA (network summary)
- 作用:描述区域间的路由信息
- 泛洪范围:任意两个包含区域0的区域间泛洪
- 通告者:ABR
- 查看命令:sh ip ospf database summary
- 📌4类LSA
- 名称:汇总LSA(ASBR summary)
- 作用:4类LSA标识ASBR,并提供一条前往该ASBR的路由
- 泛洪范围:除ASBR所在的其他区域
- 描述内容:ASBR的RID,即告诉其他区域路由器ASBR在哪里
- 通告者:ABR
- 查看命令:sh ip ospf database asbr-summary
- 📌5类LSA
- 名称:外部LSA(AS external)
- 作用:描述前往OSPF自治系统外的网络的路由
- 泛洪范围:整个OSPF AS内
- 通告者:ASBR
- 查看命令:sh ip ospf database external
- 📌7类LSA
- 名称:NSSA LSA
- 作用:宣告NSSA区域外部路由信息,关于NSSA区域中重分布的外部路由的描述根据LSA类型7执行SPF算法,计算0 N1 O N2路由
- 泛洪范围:本NSSA区域泛洪
- 通告者:ASBR
- 查看命令:sh ip ospf database nssa-external
- 📌8类LSA
- 外部属性LSA,传递BGP的外部属性
- 不透明LSA,使用在城域网中,MPLS标签交换网络中
- 📌1类LSA
- LSDB和路由表
- 查看命令
- sh ip ospf database / dis ospf lsdb
- sh ip route ospf / dis ip route-table protocol ospf
- OSPF路由表
- 计算E1和E2路由的开销
- E1:对于 O E1外部路由,开销为外部开销加上分组经过的每条链路的内部开销。
- E2(默认):O E2路由的开销总是只包含外部开销
- 查看命令
- 配置和验证OSPF高级功能
- passive-interface命令(静默接口配置)
- 用于OSPF区域中的末节网络,如路由器与PC间不需要通过指定接口发送和接收OSPF路由选择信息
- 配置
- router ospf 1
- passive-interface e0/0/0(default) //default 全部开启 华为 silent-interface
- no passive-interface e0/0/0 //指定某一个接口关闭
- router ospf 1
- OSPF默认路由
- default-information originate always
- OSPF路由汇总
- 路由汇总的好处:可以解决路由表庞大以及减少不必要的LSA扩散
- OSPF路由汇总概念:每个区域都将生成1类和2类LSA,这些LSA被转换成3类LSA并传输到其他区域。通过路由汇总,ABR和ASBR可将多条路由合并成少量的通告。ABR汇总3类LSA,ASBR汇总5类LSA。
- 区域间路由汇总:area 1 range 172.16.96.0 255.255.224.0 将区域1中的网络汇总,并通告给区域0 // 进入OSPF area 1 abr-summary X.X.X.X X.X.X.X
- 外部路由汇总:summary-address x.x.x.x x.x.x.x // 进入OSPF asbr-summary X.X.X.X X.X.X.X
- OSPF虚链路
解决非骨干区域不存在ABR- 虚链路不能穿越多个区域,也不能穿越末节区域,而只能穿越标准的非骨干区域。如果使用虚链路穿越两个非骨干区域连接到骨干区域将需要两条虚链路。虚链路不能存在于Stub区域
- 配置命令:area X virtual-link router-id //需要连接的对端路由器ID sh ip ospf 可查看
- OSPF特殊区域
- 标准区域:默认的区域类型,接受链路更新、汇总路由和外部路由
- 骨干区域:区域0
- 📌末节区域(stub):不接受关于自治系统外部的路由信息,如来自非OSPF路由器的路由,不接收区域外部路由5类与4类lsa,将生成一条默认路由3类lsa指向ABR。该区域不能和虚链路共存,使用tunnel代替
- router ospf 1
- area 2 stub 末节区域中的每台路由器都必须配置,ABR自动将默认路由通告到末节区域,开销默认为1
- router ospf 1
- 📌完全末节区域(stub no-summary):
- 1、思科私有,过滤LSA类型3、4、5(简化链路状态数据库,简化SPF算法)
- 2、路由表中不存在OE1、OE2和O IA的路由
- 3、ABR自动生成默认路由,默认路由以LSA类型3的方式传递
- 4、是STUB区域的增强版,拥有Stub区域的其他特性
- 5、配置:首先将末节区域中的每台路由器都配置末节区域配置,只需在ABR上配置 area 2 stub no-summary 使成为绝对末节区域
- 📌NSSA区域:定义了一种特殊的LSA——📌7类LSA,NSSA具有末节区域的优点,不接受有关自治系统外部的路由信息,不接受4类和5类lsa,会通过3类lsa所表示的默认路由访问AS外部目的地。而NSSA可以包含ASBR违反了关于末节区域的规则
- area 2 nssa
- 注意nssa区域中不会生成一条三类的缺省路由,可以在nssa 后面加一条 default-information-originate
- 📌绝对末节NSSA(完全非纯末梢区域):不允许4类和5类lsa,同时也不允许3类lsa进入,只允许表示缺省路由的3类lsa进入。可以包含ASBR,但不接受外部路由和来自其他区域的汇总路由。
- 在ABR上 area 2 nssa no-summary
- passive-interface命令(静默接口配置)
- 配置和验证OSPF身份验证
OSPF同一区域内的每台设备都需要配置- 简单密码身份验证(明文身份认证)
- 接口配置命令:进入接口配置
- ip ospf authentication //启用简单的密码身份认证
- ip ospf authentication-key password //指定密码
- 接口配置命令:ip ospf authentication / area area-id authentication
- 虚链路的简单密码认证:
- router ospf 1
- area 0 authenticaton //整个区域0配置了简单密码认证
- area 1 virtual-link router-id authentication-key password //创建了一条将区域2连接到区域0的虚链路,穿越区域1,使用明文身份认证
- router ospf 1
- 接口配置命令:进入接口配置
- MD5身份验证
- ip ospf message-digest-key key-id md5 key //key-id 取值范围0~255
- ip ospf authentication [message-digest | null ] //指定身份认证类型
- area area-id authentication message-digest
- 华为配置配置OSPF的认证功能
- 简单密码身份验证(明文身份认证)
- 关闭日志信息:no logging console
OSPF理论汇总
最新推荐文章于 2025-04-12 12:38:00 发布