HCL实验-配置OSPF并修改priority和cost进行改变引流的简单实验
在OSPF协议中的路由计算环节,LSDB中得到的是带权有向图,每台路由器分别以自己为根节点计算最小生成树,基于该生成树会将路由添加到路由表,当然也会关注到优先级的问题,优先级高的还是会优先走。
一、实验拓扑图
二、配置流程
1. 配置IP
连线完毕后启动设备,使用HCL模拟器是需要点击启动设备按钮来启动的!等待设备启动完毕之双击路由器即可进入命令行终端(或者鼠标右键选择).
我们先明确一下我们要配置的IP,首先我们需要配置路由器的接口的IP,根据拓扑图我们可以知道要配置什么IP和掩码,同时我们还需要配置一个loopback接口的IP,配置loopback接口有两个作用,首先是在OSPF协议中作为路由器的唯一标识(Router ID),因为loopback是常驻up的,避免了各种原因down掉接口失去路由效用,或者更换拓扑时又要重新配置等,并且配置32位掩码可以唯一标识,同时loopback接口可以帮助我们排错。
配置举例:
MSR36-20_2
[R1]int gi 0/0 //进入接口,配置接口的IP
[R1-GigabitEthernet0/0]ip add 10.0.0.1 8
[R1-GigabitEthernet0/0]qu
[R1]int gi 0/1
[R1-GigabitEthernet0/1]ip add 20.0.0.1 8
[R1]interface LoopBack 0 //开启loopback接口,并配置IP
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]qu
[R1]router id 1.1.1.1 //使用loopback的IP作为RID
其他两个路由器配置也是如此,这里不再赘述,全部配置成功后路由器在同网段之间的接口可以相互ping通。
2. 配置OSPF
配置OSPF的可以简单概括为启动OSPF进程(ospf [process-id])、配置OSPF区域(area [area-id]) 简单介绍一下OSPF协议的工作流程, 当启动OSPF进程的时候路由器就会定时的发送Hello包寻找邻居,此时自己和邻居都处于“init”状态,通过Hello包携带参数来和邻居进行协商,协商完成后进入”2-WAY‘状态,
都确认通信完毕了就开始选大哥和大哥替补,也就是DR(指定路由器)和BDR(备用指定路由器),DR负责更新其他所有OSPF路由器,BDR监控DR,在DR发生故障时接替DR,根据优先级和Route ID来先选举出BDR,再选举出DR,如果有路由器宣告自己是DR或者是BDR,只在有宣告的路由器当中进行选举,只有优先级为0的路由器没有选举资格(根据实际需求,有时候我们可能会对某个特殊路由器排除在选举之外,进行特殊配置)。
这里只是大致介绍一下,有兴趣的读者可以查阅资料更深入了解。 选举完成后路由器会发送自己的LSA(链路状态表)概要给邻居告诉邻居设备链路状态和开销等,邻居比对自己的LSA,向路由器发出自己相对缺少的LSA内容,然后原路由器会把邻居缺少内容的详细数据发给邻居,这一流程完成后路由器进入“full”状态。
“full”状态之后就开始计算路由了,这里就是本次实验的重头戏。
在OSPF协议中的路由计算环节,LSDB中得到的是带权有向图,每台路由器分别以自己为根节点计算最小生成树,基于该生成树会将路由添加到路由表,当然也会关注到优先级的问题,优先级高的还是会优先走。
这时候就要参考priority和cost值了,根据cost值会决定最小生成树的形状。
开始配置
举例:
MSR36-20_2
[R1]ospf 1 //进程号,可以多进程
[R1-ospf-1]area 0 //area 0是骨干区域,所有分支都要连接骨干,一般先配骨干再展开
[R1-ospf-1-area-0.0.0.0]network 10.0.0.0 0.255.255.255 //相邻网络网络号+掩码反码
[R1-ospf-1-area-0.0.0.0]network 20.0.0.0 0.255.255.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]dis th //检查配置情况
#
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.0.0 0.255.255.255
network 20.0.0.0 0.255.255.255
#
return
其他两个路由器也如此配置,配置完毕后就会自动的进行OSPF协议的工作流程了,等待一会后就可以相互ping通,并且可以查看相关ospf邻居了。
从MSR36-20_2(最左边那个)ping到MSR36-20_3(最右边那个),通过对MSR36-20_2的GE_0/1接口以及GE_0/0进行抓包发现ICMP包是走的下面20.0.0.0/8网段的那条路,而不是走上面过20.0.0.0/8 + 30.0.0.0/8 这两个网段的路,此时我们可以通过修改出口的cost值来改变最小生成树的形状,举例如下
这里是举例修改下面那条出口的cost为100,上面那两条都改为10
MSR36-20_2
[R1]int gi 0/0
[R1-GigabitEthernet0/0]ospf cost 10
[R1-GigabitEthernet0/0]qu
[R1]int gi 0/1
[R1-GigabitEthernet0/1]ospf cost 100
MSR36-20_1
[R2]int gi 0/0
[R2-GigabitEthernet0/0]ospf cost 10
此时再从1.1.1.1ping3.3.3.3,再两条路抓包,已经看到走上面那条路而不走下面那条路了,我们可以从下面这个图看出来,左边是下面那条路,右边是上面那条路,当然这里只是形象的表达, 方便刚入门的新手能看得懂。
更改优先级需要重启OSPF进程重新进行工作,重启需要在用户视图(系统视图在退出一级)上使用
reset ospf [process-id] process
重启OSPF进程后即可正确根据dr优先级进行处理
如果只更改cost是不用重启也生效的
priority是优先度大于cost的,先看priority再看cost
[R1]int gi 0/1
[R1-GigabitEthernet0/1]ospf cost 10
[R1-GigabitEthernet0/1]ospf dr-priority 20
[R1]int gi 0/0
[R1-GigabitEthernet0/0]ospf dr-priority 10
<R1>dis ospf routing
OSPF Process 1 with Router ID 1.1.1.1
Routing Table
Topology base (MTID 0)
Routing for network
Destination Cost Type NextHop AdvRouter Area
20.0.0.0/8 10 Transit 0.0.0.0 3.3.3.3 0.0.0.0
10.0.0.0/8 1 Transit 0.0.0.0 2.2.2.2 0.0.0.0
3.3.3.3/32 6 Stub 10.0.0.2 3.3.3.3 0.0.0.0
2.2.2.2/32 1 Stub 10.0.0.2 2.2.2.2 0.0.0.0
30.0.0.0/8 6 Transit 10.0.0.2 3.3.3.3 0.0.0.0
1.1.1.1/32 0 Stub 0.0.0.0 1.1.1.1 0.0.0.0
Total nets: 6
Intra area: 6 Inter area: 0 ASE: 0 NSSA: 0
至此,本次实验结束
三、文章结尾
本次实验重在加深对OSPF协议工作表现的理解和尝试,当然基础知识在这里也没必要全部介绍,本文重在分享学习过程中举一反三的例子,如果有错误或者疏漏希望高手指出,能够对网络学习有更多的推进。