OSPF 路由协议配置部分 (以华为为主)
转载: Astion 路由交换技术笔记,可在 Gitee 上找到相关笔记项目
配置及实现
Routing&Switching—OSPF
基础配置命令
OSPF 基础配置包含几个关键动作:
一是在设备上创建 OSPF 进程并进入进程配置视图
二是创建 OSPF 区域
三是在特定接口上激活 OSPF
1.创建OSPF进程
OSPF Process-ID 只有本地意义,每个 OSPF 进程既相互独立,又能够为该设备的路由表贡献路由。
ospf 可以关联 Router-id,采用该关键字手工配置 router-id,而不是让设备自动选取。
1 | [router] ospf 1 route-id 1.1.1.1 |
2.创建OSPF区域
使用area
命令即可创建一个区域,在该命令中需要指定区域 ID
1 | [router-ospf-1]area 1 |
3.在接口上激活 OSPF
缺省时所有接口都未激活 OSPF,激活 OSPF 有两种方法。
在区域视图中使用network
命令指定IP地址及通配符掩码,满足条件的接口会在相应的区域中激活 OSPF
1 | #在172.1.1.1.0网段的接口上激活OSPF |
第二种激活方式:进入需要激活的OSPF接口使用ospf enable
命令将接口在特定的 OSPF 进程及区域中激活。
1 | [R1] interface g0/0/0 |
案例
单区域配置
在 R1 和 R2 上运行 OSPF,使得网络中的 PC 能够访问全网各个网段。
R1 配置:
1 | #创建OSPF进程1,配置Router-ID 1.1.1.1 在它所有相连接口上激活OSPF |
R2 配置:
1 | ospf 1 router-id 2.2.2.2 |
查看 R1 的 OSPF 邻居表
1 | [Huawei]dis ospf peer |
查看 R1 的 ospf 路由表
1 | [Huawei]dis ospf routing |
上表看出我们模拟的 172.16.255.0 网段被 Type-1-LSA 宣告成了主机路由,可以将 LoopBack 接口类型修改为 Broadcast 或者 NBMA 类型。
1 | R2: |
查看 R2 的一类 LSA,环回接口的路由不为主机路由了
1 | [Huawei]dis ospf lsdb router |
Silent-Interface
与上图一样
为了使 R2 能够访问 172.16.1.0 和 172.16.2.0 两个个网段,需要在R1的两个连接终端的接口激活 OSPF,这样可以产生一类 LSA 来描述这两个网段,同时这两个接口会周期性的发送 Hello 报文以便发现邻居,但这样就给终端链路造成了困扰。
这种情况下可以将连接终端的接口配置为Silent-Interface,使其不再发送Hello报文。
R1:
1 | [R1-ospf-1]slient-interface G0/0/0 |
虽然不发送 hello 报文 R2 仍可以学习到这两个网段的路由,查看 R1 的 ospf 接口信息
1 | [Huawei]dis ospf interface e0/0/0 |
多区域配置
在三台路由器上部署 OSPF,使得全网各个网段能够实现数据互通。
需要注意在 ABR 上正确的区域下配置network
命令。
R4 配置:
1 | ospf 1 router-id 4.4.4.4 |
R5 配置:
1 | ospf 1 router-id 5.5.5.5 |
在 R3 上查看路由表
1 | [Huawei]dis ip routing-table pro ospf |
查看 ABR 的信息使用dis ospf abr-asbr
1 | [Huawei]dis ospf abr-asbr |
调整 Cost 值
R1、R2、R3 都使能 OSPF 并且 Cost 都使用缺省值时,相对于 R3 来说 192.168.100.0 的路由处于等价负载分担状态。
执行dis ip routing-table protocol ospf
来查看这条路由
1 | [Huawei]dis ip routing-table protocol ospf |
当只想让这条路由通过 R1 并且链路故障时自动切换至 R2 方向,可以将 R3 的 E0/0/3 口的 OSPF Cost 值调大一些,使通过 R1 的路由更优选。
R3配置:
1 | #将接口开销调整到100 |
再查看这条路由
1 | [Huawei]dis ip routing-table prot ospf |
通过执行dis ospf int e0/0/1
可以查看这个接口的 OSPF 信息
1 | [Huawei]dis ospf int e0/0/1 |
特殊区域
按照图示要求运行 OSPF,Router-ID 均为设备编号。
基础配置如下:
1 | R1: |
R3的两条黑洞路由没有实际意义,为了实验将两条静态写入路由表引入 OSPF 中。
引入路由:
1 | R3: |
观察R1的路由表,可以看出R1学习到了三条路由,一条区域间路由,两条外部路由,标记为 o_ase
1 | [Huawei-ospf-1]dis ip routing-table prot ospf |
再观察 R1 的 LSDB,Area 1 内存在一、二、三、四类 LSA,其中三类 LSA 由 ABR 的 R2 发出,引入了区域间路由,四类 LSA 由 ABR 发出描述到达 ASBR的主机路由;R3 作为 ASBR 引入两条外部路由,产生的五类 LSA 泛洪全域。
1 | [Huawei-ospf-1]dis ospf lsdb |
将 Area 1 配置为 Stub 区域观察路由及 LSA 变化
将一个区域配置为特殊区域,那么在内所有的路由器都将配置 stub 区域。即 R1、R2
配置:
1 | R1: |
将区域配置为Stub之后将不再学习外部路由,阻挡四类、五类 LSA 进入此区域,并且 ABR 将下发一条三类 LSA 的默认路由。
观察R1路由表:
能看出来除了通过区域内部的一类二类 LSA 学习到的内部路由和区域间路由外只剩一条缺省路由通往外部路由。
1 | [Huawei-ospf-1]dis ip rout pro ospf |
观察 R1 LSDB
可以直观的看到一条三类 LSA 的默认路由是由 R2 通告的
1 | [Huawei-ospf-1]dis ospf lsdb |
将Area1配置为 Totally-Stub 区域,观察路由和 LSA 的变化
在Stub配置的基础上再追加no-summary
关键字即可
配置:
1 | R1: |
配置为 Totally-Stub 区域后将阻止三类、四类、五类 LSA 进入,即不再学习区域间路由,将通往其它区域的路由通过下发一条三类 LSA 的默认路由。
观察 R1 路由表:
1 | [Huawei-ospf-1-area-0.0.0.1]dis ip routing-table pro ospf |
观察 R1 LSDB
1 | [Huawei-ospf-1-area-0.0.0.1]dis ospf lsdb |
通过配置 Stub 区域大大减少路由表条目,注意 Stub 区域不能够引入外部路由。
如果需要在特殊区域中引入少量外部路由可以将区域配置为 Nssa 区域:
将 Area1 配置为 Nssa 区域:
1 | R1: |
R1 引入静态路由:
1 | ip route-static 10.1.1.0 24 NULL 0 |
R1 引入外部路由后会产生七类 LSA 用于描述外部路由在所在区域内传播;
在区域被配置为 NSSA 区域后,ABR 将向区域内下发七类 LSA 的默认路由。
1 | R1: |
ABR 在学习到 R1 产生的七类外部 LSA 后,会将其转换成五类 LSA 注入至骨干区域;
10.1.1.0 即转换后的五类 LSA,另外两条是 R3 引入的外部路由。
1 | R2: |
将区域配置为 Totall-NSSA 区域,即在 nssa 关键字后追加no-summary
配置为 Totall-NSSA 区域后在原基础上屏蔽三类 LSA,并下发三类 LSA 的默认路由;
此时路由表中存在三类和七类两条默认路由 LSA,优先使用三类 LSA 的默认路由;
1 | OSPF Process 1 with Router ID 1.1.1.1 |
VirtualLink
依据此图完成基础的 OSPF 配置,发现当 R3 访问 192.168.2.0 网段时会经过 R1 低带宽,不符合预期,这种情况可以使用 vlink 来缓解改变数据流向。
R3 访问 192.168.2.0 时无法在 Area23 内进行转发,因为 OSPF 防环机制三类 LSA 不能被 ABR 作为路由计算,即不能使用 Area23 内的三类 LSA。
1 | [Huawei]dis ip routing-table pro ospf |
这种情况下我们使用 vlink 将 R2 与 R3 进行虚链路连接,跨越 Area23,R2 直接将一类 LSA 通过 Area0 发送给 R3 。
vlink配置:
1 | R2: |
通过dis ospf vlink
可以看到 vlink 状态为 full
1 | [Huawei-ospf-1-area-0.0.0.23]dis ospf vlink |
这时候我们再观察路由表
1 | <Huawei>dis ip routing-table protocol ospf |
报文认证
OSPF 认证分为区域认证和接口认证。
R1 关键配置:
1 | ospf 1 |
R2、R3 的配置与 R1 相同
数值 1 为 Key-ID
R3 与 R4 之间采用接口认证,用于直连设备之间的认证,优先级高于区域认证。
R3 激活接口认证:
1 | interface Ethernet 0/0/1 |
R4 也在相应的直连接口上配置此命令即可。
OSPF多进程
在系统视图下使用 ospf 命令并关联 Process-id 可在设备上创建 ospf 进程。
当设备上存在多个 ospf 进程需要使用不同的进程号加以区分。
Process-ID只有本地意义。
虽然进程 ID 只有本地意义,仍然建议如果只有一个 ospf 域使用相同的进程 ID。
运行ospf多进程
当设备运行了多个 OSPF 进程,这些进程会相互独立,每个进程维护自己的 LSDB,不同的进程之间 LSDB 相互隔离,从一个进程中学习到的 LSA 只存储到该进程的 LSDB 中。
关键配置如下:
1 | R1: |
他们都为自己的进程维护 LSDB
1 | [Huawei]dis ospf routing |
以R1为例它是无法与 10.2.2.0 进行通信的,因为他们本身不属于同一个 OSPF 域。如果要使两个 OSPF 域相互通信,可以在 R2 上分别将两个 ospf 进程进行路由重分发即可。
关键配置:
1 | R2: |