天天看点

ospf配置命令_思科设备 OSPF 的相关知识点

  • OSPF 基本配置命令
      • 进入 OSPF 进程配置模式:Router(config)#router ospf <进程号>
      • 在 OSPF 进程中宣告接口:Router(config-router)#network <接口 IP 地址> 0.0.0.0 area <区域号>
        • 0.0.0.0 为反掩码,用于匹配一部分接口,能够被最短反掩码匹配到的接口优先宣告。
      • 在接口配置模式中直接宣告接口(优先级高于进程宣告):Router(config-if)#ip ospf <进程号> area <区域号>
      • Show 命令
        • 查看 OSPF 配置:Router#show running-config | section ospf
        • 查看哪些接口被宣告进 OSPF 进程中:Router#show ip ospf interface brief
        • 查看 OSPF 邻居:Router#show ip ospf neighbor
        • 查看 OSPF 路由表:Router#show ip route ospf
        • 查看 LSDB 报头:Router#show ip ospf database
      • 重置 OSPF 进程: Router#clear ip ospf process
    • OSPF 运行于 IP 协议之上, 协议号 89
    • OSPF 的 ToS 字段为 IP 优先级 6
      • ToS 字段的前 3 bit 为 110。
    • OSPF 报文只支持 单播 组播 发送。
    • OSPF 是基于 链路状态 的路由协议,同一区域内的路由器之间不交互路由表(而是交互 LSA )。
    • OSPF 支持无限的跳数。
    • OSPF 既支持 触发更新 ,也支持 周期性更新 (默认每 30min 泛洪一次 LSA)。
    • OSPF 的 进程号 只具有 本地意义
    • 如果一个接口同时被多个进程宣告,那么只有 第一个 宣告它的进程有效。
    • OSPF 是一种 层次化 的路由协议
      • 它可将整个网络 基于接口 分为 众多区域 (不同的接口可宣告进不同区域)。
        • 一个区域可以看作是一个 AS 的子集
        • 小型网络设计多区域的意义不大。
        • 如果某个区域内的某台路由器某个宣告进 OSPF 的 接口不停地 Up/Down ,将会导致该区域内所有路由器的 LSDB 不停地变动 。在这种情况下,划分多区域可以减小由于接口不停地 Up/Down 造成的影响范围。
      • 在多区域 OSPF 网络中,必须指定一个编号为 0( Area 0 )的 骨干区域 (也叫 传输区域 )。
      • 同个区域 绝对不可能出现路由环路
        • 区域中的每台路由器都知道区域中其它所有路由器是怎么连接的。
      • 非骨干区域都必须和骨干区域有连接
        • 强制 形成星型拓扑 ,防止环路产生。
      • 由于 区域间无法传递拓扑信息 ,因此 只有区域或 AS 间才可进行路由汇总或聚合
      • 区域间的路由 使用 距离矢量 协议的算法来计算。
      • 非骨干区域的类型
        • 常规区域
          • Hello 报文中的 Flag 字段: E=1 允许 5 LSA 存在), N=0 (不是 NSSA 区域)。
        • Stub 区域 :末节区域
          • 不允许 ASBR 4、5 LSA )存在。
          • ABR 不会让 4、5 类 LSA 进入 Stub 区域。
          • Hello 报文中的 Flag 字段: E=0 不允许 5 LSA 存在 ), N=0 不是 NSSA 区域 )。
          • Stub 区域内的 ABR 会下放度量值为 1 默认路由 3 LSA )到该 Stub 区域内。
          • 区域内 所有路由器均要配置
          • 配置 Stub 区域 可减少 LSA 的数目及路由表条目 。适用于 没有多余选路需求 (要 访问区域外的网段只能通过 ABR )的区域。
          • Stub 区域中 不允许存在 Virtual Link
          • Area 不允许配置成 Stub 区域
          • 配置命令
          • Router(config-router)#area <区域号> stub
        • Totally Stub 区域 :完全末节区域
          • Stub 区域的基础上 不允许 3 LSA (ABR 生成默认路由对应的 LSA 除外)存在。
          • 在 Totally Stub 区域中, 只允许 一条 ABR 产生的默认路由对应的 3 LSA 存在。
          • 只需在 ABR 上配置 Stub 区域命令的后面加上 no-summary 就可以了。
        • NSSA (No-so-Stubby) 区域 :不那么末节区域
          • Hello 报文中的 Flag 字段: E=0 不允许 5 LSA 存在), N=1 NSSA 区域 )。
          • 在 Stub 区域的基础上 支持 ASBR
          • NSSA 区域内的 ABR 以及 ASBR 不会主动下放默认路由
          • ASBR 重分发进 OSPF 的路由条目以 7 LSA (特殊的 5 类 LSA)的方式发送。
          • 7 类 LSA 在扩散到其他区域之前必须 由该区域内路由器 ID 最高的 ABR 转换为 5 LSA ,且 转换者对其他区域来说才是 ASBR (前提是转换后的 5 类 LSA 不带FA)。
          • 在新版的 IOS 中,也可强制指定转换者。
          • 强制指定转换者的命令:Router(config-router)#area <区域号> nssa translate type7 always
          • 区域内 所有路由器均要配置
          • NSSA 区域中 不允许存在 Virtual Link
          • Area 不允许配置成 NSSA 区域
          • 如果 NSSA 区域中 存在伪 ABR ,而恰巧该 ABR 的路由器 ID NSSA 区域中最大的 ,则会导致 转换后的 5 LSA 不能发往 NSSA 区域外
          • 应尽量确保 NSSA 区域内只包含一台 ABR ,否则可能会出现 非对称路由 次优路径 环路
          • 非对称路由可能会出现的环境:非转换者 ABR 下放的默认路由的度量值比转换者 ABR 下放的默认路由的度量值小,这就导致了 NSSA 区域内主机访问区域外网络时去包走的是非转换者 ABR,而回包走的却是转换者 ABR(因为只有转换者 ABR 才能向 NSSA 区域外通告 5 类 LSA,这导致了 NSSA 区域外的主机访问 NSSA 区域内的网络只能走转换者 ABR)。
          • 配置命令
          • Router(config-router)#area <区域号> nssa [default-information-originate] [no-redistribution]
          • default-information-originate 表示 7 LSA 的方式向该区域内下放默认路由 (如果是 ASBR ,则路由表中 必须要有默认路由 才能生效)。
          • no-redistribution 表示不要将重分发进 OSPF 的路由条目下放到 NSSA 区域中。如果路由器在 NSSA 区域中既是 ABR 也是 ASBR,且还是 NSSA 区域的出口的话,可以添加这个关键字。
        • Totally NSSA 区域 :完全 NSSA 区域
          • 在 NSSA 区域的基础上 不允许 3 LSA (ABR 生成默认路由对应的 LSA 除外)存在。
          • 在 Totally NSSA 区域中, 只允许 一条 ABR 产生的默认路由对应的 3 LSA 存在。
          • 该区域内的 ASBR 不能是整网的出口 (ASBR 不能有默认路由)。
          • 因为该区域内 ABR 下放的默认路由 O IA 的优先级要比 ASBR 下放的默认路由 O N1/2 的优先级高
          • 比较少用。
          • 只需在 ABR 上配置 NSSA 区域命令的后面加上 no-summary 就可以了。
      • 路由器类型
        • 普通路由器
        • ABR 区域边界 路由器)
        • ASBR 自治系统边界 路由器)
        • 查看 ABR 和 ASBR 的命令:Router#show ip ospf border-routers
      • ABR 一定要 Area 0 挂靠 ,否则 不能产生 3 LSA
        • ABR :在 Area 0 没有 Full 邻居
          • 不遵循 3 类 LSA 防环原则。
          • 例如:一台路由器只有环回口宣告进了 Area 0。
        • ABR :在 Area 0 Full 邻居
          • 遵循 3 LSA 防环原则
      • ASBR 可以放在任意区域中(Stub 以及 Totally Stub 区域除外)。
      • Area 0 不允许过滤 LSA (必须包含 全路由 )。
    • 目前 OSPF 一般使用 iSPF 以及 PRC 算法计算同一区域内的路由。
      • 每台路由器都以自身为根,计算从自身去往每一个网络的路径,再结合 LSA 中的网络信息生成路由条目。
    • 运行 OSPF 的路由器 必须有一个路由器 ID
    • 如果不指定路由器 ID,OSPF 默认使用 环回口中最大的 IP 地址 作为路由器 ID。如果 没有设置环回口 则使用 接口中最大的 IP 地址 作为路由器 ID。
    • 如果在已经有 OSPF 邻居的情况下修改了路由器 ID,那么必须 重置 OSPF 进程 才能让设置生效。
    • 指定路由器 ID 的命令:Router(config-router)#router-id <路由器 ID>
    • OSPF 的 网络类型 (不同网络类型的 OSPF 的运行方式有所不同)
      • Loopback :环回
        • 环回口 默认的网络类型。
        • 不发送 Hello
        • 不建立邻居
        • 只能通告 /32 路由
          • 可能会 影响 MPLS 标签分发
        • 仅限环回口 使用。
      • Broadcast :广播
        • 以太网 默认的网络类型。
        • 10s 发送一次 Hello
        • 支持组播发送 OSPF 报文
        • 选举 DR/BDR
        • 所有节点逻辑直连
          • 通告路由条目的 下一跳为生成这条路由条目的路由器接口的 IP 地址
      • Non-Broadcast (MBMA):非广播
        • 帧中继 (含 多点子接口 )默认的网络类型。
        • 30s 发送一次 Hello
        • 不支持组播发送 OSPF 报文
        • 需要 手动指定 OSPF 邻居 (思科只需要单向指定)。
        • 选举 DR/BDR
          • 在帧中继环境中,必须 Hub 节点当 DR 。然后让 所有 Spoke 节点当 DROthers 就好了(当 BDR 没有任何意义,因为如果 Hub Down 了的话整个网络就都不可用了)。
        • 所有节点逻辑直连
          • 通告路由条目的 下一跳为生成这条路由条目的路由器接口的 IP 地址
      • Point-to-Point :点对点
        • PPP HDLC 帧中继点对点子接口 BRI 等默认的网络类型。
        • 10s 发送一次 Hello
        • 支持组播发送 OSPF 报文
        • 只能建立一个邻居
          • 如果用在 MA 网络中且邻居不止一个的话会造成邻居频繁 Up/Down。
        • 不选举 DR/BDR
      • Point-to-MultiPoint :点对多点
        • 无默认对应接口类型 (需要通过命令才能使用)。
        • 30s 发送一次 Hello
        • 支持组播发送 OSPF 报文
        • 不选举 DR/BDR
        • 邻居一旦建立完毕,会把 自身接口的 IP 地址以 /32 形式的路由 通告给对方。
        • 所有节点不逻辑直连
          • 通告路由条目的 下一跳为发出这条路由条目的路由器接口的 IP 地址
        • 帧中继的完美解决方案(不用在 Spoke 节点做额外的 DLCI 映射)。
      • Point-to-MultiPoint Non-Broadcast :点对多点非广播
        • 跟 Point-to-MultiPoint 基本相同,只是 不支持组播 ,需要手动指定邻居而已。
    • 如果帧中继中 Hub 节点用 Point-to-MultiPoint Spoke 节点用 Point-to-Point 的话,默认是无法建立邻居的(因为 Hello 周期不一致 )。
    • Point-to-Point 可以和 Broadcast 建邻居 ,但 无法传递路由 (因为 1 LSA 中链路的类型不一致 )。
    • 环回口只能使用 Loopback、Point-to-Point 网络类型
      • 使用 Point-to-Point 时可以通告 /32 路由。
    • 修改网络类型的命令:Router(config-if)#ip ospf network <网络类型>
    • OSPF 使用的 组播组地址
      • 224.0.0.5 所有 OSPF 路由器都监听
      • 224.0.0.6 MA 网络中的 DR、BDR 监听
    • OSPF 的 报文
      • Hello
        • 用于 邻居建立 邻接关系维护
        • 发送周期和网络类型有关
          • 邻居建立之后,如果在 4 Hello 周期 Dead 时间 内都没有收到回应则 Down 邻居
          • 强制指定 Hello 周期的命令:Router(config-if)#ip ospf hello-interval <秒数>
          • 设定 Hello 周期为最小值(50 毫秒)的命令:Router(config-if)#ip ospf dead-interval minimal hello-multiplier 20
          • 指定 Hello 周期的同时 Dead 时间也会被修改 (前提是 没有指定 Dead 时间 )。
          • 强制指定 Dead 时间的命令:Router(config-if)#ip ospf dead-interval <秒数>
        • 路由器之间如果 只交互过 Hello 报文 ,则 只能将邻接关系建立到 2-way 状态机
      • DBD (数据库描述)
        • 包含 LSA 报头 LSA 的名字 LSID )、 通告的路由器 Adv Router )、 校验和 序列号 )。
        • 包含 Flags 字段 Init More M/S )。
        • 2-way 邻接状态机之后 发送。
        • 支持 显式确认 隐式确认
      • LSR (链路状态请求)
        • 包含 LSA 三元组 LSA 的名字 LSID )、 通告的路由器 Adv Router )、 LSA 的类型 )。
      • LSU (链路状态更新)
        • 包含 完整 LSA
        • 一个 LSU 报文 中可包含 多个 LSA
      • LSAck (链路状态确认)
        • 针对 LSU 中的 LSA 进行确认
        • 包含 LSA 报头 LSA 的名字 LSID )、 通告的路由器 Adv Router )、 校验和 序列号 )。
    • 隐式确认与显式确认
      • 显式确认 :使用 独立、具有确认功能的其它类型报文 LSU LSAck )作确认。
        • LSR LSU 使用 显式确认 LSR 使用 LSU 作为确认, LSU 使用 LSAck 作为确认)。
      • 隐式确认 :使用 相同类型的回应报文 作确认。
        • 只用于 DBD 交互
          • 邻居路由器可使用 相同序列号的 DBD 既做确认又做回应
    • 隐式确认的 序列号谁说了算?
      • 需要在邻接状态机为 Exstart 时选举出 Master/Slave 路由器。
        • 路由器 ID 者做 Master
      • 序列号由 Master 说了算
    • OSPF 邻居的分类
      • Neighbor (邻居): 只交互过 Hello 报文 (状态机为 2-way )。
      • Adjacency (邻接): 交互过全部类型的 OSPF 报文、LSDB 已经同步完成 (状态机为 Full )。
    • DR (指定路由器)、 BDR (备份指定路由器)
      • DR、BDR 指的是 路由器的某些接口
      • 选举一般只在 某些网络类型的 MA 网络 中进行。
        • 用来解决 MA 网络中邻接关系过于复杂的问题
          • MA 网络中 每添加一台路由器 ,整网邻居数量将 呈几何倍数 增长。
        • 通过 网络类型 来决定 是否进行选举
      • 到达 2-way 状态机之后再进行选举。
      • 选举最多花费 4 Hello 周期
      • 不是 DR、BDR 的路由器称为 DROthers
      • DROthers 之间不需要交互 DBD。
      • DR/BDR 选举规则
        • 先比较优先级 优先级相同再比较路由器 ID 。优先级或路由器 ID 最高者当选 DR 次高者当选 BDR 其他路由器做 DROthers
          • 优先级为 的接口 只能做 DROthers ,即 没资格参选
          • 设置接口优先级的命令:Router(config-if)#ip ospf priority <优先级>
      • 如果 DR 挂了 BDR 将会 接替 DR 的角色 ,同时 选举出另一个 BDR
      • DR/BDR 正常情况下不能被抢占 ,如需抢占只能 重置 OSPF 进程
        • Hello 报文 中会包含 当前网络已认可的 DR、BDR
      • 需要选举 DR/BDR 的网络中 可以没有 BDR ,但 一定要有 DR
      • DR/BDR 的选举要求 接口地址在同一个子网段内
        • 如果一个 MA 网络中有 不同网段 的邻居,那么选举会 分网段 进行。
      • 所有路由器 需要 DR、BDR 建立 Full 邻居 DROthers 之间 只需要 建立到 2-way 邻居 即可。
      • 所有路由器只需要把 自身的 LSA 发送给 DR、BDR 目的 IP 224.0.0.6 ),由 DR 整理之后再统一通告 BDR 只会整理不会通告 给所有路由器 目的 IP 224.0.0.5 )。
    • OSPF 邻接状态机
      • Down
        • 刚刚在接口上启用 OSPF,还 没有收发过 OSPF 流量
      • Attempt(可选)
        • MBMA 网络 点到多点网络 手动指定邻居之后 尝试与邻居建立连接的过程
      • Init
        • 收到邻居的 Hello、但邻居没有收到我的 Hello 邻居发送的 Hello 报文中没有包含我的路由器 ID )。
      • 2-way
        • 邻居已经收到我的 Hello 邻居发送的 Hello 报文中已经包含我的路由器 ID )。
        • 2-way 之后开始选举 DR/BDR
        • 到达该状态机需要满足的条件
          • OSPF 版本号一致
          • 不能冲突的路由器 ID
          • 区域一致
          • Hello 周期、Dead 时间一致
          • E、N 位一致
          • 认证信息一致
          • 接口在同一子网中 Point-to-Point 网络类型 除外 )。
      • Exstart
        • 邻居双方交互它们的 第一个 DBD Flags 位中的 Init=1 , More=1 , M/S=1 ,用于 选举 Master 序列号为随机 )。
        • 选举出 Master 之后, Slave 将进行第一次隐式确认 Flags 位中的 Init=0 , More=1 , M/S=0 序列号为 Master 指定的序列号 )。
        • 包含链路的 MTU 信息
          • 在思科路由器上如果 链路两端的 MTU 不一致 ,会 卡在这个状态机
        • 这两个 DBD 均不包含 LSA 信息
      • Exchange
        • 交互 DBD (当两台路由器的 DBD 大小不一致时将使用显式确认 )。
      • Loading
        • 交互 LSR LSU
      • Full
        • 两台路由器的 LSDB 已经同步
    • OSPF 可以 在邻接关系建立的过程中生成路由条目
    • 被动接口
      • 将某个接口 设置为被动接口之后 ,该接口 不能发送 Hello 报文
        • 也就 没法建立邻居 没法收发路由条目
      • 设置某个接口为被动接口的命令:Router(config-router)#passive-interface <接口名>
    • OSPF 的 LSA
      • 1 路由器 LSA (常用)
        • 产生的路由器:所有路由器。
        • 扩散范围:该区域内所有路由器。
        • 主要包含信息:宣告进 OSPF 的接口的详细信息以及度量值。
          • 链路的形式来描述各个接口信息
          • 链路类型
          • Point-to-Point
          • 不用选 DR/BDR (例如 Point-to-Point 网络类型的接口)。
          • 配合 Stub 类型的链路才可生成路由条目
          • Link ID 邻居的路由器 ID
          • 包含的数据 该链路本地接口的 IP 地址
          • Transit
          • 需要选 DR/BDR (例如 Broadcast 网络类型的接口)。
          • 配合 2 LSA 才可生成路由条目
          • Link ID DR 连接该 MA 网络接口的 IP 地址
          • 包含的数据 该链路本地接口的 IP 地址
          • Stub
          • 连接 主机 的链路( 末节链路 )。
          • 配合 Point-to-Point 类型的链路可生成路由条目
          • Link ID 该链路本地接口的前缀
          • 包含的数据 该链路本地接口的掩码
          • Virtual
          • 虚链路 专用。
          • Link ID 虚链路对端路由器的路由器 ID
          • 包含的数据 去往对端路由器的本地始发地址
        • 作用:让路由器知道 该区域内的网络是如何分布的 ,并 画出该区域的拓扑图 (如果该路由器 存在需要选举 DR/BDR 的网络 ,那么 还需要 2 LSA 辅助 )。
        • 一些特征
          • LSID 通告路由器的 ID
          • Adv Router LSID 相同
          • Type 字段
          • 普通路由器
          • B ABR
          • E ASBR
          • 每台路由器 关于它所属的每个区域只会产生一条 1 LSA
          • 前缀抑制
          • 在 1 类 LSA 中只通告环回(类型)接口以及被动接口的信息。
          • 启用前缀抑制的命令:Router(config-router)#prefix-suppression
          • 如果不想通告被动接口的信息,也可在接口配置模式下执行命令:Router(config-if)#ip ospf prefix-suppression
        • 查看 1 类 LSA 的命令:Router#show ip ospf database router
      • 2 网络 LSA (常用)
        • 产生的路由器 MA 网络中的 DR
        • 扩散范围 该区域内所有路由器
        • 主要包含信息 MA 网络中所有路由器的 ID 及子网掩码
        • 作用:作为 一类 LSA 的补充
        • 一些特征
          • LSID DR 连接 MA 网络接口的 IP 地址
          • Adv Router DR 的路由器 ID
          • 网络中 有多少个 DR 就有多少条 2 LSA
        • 查看 2 类 LSA 的命令:Router#show ip ospf database network
      • 3 汇总 LSA (常用)
        • 产生的路由器 ABR
        • 扩散范围 整个 AS
        • 主要包含信息 区域中的路由条目 不包含拓扑信息 ,可 汇总/聚合 ,一个路由条目对应一个 LSA)。
          • 不含拓扑信息也能防环的原因:去往同一区域中的 ABR 的路径是无环的(因为能够得知拓扑信息),ABR 去往其他区域的路径也是无环的(因为 OSPF 强制各个区域连成星型拓扑)。把这两段链路连接在一起,只要保证拓扑是无环的,整条路径就是无环的。
        • 作用:在 区域间传递路由条目
        • 一些特征
          • LSID 区域间路由的前缀
          • Adv Router ABR 的路由器 ID
          • 当一条 3 类 LSA 跨越 ABR 时会修改 Adv Router 为当前被跨越 ABR 自身的路由器 ID (相应的 度量值也会被修改 )。
          • 防环原则
          • ABR 从非骨干区域收到 3 LSA 时,不会进行路由计算
          • 非骨干区域形成的 3 类 LSA 在传递给另一个非骨干区域时必须经过骨干区域中转。
          • 在 MPLS 中的防环机制
          • 当绑定到 VRF 的 OSPF 进程在收到邻居发送的三类 LSA 时不会计算路由。
          • 关闭该防环机制的命令:Router(config-router)#capability vrf-lite
        • 查看 3 类 LSA 的命令:Router#show ip ospf database summary
      • 4 汇总边界路由器 LSA (常用)
        • 产生的路由器 ASBR 所在区域内的 ABR
        • 扩散范围 除了 ASBR 所在区域外的其它区域
        • 主要包含信息 ASBR 路由器的 ID ABR 到达 ASBR 的度量值
        • 作用: 告诉其它区域内的路由器通过该 ABR 可到达 ASBR 及该 ABR 到达 ASBR 的度量值
        • 一些特征
          • LSID ASBR 所在区域内 ABR 的路由器 ID
          • Adv Router LSID 相同
          • 当一条 4 类 LSA 跨越 ABR 时会修改 Adv Router 为当前被跨越 ABR 自身的路由器 ID (相应的 度量值也会被修改 )。
        • 查看 4 类 LSA 的命令:Router#show ip ospf database asbr-summary
      • 5 AS 外部 LSA (常用)
        • 产生的路由器 ASBR
        • 扩散范围 整个 AS
        • 主要包含信息 重分发进 OSPF 的路由条目 不包含拓扑信息 ,可 汇总/聚合 ,一个路由条目对应一个 LSA)。
        • 作用:向 AS 内通告 重分发的路由条目
        • 一些特征
          • LSID 外部路由的前缀
          • Adv Router ASBR 的路由器 ID
          • 当一条 5 类 LSA 跨越 ABR Adv Router 不会被修改 需要 4 LSA Forward Address 辅助 才能计算路由)。
          • 如果路由器 只收到 5 LSA ,那么它只能加入到 LSDB 中但并 不能计算路由 (包含 Forward Address 的除外)。
          • 支持使用 tag 进行路由标记。
          • tag 的默认值为 0。
        • 查看 5 类 LSA 的命令:Router#show ip ospf database external
      • 6 类:组播 LSA
        • MOSPF 专用。
        • 仅通过 6 类 LSA 不能产生组播分发树。
      • 7 NSSA LSA (常用)
        • 产生的路由器 NSSA 区域中的 ASBR
        • 扩散范围 NSSA 区域内的所有路由器
        • 一些特征
          • 特殊的 5 LSA
          • 只存在于 NSSA 区域中
          • 扩散出 NSSA 区域时必须由 ABR 转换为 5 LSA
        • 查看 7 类 LSA 的命令:Router#show ip ospf database nssa-external
    • LSA 的 三元组 唯一标识一个 LSA ):LSA 的名字( LSID )、通告的路由器( Adv Router )、 LSA 的类型
    • 1、2 类 LSA 包含拓扑信息。
      • 包含 路由器 ID 运行 OSPF 的接口及网络 接口连接了哪些邻居 接口的地址 等。
    • LSA 存放在路由器的 LSDB (俗称 拓扑表 )中。
    • OSPF 收敛完成 的标志: 每台路由器 同一区域 内) LSDB 都一致
      • 只有路由器在 相同区域 中,LSDB 才能保持一致。
    • LSA 有 老化计时器 ,默认为 60min 正向计时 。计时器 超时之后 LSA 将自动被删除
    • LSA 可 原封不动地发送多跳 扩散泛洪传递 )。
      • 仅限 同一区域
      • 距离矢量协议中 的路由条目 每传递一跳都会改变
    • LSA 的 防环机制
      • 当一台路由器收到 LSA 之后,若 LSDB 中没有 ,则 接收并回复 LSAck ,然后 泛洪给其它邻居
      • LSDB 中有 ,则 比较 LSA 的新旧程度
        • 先比序列号,大的新;再比老化计时器,小的新,相差小于 15min 视为一致;最后比校验和,大的新)。
      • 本地的 LSA 比接收到的 LSA ,则 接收并回复 LSAck ,然后 泛洪给其它邻居
      • 本地的 LSA 与接收到的 LSA 新旧程度相同 ,则 丢弃收到的 LSA
      • 本地的 LSA 比接收到的 LSA ,则 丢弃收到的 LSA ,然后 反向通告本地的 LSA
    • LSA 的 序列号
      • 线性 空间: 0x80000001 (负数) ~0x7FFFFFFF (正数)
      • 新生成一个 LSA 序列号 +1
      • 当 LSA 的 序列号达到最大值 时, 新的 LSA 的序列号将会被重置 。这就导致了 新的 LSA 的序列号比旧的 LSA ,邻居不接收反而会 反向通告旧的 LSA 。这时就需要等到 最大序列号的LSA 的老化计时器超时 之后才能恢复正常。
        • 解决方案:当 LSA 的序列号 接近最大值时 ,LSA 的 老化计时器将会缩短 ,以便及时重置全部 LSA 的序列号。
    • LSDB 过载保护
      • 思科专有。
      • 可限制接收 LSA 的数目,超过之后自动 Down 邻居。当 Down 邻居超过一定次数后,不再自动建立邻居。
      • 可防止低性能路由器在 OSPF 上消耗过多资源。
        • 路由器自身产生的 LSA 不耗费资源。
      • 基本配置命令
        • Router(config-router)#max-lsa <最大 LSA 数目>
    • OSPF 度量值
      • 度量值 = 参考带宽 (bps) / 接口带宽 (bps)
        • 默认参考带宽为 100,000,000 bps 100 Mbps
      • 控制层面路由流向的所有入接口 的带宽。
        • 修改接口的带宽 不会影响 从该接口 发出路由条目的带宽
      • 整条链路的度量值 等于 每条链路的度量值之和 分段 计算)。
      • DR 去往 同一网段中其他路由器 的度量值为 。
      • 修改参考带宽的命令
        • Router(config-router)#auto-cost reference-bandwidth <带宽值(Mbps)>
          • 参考带宽不一致不会影响邻居的建立。
      • 修改接口带宽的命令
        • Router(config-if)#bandwidth <带宽值(Kbps)>
      • 直接修改接口度量值的命令
        • Router(config-if)#ip ospf cost <度量值>
    • SPF 矢量图
      • 包含元素
        • 树干 / 树枝 :基于 1 (Point-to-Point、Transit、Virtual、Stub 链路) 、2 LSA 形成。
        • 树叶 :基于 3、4、5、7 LSA 形成。
      • 基本元素画法
ospf配置命令_思科设备 OSPF 的相关知识点
ospf配置命令_思科设备 OSPF 的相关知识点
    • SPF 矢量图画法原则
      • 先画 Point-to-Point、Transit、Virtual 链路,再画 Stub 链路,最后挂上相应的路由条目。
      • Point-to-Point、Transit、Virtual 链路先画度量值小的那节。
      • 每台路由器 只会画单向路径
      • 3、5 类 LSA 产生的路由条目挂在本区域的 ABR 上。
    • OSPF 的 路由类型
      • O 区域内路由 (通过 1、2 LSA 获取)。
      • O IA 区域间路由 (通过 3 LSA 获取)。
      • O E1 重分发进 OSPF 的路由 (通过 4、5 LSA 获取),且 度量值在路由条目传递过程中会累加
        • 如果同时收到多条相同目的地的 O E1 路由,直接 比较度量值 ,谁小谁加表。
        • 如果 既关注内部开销 又关注外部开销 ,那么在重分发时可以使用这类路由。
      • O E2 重分发进 OSPF 的路由 (通过 4、5 LSA 获取),且 度量值在路由条目传递过程中保持不变
        • 如果同时收到多条相同目的地的 O E2 路由, 先比较外部度量值 Seed Metric ), 再比较内部度量值 (本地 去往 ASBR 的度量值 )。谁小谁加表。
        • 如果 只关注外部开销 ,那么在重分发时可以使用这类路由。
      • O N1 NSSA 区域中重分发进 OSPF 的路由 (通过 7 LSA 获取)。其他特性 同 O E1
      • O N2 NSSA 区域中重分发进 OSPF 的路由 (通过 7 LSA 获取)。其他特性 同 O E2
    • 各路由类型的优先级: O > O IA > O E1 = O N1 > O E2 = O N2
    • OSPF 默认所有类型的路由 管理距离 均为 110
      • 修改 OSPF 管理距离的命令
        • Router(config-router)#distance ospf inter-area <区域间路由管理距离> intra-area <区域内路由管理距离> external <外部路由管理距离>
    • OSPF 支持修改 某条内部或外部路由 的管理距离,也支持修改 由某台路由器产生 的所有路由条目的管理距离。
    • OSPF 路由 重分发
      • 重分发进 OSPF 的路由(包含通告的默认路由)可设置一个 默认度量值 Seed Metric )。
      • BGP 重分发进 OSPF 的 Seed Metric 为 1 其它路由协议 20
      • 设定 Seed Metric 的命令
        • Router(config-router)#area <区域号> default-cost <度量值>
      • 默认路由 无法重分发 进 OSPF。
      • 重分发命令
        • 标准重分发:Router(config-router)#redistribute <路由协议> [路由协议的参数] [metric-type 1|2] [subnets] [nssa-only] [metric <度量值>]
          • metric-type 用于指定度量值的计算方式(见上面的 O E1、O E2 路由类型)。
          • subnets 用于开启子网路由宣告(OSPF 默认 只重分发主类路由 )。
          • nssa-only 用于 NSSA 区域的 ABR 上,只把重分发的路由下放到 NSSA 区域中。
          • metric 用于指定该路由条目的 Seed Metric。
        • 5 LSA 通告路由器为默认网关:Router(config-router)#default-information originate [always]
          • 后面加 always 可以在路由器 没有配置默认网关 的情况下通告。但需要注意的是,加了 always 之后路由器 将不会把别人通告 (从 OSPF) 的默认路由加入到路由表 中。
          • 也可使用 route-map 工具为通告的默认路由添加某些参数。
      • OSPF 重分发进其它路由协议 默认 不会重分发外部路由 。如果需要重分发外部路由的话可以在重分发命令后面加上 match internal external。
    • Forward Address FA
      • 5、7 LSA 特有的字段。
      • 用来 强行指定外部路由下一跳的方向 ,可 防止非对称路由 次优路径 路由环路
      • 5 LSA 中包含 FA 不用 4 LSA 就可计算路由。
      • 5 LSA FA 重分发进 OSPF 的路由条目本身 下一跳地址
      • 7 LSA 一定有 FA
      • 5 LSA 需要满足以下条件才能产生 FA。
        • ASBR 宣告重分发进 OSPF 的路由条目的下一跳接口进入 OSPF ,且该接口 不能是被动接口
        • ASBR 对于该重分发进 OSPF 的路由条目的下一跳接口不能是 Point-to-Point、Point-to-MultiPoint 类型
      • 7 LSA FA NSSA 中的 ASBR 的最大环回口地址 没有环回口 地址则为 最大接口地址 )。
        • 7 LSA 转换为 5 LSA 之后, FA 默认保持不变
      • 7 类 LSA 转 5 类 LSA 时不保留 FA 的命令(只能在转换者 ABR 上执行)
        • Router(config-router)#area <区域号> nssa translate type7 suppress-fa
      • 7 类 LSA 转 5 类 LSA 时如果 不保留 FA ,那么当 7 类 LSA 所对应的路由条目是 O N1 类型的话,转换后的 O E1 类型的路由条目 NSSA 区域内的那段内部度量值 将设为 。
      • FA 必须通过 OSPF 路由可达 1、2、3 LSA ),否则该外部路由将只会被加入 LSDB。
        • 去往 FA 的 静态路由可以覆盖 OSPF 路由 ,这会导致 FA 不是通过 OSPF 可达的。
    • Virtual Link 是在 一个区域内 虚拟点到点 链路。
    • Virtual Link 的用途
      • 分离的 Area 0 相连接 (例如 Area 0 <--> Area 1 <--> Area 0)
      • 远离 Area 0 的区域连接 (例如 Area 0 <--> Area 1 <--> Area 2)
      • 没有 Area 0 的区域连接 (只是 ABR 的环回口宣告进 Area 0(伪 ABR),例如 Area 1 <--> Area 2 <--> Area 3)
    • 只有在 相同区域 内的两台路由器才能使用 Virtual Link。
    • Virtual Link 会造成 OSPF 的星型拓扑被破坏 大大增加出现环路的可能性 。因此 不应该长时间使用
    • Virtual Link 做 区域间汇总 可能会出现 环路
    • 通过 Virtual Link 传递的路由条目的出接口 去往 Virtual Link 对端地址的树形结构出接口 物理接口 )。
    • 思科在 Virtual Link 上面默认 不会发送 Hello
      • 该特性称为 Hello 抑制
    • 思科通过 Virtual Link 获取的 LSA 永不过期 (不用定时泛洪)。
      • 该特性称为 DNA
      • 该特性可以减少 LSA 泛洪的数量。
    • 配置命令
      • Router(config-router)#area <区域号> virtual-link <目的路由器 ID>
        • <目的路由器 ID> 需要两台路由器 互指
    • 查看 Virtual Link 状态的命令
      • Router#show ip ospf virtual-links
    • OSPF 路由 汇总/聚合
      • 区域间 路由汇总/聚合
        • 做完汇总之后,路由器会先 抑制所有明细路由 ,再 产生汇总路由发送给其他区域
        • 如果在汇总命令后面加上了 not-advertise 关键字,则既抑制明细路由,又不发送汇总路由(等于做了路由过滤)。
        • 使用 filter-list 工具调用前缀列表可进行区域间的路由过滤。
        • 汇总路由的度量值 所有明细路由的最小度量值
        • 配置命令
          • Router(config-router)#area <区域号> range <汇总网段> <子网掩码>
      • 外部 路由汇总/聚合
        • ASBR 进行。
        • 配置命令
          • Router(config-router)#summary-address <汇总网段> <子网掩码>
        • 如果在汇总命令后面加上了 not-advertise 关键字,则既抑制明细路由,又不发送汇总路由(等于做了路由过滤)。
    • OSPF 认证级别
      • 0 级: 不认证
      • 1 级: 明文认证
      • 2 级: HMAC 密文认证
        • HMAC = MD5(报文 + 密码)
    • OSPF 认证范围
      • 接口级认证
        • 先设定认证密码,再设定认证方式。
        • 配置命令
          • 设定密文认证密码:Router(config-if)#ip ospf message-digest-key <密码 ID> md5 <密码>
          • 设定明文认证密码:Router(config-if)#ip ospf authentication-key <密码>
          • 设定密文认证方式:Router(config-if)#ip ospf authentication message-digest
          • 设定明文认证方式:Router(config-if)#ip ospf authentication
          • 密文认证邻居两边的 <密码 ID> 和 <密码> 必须 一致
      • 区域级认证 (只支持 HMAC 密文认证)
        • 依旧要在 每个接口上设置认证密码
        • 配置命令
          • Router(config-router)#area <区域号> authentication message-digest
      • Virtual Link 认证
        • 配置命令
          • 密文认证:Router(config-router)#area <区域号> virtual-link <目的路由器 ID> authentication message-digest message-digest-key <密码 ID> md5 <密码>
          • 明文认证:Router(config-router)#area <区域号> virtual-link <目的路由器 ID> authentication authentication-key <密码>
        • 在思科路由器上由于存在 Hello 抑制 特性,在 已经建立完成的 Virtual Link 上配置认证需要重置 OSPF 进程才能生效
    • 1、2 LSA 生成的路由条目 只能做 本地抑制
    • OSPF 调用前缀列表进行路由过滤的命令
      • Router(config-router)#area <区域号> filter-list prefix <前缀列表名称> in|out
    • 目前 用于 IPv4 路由的 OSPF 版本为 v2
    • OSPFv2 最大的缺陷就是 将某些重要 LSA 中的路由信息和拓扑信息绑定起来 ,这导致了 OSPFv2 根本无法支持 IPv6。不过后来的 OSPFv3 也有这种缺陷,导致最初的 OSPFv3 也只支持 IPv6。后来思科改进了 OSPFv3(称为 二代 OSPFv3 ),把 LSA 中的拓扑信息和路由信息剥离开来(LSA 类型可自定义),才解决了这个问题(增加了协议的可扩展性)。但改进后的 OSPFv3 依然不能和OSPFv2 互操作。
    • 思科路由器通过 OSPFv3 来为 IPv4 做路由的命令
      • Router(config)#ipv6 unicast-routing % 开启 IPv6 路由功能
      • Router(config)#router ospfv3 <进程号>
      • Router(config-router)#address-family ipv4 unicast % 进入 IPv4 单播地址簇配置模式
      • Router(config)#interface <接口名>
      • Router(config-if)#ipv6 enable % 开启接口的 IPv6 功能
      • Router(config-if)#ospfv3 <进程号> ipv4 area <区域号>
    • 思科路由器通过 OSPFv3 来为 IPv6 做路由的命令
      • Router(config)#ipv6 unicast-routing % 开启 IPv6 路由功能
      • Router(config)#router ospfv3 <进程号>
      • Router(config-router)#address-family ipv6 unicast % 进入 IPv6 单播地址簇配置模式
      • Router(config-router-af)#router-id <路由器 ID> % 如果路由器没有 IPv4 地址,必须手动指定一个路由器 ID
      • Router(config)#interface <接口名>
      • Router(config-if)#ospfv3 <进程号> ipv6 area <区域号>
    • OSPFv3 LSA 简介
      • 1、2 LSA
        • OSPFv2 的 1、2 类 LSA 相比 少了与网络相关的参数
        • 没有 接口 IP、掩码、度量值等 形成路由条目的必备参数
        • 只能形成拓扑 不能形成路由
      • 8 LSA 链路 LSA
        • 只能 在本地链路中发送
        • 配合 1、2 LSA 可形成直连网络 Link Local 地址的路由条目
      • 9 LSA 区域内前缀 LSA
        • 携带 AGUA 地址及掩码
          • 在为 IPv4 做路由时将携带 IPv4 地址及掩码。
        • 配合 1、2 LSA 可形成 AGUA 地址的路由条目
          • 在为 IPv4 做路由时可配合 1、2 类 LSA 形成 IPv4 路由条目。
    • OSPFv3 先形成拓扑 后计算路由