OSPF高级配置
一、路由重分发
1. 需要重分发的路由
- OSPF重分发RIP、静态路由、默认路由、直连路由
2. 基本概念
- 一个单一IP路由协议是管理网络中IP路由的首选方案
- 在大型企业中,可能在同一网内使用到多种路由协议,为了实现多种路由协议的协同工作,路由器可以使用路由重分发将其学习到的一种路由协议的路由通过另一种路由协议广播出去,这样网络的所有部分都可以连通了。为了实现重分发,路由器必须同时运行多种路由协议,这样每种路由协议才可以去路由表中的所有或部分其他协议的路由来进行广播
3. 针对于重分发到OSPF自治系统内路由的路径类型
- 类型1:E1,内部代价加上外部代价(cost)
- 类型2:E2,只考虑外部代价
4. 配置
-
OSPF重分发静态路由配置实例
router ospf 1 redistribute static metric 100 subnets metric-type 2
-
OSPF重分发默认路由配置实例
router ospf 1 default-information originate
-
OSPF重分发到RIP
redistribute rip metric 200 subnets
-
RIP重分发OSPF
redistribute ospf 1 metric 10
二、NSSA区域
1. 基本概念
- 非纯末梢区域:在此区域内肯定会有一个ASBR,需要在ASBR上配重分发
- OSPF总计的6种LSANSSA区域有以下几种:
- type1
- type2
- type3
- type4
- type7:N1、N2
- 对LSA的影响
- 类型7LSA在一个NSSA区域内携带外部信息
- 类型7LSA在NSSA的ABR上被转化为类型5LSA
- 不允许外部LSA
- 汇总LSA被引入
- NSSA类型
- N1
- N2
- 通过NSSA的ABR之后转换为E1、E2
三、虚链路
1. 概念
-
在两台ABR之间去建立一条虚拟链路,穿越一个非骨干区域
-
指一条通过一个非骨干区域连接到骨干区域的链路
-
通过一个非骨干区域连接一个分段的骨干区域(备份作用)
2. 虚链路穿越区域的要求
- 虚链路必须配置在两台ABR之间
- 传送不能是末梢区域
- 虚链路的稳定性取决于当前区域的稳定
- 虚链路还可以提供链路冗余
3. 配置
-
配置虚链路
area 1 virtual-link 40.0.0.2 area 1是要穿越的区域 40.0.0.2是对端的route ID 两端都需要配置虚链路
四、总体概述
1. OSPF
OSPF 是一种链路状态 (Link-State) 路由协议,被广泛应用于 IP 网络中。它是一个内部网关协议 (Interior Gateway Protocol, IGP),这意味着它用于在同一个自治系统 (Autonomous System, AS) 内部交换路由信息。
OSPF 的核心思想:
OSPF 的核心在于每个路由器都构建一个完整的网络拓扑图,然后利用这个拓扑图独立计算到达所有目的地的最短路径。这与距离矢量 (Distance-Vector) 协议(如 RIP)不同,距离矢量协议只知道下一跳和到达目的地的距离,而不知道完整的路径信息。
OSPF 的工作原理:
-
邻居发现 (Neighbor Discovery): OSPF 路由器通过发送 Hello 报文来发现直接相连的邻居。Hello 报文包含路由器 ID、区域 ID、Hello 和 Dead 定时器、优先级等信息。
-
建立邻接关系 (Forming Adjacencies): 路由器之间通过交换 Hello 报文,经历一系列状态(Down, Init, 2-Way, Exstart, Exchange, Loading, Full),最终建立完全邻接关系。在广播多路访问网络(如以太网)中,会选举 指定路由器 (DR) 和 备份指定路由器 (BDR) 来减少 LSA 泛洪。只有 DR 和 BDR 与所有其他路由器建立完全邻接关系。
-
链路状态通告 (Link-State Advertisements, LSAs):
建立邻接关系后,路由器会生成 LSA。LSA 描述了路由器本身的链路状态信息,例如:
- 它连接了哪些网络。
- 每个连接的接口的开销 (Cost)。
- 邻居路由器的状态。
- LSA 有多种类型(Type 1-7, 9-11),每种类型携带不同种类的信息,例如:
- Type 1 (Router LSA): 由区域内的每个路由器生成,描述了路由器的接口和其链路状态,在单个区域内泛洪。
- Type 2 (Network LSA): 由 DR 在多路访问网络中生成,描述了连接到该网络的所有路由器,在单个区域内泛洪。
- Type 3 (Summary LSA): 由区域边界路由器 (Area Border Router, ABR) 生成,用于向其他区域通告本区域的路由信息,在不同区域之间泛洪(通过 Area 0)。
- Type 4 (ASBR Summary LSA): 由 ABR 生成,用于通告自治系统边界路由器 (ASBR) 的位置,以便其他区域能够知道如何到达外部路由。
- Type 5 (External LSA): 由 ASBR 生成,用于通告从其他自治系统或路由协议中重分发进来的外部路由,在整个 OSPF 域内泛洪(除了 Stub 和 Totally Stubby 区域)。
- Type 7 (NSSA LSA): 在 Not So Stubby Area (NSSA) 中由 ASBR 生成,允许在 NSSA 中引入外部路由,并通过 ABR 转换为 Type 5 LSA 泛洪到其他区域。
-
链路状态数据库 (Link-State Database, LSDB): 所有路由器会收集收到的 LSA,并构建一个相同的 LSDB。LSDB 包含了整个区域的完整网络拓扑图。
-
SPF 算法计算 (SPF Algorithm Calculation): 每个路由器独立地使用 Dijkstra 最短路径优先 (SPF) 算法,以自己为根,基于 LSDB 计算到达所有目的地的最短路径树 (Shortest Path Tree, SPT)。
-
更新路由表 (Updating Routing Table): SPF 算法计算出的最佳路径会被安装到路由器的 IP 路由表中。
OSPF 的特点和优势:
-
无环路 (Loop-Free): 基于 SPF 算法,OSPF 保证了计算出的路径是无环路的。
-
快速收敛 (Fast Convergence): 当网络拓扑发生变化时(例如链路故障),OSPF 会快速生成新的 LSA 并泛洪,路由器重新运行 SPF 算法,从而实现快速收敛。
-
层次化设计 (Hierarchical Design):
OSPF 支持将一个自治系统划分为多个区域 (Area),包括一个骨干区域 (Area 0) 和其他非骨干区域。这种分层结构可以:
- 减少路由表的大小: 非骨干区域内部的详细拓扑信息不会泛洪到整个 AS。
- 减少 LSA 泛洪的范围: LSA 只在各自的区域内泛洪,减少了路由更新的开销。
- 提高路由的稳定性: 某个区域内的拓扑变化不会影响到其他区域的 SPF 计算。
-
支持 VLSM/CIDR: OSPF 支持变长子网掩码 (VLSM) 和无类别域间路由 (CIDR),有助于更有效地利用 IP 地址空间。
-
负载均衡 (Load Balancing): OSPF 支持等价路径负载均衡 (Equal-Cost Multi-Path, ECMP),当有多条到达同一目的地的路径具有相同的开销时,可以将流量分发到这些路径上。
-
基于开销的度量 (Cost-Based Metric): OSPF 使用 "开销" 作为度量值,默认情况下开销与链路带宽成反比(开销 = 参考带宽 / 接口带宽)。开销越低,路径越优。
2. 路由重分发
路由重分发是指在不同路由协议之间交换路由信息的过程。在一个复杂的网络环境中,可能同时运行多种路由协议(例如 OSPF、EIGRP、RIP、BGP 或静态路由)。为了使这些不同协议所学习到的路由能够相互感知并进行通信,就需要进行路由重分发。
为什么需要路由重分发?
- 异构网络集成: 当企业网络合并,或者不同部门使用不同的路由协议时,需要重分发来实现互联互通。
- 迁移: 从一个路由协议迁移到另一个协议时,重分发可以在过渡期保持网络连通性。
- 连接到外部网络: 将内部网络的路由信息通告给外部网络(例如通过 BGP),或者将外部网络的路由信息引入内部网络。
重分发的工作原理:
当一个路由器同时运行两个或更多路由协议时,它就成为了一个 自治系统边界路由器 (Autonomous System Boundary Router, ASBR)。ASBR 负责将一个路由协议学习到的路由信息转换并注入到另一个路由协议中。
重分发过程主要涉及以下几个关键点:
-
管理距离 (Administrative Distance, AD): 不同的路由协议对路由信息的“信任度”不同,这由管理距离来表示。管理距离越小,协议越值得信任。当路由器从多个协议学习到同一目的地路由时,会优先选择管理距离最小的协议。
- Connected: 0
- Static: 1
- EIGRP Summary: 5
- External BGP: 20
- Internal EIGRP: 90
- OSPF: 110
- IS-IS: 115
- RIP: 120
- External EIGRP: 170
- Internal BGP: 200
当路由从一个协议重分发到另一个协议时,它会带上源协议的管理距离。但当它被目标协议接收并安装时,它会带上目标协议的管理距离。
-
度量值 (Metric): 每个路由协议都有自己的度量值来衡量路径的“优劣”。当路由从一个协议重分发到另一个协议时,需要为这些外部路由分配一个适当的度量值,以便目标协议能够正确计算路径。
-
默认度量值: 如果不指定,路由器会使用协议的默认度量值或特定规则。例如,将 RIP 路由重分发到 OSPF 时,OSPF 默认的外部路由度量值通常为 20。
-
指定度量值: 通常建议手动指定度量值,以更好地控制路由选择。
-
度量类型 (Metric Type):
在 OSPF 中,重分发进来的外部路由有两种类型:
- E1 (External Type 1): 外部路由的开销 = 原始开销 + 内部 OSPF 开销。这意味着 OSPF 会将到达 ASBR 的开销加上从 ASBR 到外部网络的开销。这种类型通常用于当 ASBR 距离外部网络只有一个跳时。
- E2 (External Type 2): 外部路由的开销 = 原始开销。OSPF 不会将其内部开销添加到 E2 路由中,默认情况下 OSPF 会将所有重分发进来的路由视为 E2。这种类型通常用于当到达外部网络有多个跳,并且外部路由的开销已经是一个比较大的值时。E2 路由的优先级高于 E1 路由(当开销相同时)。
-
-
路由过滤 (Route Filtering): 在进行路由重分发时,通常需要使用路由图 (Route Map)、访问控制列表 (ACL) 或前缀列表 (Prefix List) 来过滤哪些路由可以被重分发,哪些不可以。这可以防止不必要的路由泛洪,避免路由环路,并提高网络的安全性。
重分发的潜在问题:
- 路由环路: 这是重分发中最常见的也是最危险的问题。如果配置不当,路由信息可能会在不同协议之间循环,导致网络不稳定。
- 次优路由: 不正确的度量值分配可能导致流量选择较长的路径。
- 路由泛洪: 重分发大量不必要的路由会增加路由器的 CPU 和内存负担,并消耗带宽。
- 黑洞路由: 如果某个网络只在一个协议中存在,但在重分发时没有正确引入到另一个协议,可能导致数据包被丢弃。