1、 单区域 OSFP 的基本配置
clip_p_w_picpath002
在上图中存在 OSPF 所定义了两种网络类型,首先在 R1 R2 R3 之间组成的是一个广播网络,而在 R3 R4 之间则是一个点到点网络。那么在 R1 R2 R3 之间则要选择 DR BDR
基本配置如下:
clip_p_w_picpath004
书写这个命令的含义是让 OSPF 将环回口认为是一个网络而不是一个具体的接口,如果不写在路由表中环回口则是一个 32 位掩码的主机地址
clip_p_w_picpath006
clip_p_w_picpath008
clip_p_w_picpath010
clip_p_w_picpath012
clip_p_w_picpath014
clip_p_w_picpath016
clip_p_w_picpath018
注意 1 OSFP 中如果接口的 MTU 不一样则不能正常的交换 LSA ,而会卡在 exstart 状态,而 MTU 的修改方法有两种一个是修改物理的 MTU 一个是修改逻辑的 MTU
方法如下:
clip_p_w_picpath020
那么 MTU 是一个二层的参数, IP 报文在向下封装的时候,就会按照物理 MTU 对数据进行分片,而逻辑 MTU 是可以让数据在指定的地方进行分片。那么当我们修改其中某一个路由器接口的 MTU ospf 由于在建立邻居关系的时候就会因为 MTU 不匹配而造成关系不能建立而停滞在 exstart 状态。
clip_p_w_picpath022
clip_p_w_picpath024
解决方法: 1 、将 MTU 修改成为一致的; 2 、在较小 MTU 路由器上做一下命令,并且重启 OSPF 进程
clip_p_w_picpath026
注意 2 R1 R2 R3 之间存在了一个广播网络,那么广播网络在选举了 DR DBR 后, DRother 路由器如果有其他的网络变更将会直接发个 DR 再由 DR 向其他人转发。目前 R1 DRohter R2 DR R3 BDR
clip_p_w_picpath028
然后我们通过命令让 R3 成为 DR ,让 R1 R2 都是 DRohter ,操作只需要将 R1 R2 接口优先级改成 0 即可。
clip_p_w_picpath030
clip_p_w_picpath032
然后,我们在 R1 上新创建一个环回端口,并且在 R1 R2 R3 上同时打开 Debug 来查看更新情况
clip_p_w_picpath034
R1 R3 发出了一个 LSU ,因为 R3 DR
R3 将向 R1 R2 R4 发出 LUS 更新信息( R4 没有扑捉所以只看 R1 R2
clip_p_w_picpath036
clip_p_w_picpath038
R1 收到后由于这个信息是他发给 R3 的所以他不要,但是 R2 收到后就会向 R3 回应 LSack
clip_p_w_picpath040
信息更新过程结束。

2、 OSPF 在各种网络类型中的配置
clip_p_w_picpath042
基本配置
clip_p_w_picpath044
clip_p_w_picpath046
clip_p_w_picpath048
clip_p_w_picpath050
clip_p_w_picpath052
clip_p_w_picpath054
clip_p_w_picpath056
clip_p_w_picpath058
A OSPF 运行在 NBMA 网络中
当帧中继环境搭建好后我们在 R1 R2 R3 上分别配置一个环回接口,然后开启 OSPF
clip_p_w_picpath060
clip_p_w_picpath062
这是 OSPF 没有正常,我们发现根本就没有任何的邻居关系,而且我们发现这时的网络类型为非广播。帧中继网络上, OSPF 默认接口为 non-broadcast ,在这种模式下, OSPF 在接口上不会发送 hello 包,因此就无法建立“邻接”关系,需使用“ neighbor ”命令来添加领居,这时 hello 包以单播形式进行传送。 NBMA 属于多路访问,所以需进行 DR 选举,但由于 hello 包只传送 1 跳,所以在 hub-and-spoke 结构中,必须使“ hub ”端的路由器成为 DR ,建议直接将 spoke 路由器接口优先级配置为 0 ,使之不参与 DR 选举。
clip_p_w_picpath064
当我们指定了邻居而没有去指定 HUB DR 时,虽然那么路由正常学习,但是从 R3 到达 2.2.2.2 的路由的下一跳指向了中心节点, R2 到达 3.3.3.3 网络也是同样,这样的路由表不正常
clip_p_w_picpath066
clip_p_w_picpath068
clip_p_w_picpath070
clip_p_w_picpath072
那么我们将 hub 设置成为 DR 而其他的 spoke 不参与选举,那么这时我们在此查看路由表
clip_p_w_picpath074
clip_p_w_picpath076
clip_p_w_picpath078
clip_p_w_picpath080
clip_p_w_picpath082
可以看到他们下一跳的变化。
总结:当 OSPF 运行在 NBMA 网络中时,一定要指定 hub DR ,并且在 DR 上指定两个 spoke 为邻居
B OSPF 运行在点到多点的网络环境中
对上面的试验我们做一下改动,在 R2 R3 上分别删除一条到对方的 MAP 条目
clip_p_w_picpath084 
clip_p_w_picpath086
删除后在 R2 上去 ping 3.3.3.3
clip_p_w_picpath088
原因:是当在帧中继网络中去进行信息发送的时候,首先是查找路由表,当找到路由条目后在去查找映射关系进行封装,但是我们删除了映射关系,所以将导致封装失败。
clip_p_w_picpath090
这时候我们就可以去应用帧中继的第二种网络类型
配置前首先将 hub 网络中的邻居删除
clip_p_w_picpath092
然后在三个路由器上配置一下操作
clip_p_w_picpath094
clip_p_w_picpath096 clip_p_w_picpath098
完后我们查看网络类型
clip_p_w_picpath100
clip_p_w_picpath102
在这种点到多点的网络中是不需要选举 DR 的,所以路由表可以直接学习到而且不需要去指定邻居
clip_p_w_picpath104 clip_p_w_picpath106 clip_p_w_picpath108
总结:在这种网络上不需要选择 DR 而且 Hello 包可以正常发送。
C 、广播网络:这种网络类型的修改方法和上述相同,在接口上指定就可以了,也可以实现 OSPF 的直接通讯
clip_p_w_picpath110
clip_p_w_picpath112
修改 topo ,让 hub 和两个 spoke 分别是不同的网段
clip_p_w_picpath114
clip_p_w_picpath116
clip_p_w_picpath118
clip_p_w_picpath120
接下来我们来验证最后两种网络类型
D OSPF 运行在点到点环境
当我在这个环境中宣告了 OSPF
clip_p_w_picpath122
clip_p_w_picpath124
clip_p_w_picpath126
这是发现了一个现象 R1 R3 的邻居关系起来了,并且正常学习到了路由。我们来查看下 R1 R3 之间的网络类型
clip_p_w_picpath128
由于我们在帧中继配置子接口的时候就选择的是点到点所以在这里可以正常学习路由
E OSPF 运行在点多点非广播环境下
在上个例子中, R1 R3 之间正常通讯了,但是 R1 R2 之间还没有正常通讯,那么我们分析他的网络类型应该是默认的 NBMA 网络,我们查看并做修改
clip_p_w_picpath130
clip_p_w_picpath132
clip_p_w_picpath134
那么这样做完后, OSPF 仍然没有正常,在这里我们要记住一个问题,只要是 NB 的那就一定要去指定邻居。接下来我们去操作下
clip_p_w_picpath136
clip_p_w_picpath138
路由表正常,所有试验验证成功
3、 多区域 OSPF 的配置
clip_p_w_picpath140
在多区域 OSPF 中所有的非骨干区域必须连接到骨干区域,并且区域的边界在路由器上,那么就一定有一个路由器是含有两个区域的,我们把这个路由器叫做 ABR ,如上图,配置如下:
clip_p_w_picpath142
clip_p_w_picpath144
clip_p_w_picpath146
clip_p_w_picpath148
O IA 代表 OSPF 区域间路由
4、 OSPF 的虚链路
clip_p_w_picpath150
区域 2 没有直接连接到区域 0 OSPF 中这是不允许的,所以要有临时的解决方案
当按照上图配置 OSPF 后,在 R1 的路由表内没有出现 R4 上的路由,原因是这种连接方法在 OSPF 中默认是不允许的。所以我们要做解决方案
A、 虚链路
在这中操作中,将 AREA1 当做传输区域, AREA2 的数据是通过 AREA1 传输到 AREA0 的,只需要在 R2 R3 上(都是 ABR )做一下命令
clip_p_w_picpath152
clip_p_w_picpath154
AREA0 AREA1 ABR 指向 AREA1 AREA2 ABR router-id
AREA1 AREA2 ABR 指向 AREA0 AREA1 ABR router-id
B 、隧道技术( tunnel
那么首先,先去掉原有的虚链路的配置,仍然是在两个 ABR 上去操作
clip_p_w_picpath156
clip_p_w_picpath158
clip_p_w_picpath160
clip_p_w_picpath162
clip_p_w_picpath164
clip_p_w_picpath166
clip_p_w_picpath168
路由正常,在使用隧道技术中,要注意的是,在两个 ABR 上建立隧道,那么在 tunnel 接口上指定隧道的源和目的地址时,应该是两个 ABR 的接口地址互指,在这个过程中两个 ABR 之间可能会有多个路由器,那么在这两个 ABR 之间的网络应该是畅通的。第二,在隧道上配置地址,并且要在 OSPF 中宣告,且一定要宣告到区域 0 去,这就相当于 AREA0 AREA2 是通过 tunnel 接口相连,那么这条隧道就穿越了区域 1 ,建立成功了。
5、 OSPF 的汇总
clip_p_w_picpath170
clip_p_w_picpath172
clip_p_w_picpath174
clip_p_w_picpath176
clip_p_w_picpath178
clip_p_w_picpath180
clip_p_w_picpath182
clip_p_w_picpath184
clip_p_w_picpath186
A Ospf 区域间汇总,做在 ABR
clip_p_w_picpath188
clip_p_w_picpath190
将区域 1 的汇总给区域 0 ,区域间的汇总做在 ABR
clip_p_w_picpath192
B、 Ospf 自治系统间汇总,做在 ASBR
clip_p_w_picpath194
clip_p_w_picpath196
clip_p_w_picpath198
rip 中的路由汇总给 OSPF 看,就要按照 OSPF 的汇总规则在路由进程下操作,把 OSPF 的路由汇总给 rip 看,那么就要按照 rip 的规则在出接口上汇总。
6、 OSPF 的特殊区域
clip_p_w_picpath170[1]
A、 stub 区域
这个区域是网络的边界,在这个区域里不含有 ASBR ,在这个区域里的路由器不接收第 4 和第 5 类的 LSA, 在上图同 area1 可以符合这个特征,那么我们就将其配置成为 stub 区域
clip_p_w_picpath200
在没有操作之前可以看见第四类和第五类的 LSA
然后我们开启 stub ,注意:如果开启 stub 区域,那就应该在这个区域中的所有路由器都配置 stub
clip_p_w_picpath202
clip_p_w_picpath204
clip_p_w_picpath206
当配置完毕后在 Area1 的内部路由器上就会出现一个默认路由取代了原来的 O E 表示的路由
clip_p_w_picpath208
在数据库中也不存在第四类和第五类了 LSA 条目了,不过在三类的里面多了一条
B、 Totally Stubby
stub 的基础上,不仅不要四、五类的 LSA ,也不要第三类的 LSA ,可以进一步的简化路由条目配置方法如下:只需要在 ABR 上面操作就可以了
clip_p_w_picpath210
clip_p_w_picpath212
这条默认路由不仅代表了 O E 也代表了 O IA 的路由
clip_p_w_picpath214
area1 的内部路由器上链路状态数据库中三类的 LSA 也只剩下了一条默认的
C、 NSSA 区域
clip_p_w_picpath216
在区域 1 中由于某些原因不得不存在 ASBR 那么这个时候就不能实施 Stub 区域那么我们可以使用 NSSA 区域解决这个问题
clip_p_w_picpath218
clip_p_w_picpath220
clip_p_w_picpath222
clip_p_w_picpath224
在这个地方我们注意到 NSSA stub 的不同,首先没有产生默认路由,其次,在 R1 的数据库中多了一个第七类的 LSA, 然后我们在看 R2 的路由表
clip_p_w_picpath226
多了一个 O N 的路由,这个路由就是从 NSSA 区域发布进来的外部路由条目,那么现在还存在一个问题,就是在 R1 虽然简化了路由表,但是无法到达 R4 rip 网络,解决此问题的操作如下,在 R2 ABR )上做如下操作
clip_p_w_picpath228
clip_p_w_picpath230
clip_p_w_picpath232
此时就出现另一个默认路由。那么 NSSA 区域实现
D、 NSSA Totally
这个区域类似于 Totally Stubby 区域。不接受四类,五类 LSA 的同时也不接受第三类 LSA ,配置方法,仍然是只在 R2(ABR) 上操作。
clip_p_w_picpath234
clip_p_w_picpath236
clip_p_w_picpath238
7、 详解 6 LSA
clip_p_w_picpath216[1]
一类 LSA Router LSA
这类 LSA 描述了本路由器有哪些接口运行了 OSPF 及此接口的状态,还描述了自己的邻居是谁 .
clip_p_w_picpath240
LinkID :表示此 LSA 是有谁产生的, ADV Router :表示这条 LSA 是有谁通告出来的
Link count :表示这里面含有几个条目,这个能看到 1.1.1.1 这个路由器的 1 LSA 中有 5 个条目
p_w_picpath
三类 LSA
是有 ABR 发起的,由于 ABR 同属于两个区域,那么当他收到其中一个区域的一类和二类 LSA 后,就会从中间拿出网络号及掩码和度量值,发送到另一个区域
例如:在 area1 中的两个路由器上一共有 5 个网段( 1.1.1.0 1.1.2.0 1.1.3.0 2.2.2.0 12.12.12.0 )从 1 类的 LSA 中就可以看到,然后当 R2 ABR )收到后会拿出他们的网络号和掩码信息发送给 area0 ,并计算出了到达 ABR 的开销
clip_p_w_picpath250
clip_p_w_picpath252
四类 LSA
作用是用来通告 ASBR 在哪里,因为只有找到了 ASBR 才能够知道如何到达其他的路由域,此类 LSA
是由 ABR 发出的
clip_p_w_picpath254
clip_p_w_picpath256
五类 LSA
是由 ASBR 通告的,通告到达外部路由条目以及开销
clip_p_w_picpath258
clip_p_w_picpath260
七类 LSA
是由 NSSA 区域内的 ASBR 发起的。用来表示从 NSSA 区域中进来的外部网络
clip_p_w_picpath262
clip_p_w_picpath264
7 类的 LSA 进入内网后,被 ABR 转化为 5 类的 LSA OSPF 的网络内进行通告
二类 LSA
clip_p_w_picpath265
这类 LSA DR 产生的, linkID 标示, DR 在这个广播网络的接口地址, ADV Router DR 路由器的 router-id
clip_p_w_picpath267
clip_p_w_picpath269
标示了这个传输网络中包含了哪些路由器,那么知道了哪些路由器在这个网络中在通过 1 LSA 就可以知道这个路由器在这个传输网络的接口地址是多少
clip_p_w_picpath271
clip_p_w_picpath273
在加上在 2 LSA 中还有掩码信息,这样就可以知道这个传输网络的网段是多少。
8、 OSPF 的认证
A、 接口认证
明文认证
clip_p_w_picpath275 在两个相邻接口做相同的操作
密文认证
clip_p_w_picpath277 在两个相邻接口上做相同的操作
B、 区域认证
明文认证
clip_p_w_picpath279
clip_p_w_picpath281
密文认证
clip_p_w_picpath283
clip_p_w_picpath285
做区域认证需要整个区域的路由器全部都做认证
C、 虚链路认证
明文认证
clip_p_w_picpath287
密文认证
clip_p_w_picpath289