文章来自 辣鸡熊个人博客:https://eeeje.com 欢迎访问,获得更好阅读体验
本文链接: https://eeeje.com/2019/11/03/OSPF/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
title: 华为设备OSPF路由的配置
categories: 学习
date: 2019-11-3 01:44:10
tags: 路由交换
toc: true
实验中有很多个人的理解,因为基础较差,难免会有一些错误的地方,如果您有建议或理解,欢迎在文章下方留言😁
OSPF
Open Shortest Path First翻译过来是开放式最短路径优先
华为设备中OSPF的优先级是 10 仅低于直连路由
OSPF单区域配置
实验设备
HUAWEI AR2220 PC
实验拓扑&规划
我并没有使用实验指导中提供的IP规划
实验目的
通过配置单个OSPF区域的配置,使PC1、PC2、PC2所在网络互通
实验过程
-
为各接口以及PC配置IP,并确保每一对接口之间连通。
-
为路由器配置OSPF
[R1]ospf 1 //1为进程号
进入骨干区域
[R1-ospf-1]area 0
接下来就可以来指定运行OSPF协议的接口和接口所属的区域
[R1-ospf-1-area-0.0.0.0]network 172.10.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.0.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]network 10.0.0.4 0.0.0.3
Q:这里的命令我不太理解
猜测后面的应该为255减去原来的掩码位(数通基础不好)
- 检查通告情况,命令:
display ospf interface
OSPF Process 1 with Router ID 172.10.1.254
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
IP Address Type tate Cost Pri DR BDR
172.10.1.254 Broadcast DR 1 1 172.10.1.254 0.0.0.0
10.0.0.2 Broadcast DR 1 1 10.0.0.2 0.0.0.0
10.0.0.6 Broadcast DR 1 1 10.0.0.6 0.0.0.0
这里可以看到area域为0.0.0.0,RoutID为172.10.1.254 ,另外可以看待通告出去三个接口的类型为广播,接口状态为DR,即都是所在网络中的指定路由器。
拓展:DR :一个广播性、多接入网络中的指定路由器,个人理解为一个网络中的“管事的”
Q:为什么会选这个ip做为RoutID?
-
配置R2 R3
[R2]ospf 1 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]network 10.0.0.1 0.0.0.3 [R2-ospf-1-area-0.0.0.0]network 10.0.0.9 0.0.0.3 [R2-ospf-1-area-0.0.0.0]network 172.10.2.254 0.0.0.255 [R3]ospf 1 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0]network 10.0.0.5 0.0.0.3 [R3-ospf-1-area-0.0.0.0]network 10.0.0.10 0.0.0.3 [R3-ospf-1-area-0.0.0.0]network 172.10.3.1 0.0.0.255
这里我配置完以后发现,命令敲错了,network 后面的直接输了接口地址,但是我去查通告情况,看起来是正常的,我觉得,后面的那个字段和掩码有关,掩码是用来定义网络的,所以说我输入的32位的地址被定义为了当前ip所在的网络,暂且不去管他。
- 检查OSPF邻居
display ospf peer
OSPF Process 1 with Router ID 172.10.1.254
Neighbors
Area 0.0.0.0 interface 10.0.0.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 172.10.2.254 Address: 10.0.0.1
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.0.2 BDR: 10.0.0.1 MTU: 0
Dead timer due in 39 sec
Retrans timer interval: 5
Neighbor is up for 00:35:24
Authentication Sequence: [ 0 ]
Neighbors
Area 0.0.0.0 interface 10.0.0.6(GigabitEthernet0/0/2)'s neighbors
Router ID: 10.0.0.10 Address: 10.0.0.5
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.0.0.6 BDR: 10.0.0.5 MTU: 0
Dead timer due in 29 sec
Retrans timer interval: 5
Neighbor is up for 00:28:32
Authentication Sequence: [ 0 ]
这里看到了两个OSPF邻居RoutID分别为:172.10.1.254,10.0.0.10(这个RoutID用了路由之间的接口ID)
猜测:RoutID的原则是不重复,所以说是不是随便指定一个ip做为RoutID
实验:我新开了一台路由器去尝试,发现 RoutID的选择是根据第一个配置的接口ip进行选择的。我回头去看R3的数据,我第一个配置的接口Ip的确是1.0.0.10/30
- 现在再去查通告情况,看一下前面看不懂的
BR
OSPF Process 1 with Router ID 172.10.1.254
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
172.10.1.254 Broadcast DR 1 1 172.10.1.254 0.0.0.0
10.0.0.2 Broadcast DR 1 1 10.0.0.2 10.0.0.1
10.0.0.6 Broadcast DR 1 1 10.0.0.6 10.0.0.5
DR是指定路由器,BDR是备份指定路由器,既然前面说到了DR是管事的
那BDR就是副管事的
,当管事的
不在或者做错的时候,副管事的
就出来接手,这两个管事的
又是由大家选出来的,这里就涉及到OSPF的选举机制了,由于理论部分还没有学到这里,暂时放一下。
现在从表中看出,172.1.1.254是自己所在网络的DR,他的BDR是一个缺省状态,另外两个网络的BDR都是自己网络中存在于OSPF域中的地址
- 再看看OSPF的路由表
Public routing table : OSPF
Destinations : 3 Routes : 4
OSPF routing table status : <Active>
Destinations : 3 Routes : 4
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.0.0.8/30 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0
OSPF 10 2 D 10.0.0.5 GigabitEthernet 0/0/2
172.10.2.0/24 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0
172.10.3.0/24 OSPF 10 2 D 10.0.0.5 GigabitEthernet 0/0/2
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
实验验证
- 由
PC1
pingPC2
PC>ping 172.10.2.1
Ping 172.10.2.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 172.10.2.1: bytes=32 seq=2 ttl=126 time=16 ms
From 172.10.2.1: bytes=32 seq=3 ttl=126 time=15 ms
From 172.10.2.1: bytes=32 seq=4 ttl=126 time=16 ms
From 172.10.2.1: bytes=32 seq=5 ttl=126 time=16 ms
--- 172.10.2.1 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 0/15/16 ms
单区域的实验结束
OSPF多区域配置
在网络规模很大的时候,就要分为多个自治域去管理,否则每个路由上的链路状态数据库将会非常的巨大,这就考虑到了路由器的硬件因素,打个简单的比方,大家都知道π=3.141592653...但是这个值不需要我们每次使用的时候都拿去算,因为已经有人算好了,拿来用就好了,多区域就是不同as域的计算、选举,都是独立的,由边界路由提供区域间的联系。
关于链路数据库大小的概念,这里拿一台来自俄勒冈大学全球BGP路由表浏览项目的路由器打个比方(好像关系不大🤔)
这是一台思科的设备,使用的BGP路由
他的路由表是一个很庞大的数量
使用的内存也达到了8.5G左右
而我们实验中用到的AR2220的内存仅有1G
好像ospf多域解决的是计算等问题,而且ospf和bgp的机制也有很大不同😓,上面这部分就当个拓展,另外在百度的时候发现了一段有意思的话:
OSPF:“身如路由器,心似转发表,报文何其多,日夜勤查找。”
BGP:“路由本非器,转发何需表?报文虽然多,自有他人找。”
先收藏起来
言归正传
实验拓扑&规划
基于上一部分是实验进行改动
其中R1 R2 R3 R4 在区域 0 中,R1 R2 R5在区域 1 中,R3 R4 R6 在区域 2 中
实验目的
R1 R2 R3 R4 为核心区域,在同一个as域中,其中R1 R2 与 R5 同在区域 1 中,R3 R4 与 R5 同在区域 2 中
从本质上来讲,可以理解为“分布式计算”,区域1计算出a=1,区域2计算出b=2,区域3计算出c=3,甲在区域1和2中,乙在区域2和3中,甲和乙互相沟通后,大家都知道a,b,c的值了。
实验过程
-
配置各接口IP
-
配置骨干区域,将R1 R2 R3 R4 配入area 0 中,并互相通告
- 配置区域A 即R1 R2 R5 配入 area 1 中,其中R1 R2只通告与R5相连的接口
- 配置区域B 即R3 R4 R6 配入 area 2 中,其中R3 R4只通告与R6相连的接口
邻区没有问题
- 查一下OSPF链路状态数据库
[Huawei]display ospf lsdb
OSPF Process 1 with Router ID 10.0.0.18
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.0.14 10.0.0.14 411 36 80000005 1
Router 172.10.3.254 172.10.3.254 421 36 80000005 1
Router 10.0.0.18 10.0.0.18 409 60 80000008 1
Network 10.0.0.17 10.0.0.14 411 32 80000002 0
Network 10.0.0.22 172.10.3.254 421 32 80000002 0
Sum-Net 172.10.3.0 172.10.3.254 615 28 80000001 1
Sum-Net 172.10.3.0 10.0.0.14 560 28 80000001 2
Sum-Net 172.10.2.0 172.10.3.254 615 28 80000001 2
Sum-Net 172.10.2.0 10.0.0.14 560 28 80000001 3
Sum-Net 172.10.1.0 172.10.3.254 615 28 80000001 3
Sum-Net 172.10.1.0 10.0.0.14 560 28 80000001 3
Sum-Net 10.0.0.12 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.12 10.0.0.14 560 28 80000001 1
Sum-Net 10.0.0.8 172.10.3.254 615 28 80000001 1
Sum-Net 10.0.0.8 10.0.0.14 560 28 80000001 2
Sum-Net 10.0.0.4 172.10.3.254 615 28 80000001 1
Sum-Net 10.0.0.4 10.0.0.14 560 28 80000001 1
Sum-Net 10.0.0.0 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.0 10.0.0.14 560 28 80000001 2
Sum-Net 10.0.0.28 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.28 10.0.0.14 560 28 80000001 3
Sum-Net 10.0.0.24 172.10.3.254 615 28 80000001 3
Sum-Net 10.0.0.24 10.0.0.14 560 28 80000001 2
除了我们通告的路由之外,其他的路由都是Sum-Net类型的
我去搜Sum-Net是什么,并没有搜到,但是发现启示录中有一条Sum-Net LSA会引起路由计算,引发OSPF路由震荡
实验验证
PC1
ping PC4
PC>ping 172.10.4.1
Ping 172.10.4.1: 32 data bytes, Press Ctrl_C to break
From 172.10.1.1: Destination host unreachable
失败
-
排障
先用PC1与PC4 ping各自的网关 --成功
查看R5 R6路由表 --有对应条目
检查电脑配置 --未配置网关
PC>ping 172.10.4.1
Ping 172.10.4.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 172.10.4.1: bytes=32 seq=2 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=3 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=4 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=5 ttl=124 time=32 ms
--- 172.10.4.1 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 0/31/32 ms
实验完成
OSPF的认证
“对暗号” 我理解为防止非法路由加入网络中
实验拓扑/规划
R1的loopback的地址是1.1.1.1 ,R2的是2.2.2.2,以此类推
实验目的
在区域0和1配上区域认证,0开启密文认证,1开启明文认证
实验过程
OSPF区域认证
-
配置各接口IP,并配置loopback地址
-
将R2 R3 R5 R6 配入area 0 中,并通告网络,将R1 R2 R4 配入area 1 中,同样通告网络
需要注意的是,每台设备都需要把loopback地址通告出去
-
配置区域
可以看到R2有了正确的邻居关系
-
给区域1配置区域认证
R1
[Huawei]ospf 1 [Huawei-ospf-1]ar [Huawei-ospf-1]area 1 [Huawei-ospf-1-area-0.0.0.1]au [Huawei-ospf-1-area-0.0.0.1]authentication-mode s [Huawei-ospf-1-area-0.0.0.1]authentication-mode simple p [Huawei-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei1 [Huawei-ospf-1-area-0.0.0.1]disp [Huawei-ospf-1-area-0.0.0.1]display th [V200R003C00] # area 0.0.0.1 authentication-mode simple plain huawei1 network 1.1.1.1 0.0.0.0 network 10.0.0.0 0.0.0.3 # return
这时候可以看到口令为
huawei1
重新配置一遍
发现个有趣的东西,按上键的时候,原来输入的口令会变成******
现在口令变为了密文显示
[Huawei-ospf-1-area-0.0.0.1]authentication-mode simple huawei1
[Huawei-ospf-1-area-0.0.0.1]display th
[V200R003C00]
#
area 0.0.0.1
authentication-mode simple cipher %$%$6iLJ4J=YgV@LW7RZhQgXRp_4%$%$
network 1.1.1.1 0.0.0.0
network 10.0.0.0 0.0.0.3
#
return
R2也没有了R1的邻居关系
<R2>display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full
----------------------------------------------------------------------------
- 接下来配R2 R4的认证
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]au
[R2-ospf-1-area-0.0.0.1]authentication-mode s
[R2-ospf-1-area-0.0.0.1]authentication-mode simple p
[R2-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei1
[R2-ospf-1-area-0.0.0.1]authentication-mode simple huawei1
[R2-ospf-1-area-0.0.0.1]display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full
----------------------------------------------------------------------------
可以看到现在R2与R1的邻居关系恢复了,没有了R4的邻居,接着去配R4
[R4-ospf-1-area-0.0.0.1]display th
[V200R003C00]
#
area 0.0.0.1
authentication-mode simple cipher %$%$tuiTSpt'-/`8ey(B}PlFR&~y%$%$
network 4.4.4.4 0.0.0.0
network 10.0.0.16 0.0.0.3
#
return
R2的邻居关系也正常了
<R2>display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full
0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full
----------------------------------------------------------------------------
OSPF链路验证
-
在R2与R4之间部署MD5的链路认证
[R2-GigabitEthernet0/0/2]ospf authentication-mode md5 1 huawei5
去看邻居信息
<R2>display ospf 1 peer brief OSPF Process 1 with Router ID 10.0.0.2 Peer Statistic Information ---------------------------------------------------------------------------- Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full 0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full ----------------------------------------------------------------------------
现在与R4的邻居没有了,因为R2与R4连接的接口被配上了链路认证
-
给R4也配上链路认证
OSPF Process 1 with Router ID 10.0.0.2 Peer Statistic Information ---------------------------------------------------------------------------- Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full 0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full 0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full ----------------------------------------------------------------------------
R2的与R4的邻居重新建立
OSPF被动接口配置
让一个接口从“参与者”变为“使用者”
拓扑&规划
实验过程
-
配置接口ip,并且都放入area 0 中
-
对PC上的接口进行抓包,可以看到有很多OSPF的hello packet报文,报文中包含了本area中的信息
所以需要配置被动接口,禁止连接终端的接口接收发送OSPF报文
-
将与终端相连的接口配置为被动接口
[R4]ospf 1 [R4-ospf-1]sil [R4-ospf-1]silent-interface g 0/0/2 [R4-ospf-1]display th [V200R003C00] # ospf 1 silent-interface GigabitEthernet0/0/2 area 0.0.0.0 network 10.0.0.16 0.0.0.7 network 10.1.1.0 0.0.0.255 # return
-
重新去抓包,就不会再发现有来自OSPF的报文了
实验结论
既然被动接口会使当前接口不再发送和接收OSPF的报文,所以不可以配置在路由之间的接口上,否则会使当前接口退出OSPF
OSPF的Router-ID
其实关于Router-ID,我之前就做了简单的验证,当时得出的结论是:
猜测:RoutID的原则是不重复,所以说是不是随便指定一个ip做为RoutID
实验:我新开了一台路由器去尝试,发现 RoutID的选择是根据第一个配置的接口ip进行选择的。我回头去看R3的数据,我第一个配置的接口Ip的确是1.0.0.10/30
完善下Router ID的选举规则
在没有手动配置Router-ID的情况下,第一个配置的接口IP,会被指定为Router-ID,如果这个IP被删除,如果当前有loopback地址,则Router-ID会被指定为loopback地址,如果没有,则会被指定为第二个配置的Router-ID,以此类推。
[Huawei]int
[Huawei]interface g 0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24
[Huawei-GigabitEthernet0/0/0]interface g 0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 2.2.2.2 24
[Huawei-GigabitEthernet0/0/1]disp
[Huawei-GigabitEthernet0/0/1]display r
[Huawei-GigabitEthernet0/0/1]display ro
[Huawei-GigabitEthernet0/0/1]display route id
RouterID:1.1.1.1 //此时的RouterID为第一个配置的接口IP
[Huawei-GigabitEthernet0/0/1]interface g 0/0/0
[Huawei-GigabitEthernet0/0/0]undo ip add
[Huawei-GigabitEthernet0/0/0]display route id
RouterID:2.2.2.2 //删除第一个配置的接口IP后,被指定为第二个接口IP
[Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24
[Huawei-GigabitEthernet0/0/0]interface l 0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]interface g 0/0/1
[Huawei-GigabitEthernet0/0/1]undo ip ad
[Huawei-GigabitEthernet0/0/1]display route id
RouterID:6.6.6.6 //这时就会被指定为loopback地址
-
如果RouterID重复,会发生什么?
简单拓扑
配置相同的RouterID
修改完RouterID后,会有这样的提醒:路由器ID已修改,请手动重置相关协议更新路由器ID
现在去查看邻居
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 1.1.1.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 1.1.1.2 Address: 1.1.1.2
State: Full Mode:Nbr is Master Priority: 1
DR: 1.1.1.1 BDR: 1.1.1.2 MTU: 0
Dead timer due in 40 sec
Retrans timer interval: 5
Neighbor is up for 00:08:51
Authentication Sequence: [ 0 ]
Router ID还是原来的,结合之前的提醒,需要重置一下协议:reset ospf process
(这个命令只可以在用户界面使用)
再去看邻居
<Huawei>display ospf peer
OSPF Process 1 with Router ID 6.6.6.6
没有邻居了,那么路由自然也不会通告
再看一下不同区域的相同RouterID
两侧的路由拥有相同的RouterID
[Huawei]display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 6.6.6.7 6.6.6.7 425 36 80000004 1
Router 6.6.6.6 6.6.6.6 592 36 80000007 1
Router 1.1.1.2 1.1.1.2 788 36 80000008 1
Router 1.1.1.1 1.1.1.1 1512 36 80000005 1
Network 1.1.1.1 6.6.6.6 592 32 80000002 0
Sum-Net 1.1.2.0 6.6.6.7 371 28 80000001 1
[Huawei]ping 1.1.2.2
PING 1.1.2.2: 56 data bytes, press CTRL_C to break
Reply from 1.1.2.2: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 1.1.2.2: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 1.1.2.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/30 ms
可以看出来,并没有对网络造成影响。
** 所以,RouterID在同区域内重叠是会影响ospf状态的,不同区域则不会**