- 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。
- Area0不允许配置成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。
- Area0不允许配置成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防环原则。
- 伪ABR:在 Area 0 中没有Full邻居。
- 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 一般使用 iSPF 以及 PRC 算法计算同一区域内的路由。
-
- OSPF 的网络类型(不同网络类型的 OSPF 的运行方式有所不同)
- Loopback:环回
- 环回口默认的网络类型。
- 不发送H
- Loopback:环回
- OSPF 的网络类型(不同网络类型的 OSPF 的运行方式有所不同)