4、OSPF
4.1 RIP在大型网络中部署所面临的问题
-
逐跳收敛——收敛慢,故障恢复时间长——触发更新
-
传闻路由更新机制——缺少对全局网络拓扑的了解——路由器基于拓扑信息,独立计算路由
-
以“跳数”为度量——存在选择次优路径的风险——将链路带宽作为选路参考值
4.2 OSPF概述
OSPF基本属性
OSPF为区域内的链路状态路由协议,区域间的距离矢量路由协议 -
Open Shortest Path First 开放的最短路径优先协议
- 20世纪八十年代由IETF(互联网工程任务组)开发
- 核心算法SPF(dijkstra)(dj算法)
- 无类路由协议、链路状态协议、IGP
- IP协议号:89
- 支持触发更新、增量更新、周期更新1800s、3600s失效
- 协议优先级:10
- 组播更新地址:224.0.0.5(由运行ospf的所有路由器监听)、224.0.0.6(由DR、BDR监听)
- 具有无环路、收敛快、扩展性好、支持认证等优点
4.3 OSPF工作机制 - LSDB;Link State DateBase,链路状态数据库
- 路由信息传递(LSA,Link-State Advertisement,链路状态广播)
- 该接口的IP地址及掩码
- 该接口的带宽
- 该接口所连接的邻居
- 路由计算分离(不同协议的度量值没有可比性)
- 以“累计链路开销”作为选路参考值
4.3.1 工作过程
1)邻居建立
2)同步链路状态数据库
3)计算最优路由
4.3 OSPF术语
4.3.1 OSPF区域概念
OSPF区域划分的优势 - 减少链路状态数据库同步范围
- 缩小LSA泛洪范围和SPF算法频率
- 便于管理
4.3.2 OSPF路由器类型 - 区域内路由器IR(Internal Router):该类设备的所有接口都属于同一个OSPF区域
- 区域边界路由器ABR(Area Border Router):该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
- 骨干路由器(Backbone Router):该类设备至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部设备都是骨干路由器。
- 自治系统系统边界路由器ASBR(AS Boundary Router):与其他AS交换路由信息的设备称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。
4.3.3 Router-ID
1)手动指定最优
2)最大的活动的环回口地址
3)最大的活动的物理接口
4.3.4 DR/BDR - DR与BDR作用
- 减少邻接关系
- 降低OSPF协议流量
- 伪节点是一个虚拟设备节点,其功能需要某台路由器来承载
- DR与BDR选举
当有比当前DR优先级更高的路由器,DR的单点故障时,BDR仍成为新的DR - 选举规则:DR/BDR的选举是基于接口的DR优先级的值进行的,默认为1最大为255,如果优先级为0表示不参加选举
[R1-GigabitEthernet0/0/0]ospf dr-priority 10 - 接口的DR优先级越大越优先
- 接口的DR优先级相等时,Router ID越大越优先
4.3.5 网络类型
1.根据不同的应用场景所开发的
2.OSPF会自动将回环口的地址默认为主机地址(掩码由24位变成32位),此时需在回环口内修改其网络类型为广播类型,掩码才能变回24位 - 广播类型(Broadcast):当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中:通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址;以单播形式发送DD报文和LSR报文。
- 非广播多路访问NBMA类型:当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
- 点到多点P2MP类型:没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。
- 在该类型的网络中:
- 以组播形式(224.0.0.5)发送Hello报文。
- 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
- 点到点P2P类型:当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
4.3.6 OSPF接口开销cost - 某接口cost=参考带宽/实际带宽。
- 更改cost的两种方式:
- 直接在接口下配置;
- 修改参考带宽(所有路由器都需要修改,确保选路一致性)
- cost=参考带宽/实际带宽,默认参考带宽为100M
- 1M=1000k=1000000b,如一个G、E接口开销为1,E1接口开销为48,64kbit/s串口开销为1562.
- 可用undo ospf cost回复接口上运行OSPF所需开销的缺省值
4.3.7:层次划分模型
常规区域通信必需经过骨干区域的作用——OSPF为星型拓扑,防止环路
- 骨干区域:域间通信需经过骨干区域
- 常规区域:常规区域间不能直接互相交换数据包
- 透传区域:用于虚链路的连接
- 区域基于接口划分,每个区域都维护一个独立的LSDB。
4.4 OSPF报文
4.4.1 OSPF报头
4.4.2 OSPF 报文类型
-
Hello报文:用来发现和维持OSPF邻居关系,通过Keepalive机制,检测邻居运行状态
默认为10s发送一次,死亡时间为40s -
DD报文:Database Description数据库描述报文;描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。
-
包含LSA头部信息,包括LS Type、LS ID、Advertising Router 、LS Sequence Number、LS Checksum。
-
LSR报文:Link State Request链路状态请求报文;用于向对方请求所需的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
-
LSR中包含LS Type 、LS ID和Advertising Router 。
-
LSU报文:Link State Update链路状态更新报文;用于向对方发送其所需要的LSA
-
包含完整的LSA信息(唯一)
-
LSACK报文:Link State Acknowledgment链路状态回复报文;用来对收到的LSA进行确认。
-
LSAck中包含LSA头部信息,包括LS Type、LS ID、Advertising Router、LS Sequence Number、LS Checksum。
4.4.3 OSPF的可靠机制 -
显示确认机制:OSPF的连接建立过程
-
隐式确认机制:从路由器对主路由器的应答
4.4 OSPF邻居建立过程
4.4.1 影响邻居关系建立的条件
1)hello/dead(手动修改Dead时间时Hello时间不会更改)
2)特殊区域标签
3)认证类型与密钥
4)MTU(华为设备的MTU确认机制默认关闭)
5)区域ID
4.4.2 邻居关系建立过程
-
Down
-
表示没有在邻居失效时间间隔内收到来自邻居路由器的Hello包;OSPF没有运行
-
Init
-
路由器已经从邻居收到Hello报文,但自己并没有在邻居列表里,尚未建立双向通信关系。
-
2-Way
-
双向通信已经建立(邻居关系建立完成),但是没有要开始建立邻接关系。
4.4.3 邻接关系建立过程 -
ExStart
-
路由器开始向邻居发送DD报文,主从关系形成。(第一个DD包不包含LSA的描述信息)
-
Exchange
-
在这个状态下开始互相发送包含LSA描述信息的DD报文,用来描述LSDB内容。
-
Loading
-
开始相互发送LSR报文请求LSA.然后LSU通告明细LSA。
-
Full
-
收到回复LSACK报文,代表本地LSDB同步完成。
4.4.3 邻居与邻接的区别 -
邻居(Neighbor):OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现邻居。状态到达2-way即可称为建立了邻居关系。
-
邻接(Adjacency):只有当双方成功交换DD报文,并同步LSDB后,达到Full状态,才形成真正意义上的邻接关系。
-
只有当双方成功交换DD报文,并同步LSDB后,达到Full状态,才形成真正意义上的邻接关系。
-
运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前路由器之间首先需要建立邻接关系。
-
邻居与邻接关系:
-
链路两端的OSPF接口的网络类型必须一致,否则双方不可以建立起邻居关系广播—P2P时,双方仍可以正常的建立起邻居关系,但互相学不到路由信息。P2MP—P2P时,双方不能正常的建立起邻居关系。
手动建立邻居
ospf 1
peer 1.1.1.1
-
OSPF支持通过单播方式建立邻居关系。
-
对于不支持组播的网络可以通过手动配置实现邻居的发现与维护。
-
拓扑如下
4.5 LSA报文及类型
4.5.1 LSA头部
LSA是ospf链路状态信息的载体
- LS age:老化时间,无论在任何状态下该值都是递增状态。最大3600s;
- Options:各自LSA的选项
- LS type:LSA的类型
- Link State ID:链路状态ID值;用来标识一个网段;网段地址、Router-ID
- Advertising Router: 通告该LSA的路由器RID
- LS sequence number:代表该序列号越大越新;淘汰更旧的序列号
- LS checksum:校验该LSA的准确信
- Length:该LSA的总长度
4.5.2 一类LSA
Router-LSA(type1):每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。
-
传播范围:只在当前区域内传递
-
通告路由器:本路由器的RID
-
链路状态ID:本路由器的RID
-
包含的内容:本路由器直连的邻居,直连接口的信息
-
重要字段:Point-to-Point、TransNet、Virtual为拓扑信息;StubNet为路由信息
-
display ospf lsdb router self-orginate
4.5.3 二类LSA
Network-LSA(type2):由DR(Designated Router)产生,描述本网段的链路状态,在所属的区域内传播。用来补全type1LSA缺失的路由信息
因为DR和BDR仅在广播类型网络中存在,所以该LSA也仅在广播类型网络中存在。 -
传播范围:本区域内传递,不穿越ABR
-
通告路由器:DR的RID
-
链路状态ID:DR的接口的IP
-
包含内容:MA网中的路由器、本网的掩码信息、DR路由器本身的RID
-
display ospf lsdb network self-originate
4.5.4 OSPF区域结构以及防环设计
1、区域划分:缺省情况下,OSPF 定义为普通区域(标准区域和骨干区域);
2、骨干区域连接所有其他 OSPF 区域,用 Area0 表示;
3、标准区域间的通信需要经过骨干区域;
4、防环:OSPF 路由器能够根据 LSA 描绘出区域的完整拓扑及网段信息,每台路由器以自己为根,计算一颗无环的最短路径树,从而实现区域内路由无环路;
4.5.5 三类LSA
Network-summary-LSA(type3):由ABR(区域边界路由器)产生,描述区域内某个网段的路由,并通告给发布或接收此LSA的非Totally STUB或NSSA区域。
打包一类和二类LSA -
把区域内的一类和二类汇总成三类发送给骨干,骨干区域的三类将一类和二类汇总,同接收到的三类转发给其它区域;
-
区域间的路由信息在ABR上是双向传递的
-
传播范围:除本区域外的其他区域
-
通告路由器:ABR的RID,经过一个区域就更改一次
-
链路状态ID:网络号
-
包含的内容:本区域的路由信息,包括网络号和掩码
-
display ospf lsdb summary 192.168.1.0
4.5.6五类LSA
ASBR-Summary-LSA(type5):由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。
- 传播范围:整个OSPF区域
- 通告路由器:ASBR的RID
- 链路状态:网络号
- 包含内容:域外路由信息,一个LSA即一条路由信息、
- display ospf lsdb ase self-originate
4.5.7四类LSA
AS-External-LSA(type4):由ABR产生,描述到ASBR(自治系统边界路由器)的路由,通告给除ASBR所在区域的其他相关区域。
对五类LSA的补充
- 传播范围:除本区域外的其它区域
- 通告路由器:ABR的RID,经过一个区域改变一次
- 链路状态ID:ASBR的RID
- 包含内容:本区域的路由信息,包含网络号和掩码
- display ospf lsdb asbr self-originate
4.5.8 Forwarding address
重发布机制:
① 在交换机连接的同一网络环境下;
② RTA 与 RTB 开启了 OSPF 协议;
③ RTB 与 RTC 开启了 RIP 协议,但 RTC 没有开启 OSPF 协议;
④ RTB 学习到 RTC 的路由之后,产生的 5 类 LSA 中会包含一个 Forwarding Address 字段描述去往 RTC 的 IP 地址、掩码和下一跳地址;
- Forwarding Address作用:解决次优外部路由
4.6 特殊区域
- 特殊区域的作用
- 减小区域内部路由器的路由表规模,减少设备内存资源消耗提高路由效率。
- 部署特殊区域的前提条件
- 1、骨干区域不能部署为特殊区域
- 2、虚链接的透传区域(虚连接经过的区域)不能部署特殊区域
- 3、区域内所有路由器都要部署为特殊区域
4.6.1 stub区域
STUB区域:不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。在STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。
4.6.2完全stub区域
Totally STUB区域:不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。在Totally STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。
4.6.3 nssa区域
NSSA区域:NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。NSSA区域同时保留自治系统内的STUB区域的特征。该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。
4.6.4完全nssa区域
Totally NSSA区域:Totally NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。Totally NSSA区域同时保留自治系统内的Totally STUB Area区域的特征。该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。
4.6.5七类LSA
NSSA LSA(type7):由ASBR产生,代替五类LSA描述到AS外部的路由,仅在NSSA区域内传播。
- 传播范围:NSSA本区域
- 通告路由器:ASBR的RID
- 链路状态ID:网络号
- 包含内容:域外路由信息,一个LSA即一条路由信息
4.7 其它特性
4.7.1 路由聚合
OSPF无自动汇总,需手动
1)3类汇总
即区域间路由汇总 ospf 1 area 1 abr-summary 172.16.0.0 255.255.248.0
2)5类汇总
即外部路由汇总 ospf 1 asbr-summary 172.17.0.0 255.255.248.0
4.7.2 默认路由发布
OSPF默认路由种类 - LSA3自动下放;LAS 3的默认路由:由ABR自动产生的默认路由,由特定的区域设置触发而成。
- LSA5手动下放;LSA 5 的默认路由:ASBR能引入外部路由,ASBR同样也能产生默认路由,普通或骨干区域产生LSA5外部默认路由。
- NSSA区域的LSA7手动下放;LSA 7 的默认路由:而NSSA区域产生LSA7外部默认NSSA路由。
OSPF普通区域和骨干区域产生默认路由 - 没有always参数:ASBR的路由表中必须有激活的非OSPF(BGP除外)缺省路由时才生成缺省路由的LSA。
- 有always参数:无论ASBR是否有缺省路由都将在整个OSPF区域中通告缺省路由0.0.0.0,并且不再计算来自其他设备的缺省路由。
4.7.3 OSPF认证
OSPF认证
配置认证后,只有通过认证的OSPF路由器才能正常建立邻居关系,交互信息
ospf 1
area 0
authentication-mode md5 1 cipher abc
- 认证方式
当两种认证方式都存在时,优先使用接口认证方式 - 区域认证方式:整个区域所有路由器都得开启
- 接口认证方式
- 认证模式
- null:不认证
- simple:明文认证
- MD5
- HMAC-MD5
4.7.4 V-link
构建虚链接时建议开启认证 临时性的一种解决方案,不稳定有风险,当虚链接配置后会一直存在
解决不规范的OSPF区域设计
4.7.5
OSPF路由类型
- Intra Area :区域内路由。
- Inter Area: 区域间路由。
- 第一类外部路由(Type1 External): 这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。
- 第二类外部路由(Type2 External) :这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。该开销永远为1.