前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则、作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html;今天我们来聊一聊OSPF的度量值以及基础配置命令相关话题;
我们知道路由器的作用就是维护路由表和根据路由表中的路由来进行数据包转发;其中路由表中有目标网络、掩码、优先级、开销、下一跳、出接口等信息;其中开销(cost)这个字段就是用来描述到达目标网络的开销;对于不同类型的路由,其开销这个字段的意义各不相同;比如在RIP里cost这个字段是用来描述到达目标网络的跳数(默认情况下数据包所经过一个路由器,其跳数+1),并且规定大于等于16,该路由则为不可达网络;而在OSPF中cost这个字段是用来描述对应路由所在匹配的接口开销;在每一个运行OSPF的接口上,都维护着一个接口开销,这个接口开销是指接口带宽参考值和接口带宽的比,即cost=接口带宽参考值/接口带宽;接口带宽参考值是10^8,单位是bps(每秒传输的字节数);换算成以兆(M)为单位就是100Mbps;所以默认情况下在ospf中cost的计算就是100Mbps/对应接口的带宽;比如接口带宽为100M,对应计算cost就是1;对应接口带宽为1000M,按照公式计算出来的cost应该是0.1,但是在cost这个字段上是没有小数的,所以如果接口带宽为1000M,那么对应的开销也是为1;所以在ospf中开销最小值为1 ;如果我们计算cost的值有小数,则直接取整(注意不是四舍五入哦);对于物理的接口通过上述公式可以计算出cost;对于逻辑接口lo,华为这边默认是0,思科默认是1;
在ospf里cost是用来描述到达一个目标网络的度量值,该度量值可以从两个层面来描述,如果从数据层面,我们就说这个cost是用来描述从源到目标,沿途所经过的路由器出站接口的cost值的累加;如果从路由学习方向(控制层面)来讲,cost是指从源到目标,沿途所经过的路由器入站接口的cost的值的累加;这两句话都是表达的同一个意思,只是各自描述的方向不同;
提示:从1.1.1.0/24网络到达路由器A的cost为1的话,那么到达路由器B的cost就是路由器A的入站接口cost+路由器B的入站接口的cost,即1+64=65;到达C路由器的cost就是路由器A的入站接口cost+路由器B的人站接口cost+c的入站接口cost,即从1.1.1.0/24网络到达路由器C的cost就为1+64+1=66;
实验:如下图top,配置好各路由器,并全网运行ospf
R1的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.100.1 24 [R1-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:55:40-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R1-GigabitEthernet0/0/0]int lo1 [R1-LoopBack1]ip add 1.1.1.1 32 [R1-LoopBack1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0 [R1-ospf-1-area-0.0.0.0]
R2的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R2 [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.100.2 24 [R2-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:56:29-08:00 R2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R2-GigabitEthernet0/0/0]int lo1 [R2-LoopBack1]ip add 2.2.2.2 32 [R2-LoopBack1]ospf 1 router-id 2.2.2.2 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0 [R2-ospf-1-area-0.0.0.0]
R3的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R3 [R3]int g0/0/0 [R3-GigabitEthernet0/0/0]ip add 192.168.100.3 24 Jul 28 2021 10:57:07-08:00 R3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. int lo1 [R3-GigabitEthernet0/0/0] [R3-LoopBack1]ip add 3.3.3.3 32 [R3-LoopBack1]ospf 1 router-id 3.3.3.3 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0 [R3-ospf-1-area-0.0.0.0] [R3-ospf-1-area-0.0.0.0]
R4的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R4 [R4]int g0/0/0 [R4-GigabitEthernet0/0/0]ip add 192.168.100.4 24 [R4-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:57:43-08:00 R4 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R4-GigabitEthernet0/0/0]int lo1 [R4-LoopBack1]ip add 4.4.4.4 32 [R4-LoopBack1]ospf 1 router-id 4.4.4.4 [R4-ospf-1]area 0 [R4-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 Jul 28 2021 10:57:44-08:00 R4 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes event: neighbor status changed. (ProcessId=256, NeighborAddress=3.100.168.192, NeighborEvent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 Jul 28 2021 10:57:44-08:00 R4 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes event: neighbor status changed. (ProcessId=256, NeighborAddress=3.100.168.192, NeighborEvent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way) [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 [R4-ospf-1-area-0.0.0.0]
验证:在R1上查看邻居关系
提示:可以看到在R1上查看对应的邻居表,里面有三个邻居,和我们的拓扑图一样;说明ospf配置没有问题,并且对应的ospf都运行起来;
验证:在R1上查看通过ospf学习到的路由
提示:可以看到R1通过ospf学习到了三条路由,并且这三条路由的开销都为1;这是因为,默认情况下lo接口的开销为0,物理接口比如g0/0/0这些接口默认是1;所以R1到R2的lo接口的cost就是R2的lo接口的开销+R1的g0/0/0接口的开销,即0+1=1;同理R3、R4也是一样的;
验证:修改R1的g0/0/0接口开销为10,看看对应的路由的开销是否会发生变化呢?
提示:更改ospf的开销,需要在对应接口上修改;可以看到修改了R1的g0/0/0接口开销以后,对应学习到的路由开销都变为10,这是因为各路由器到达R1时,都要从g0/0/0入站,所以开销都是对应路由器的lo接口的开销+R1的g0/0/0的开销,即0+10=10;
验证:在R2查看对应ospf学习到的路由,看看对应路由的开销有什么变化?
提示:可以看到在R2上查看对应的路由,对应路由的开销都为1,这是因为各路由器的lo接口从R2入站,对应cost就是各路由器的lo接口cost+上R2的g0/0/0接口的cost,即0+1=1;
验证:更改R2的lo接口cost为100,看看对应路由的cost是否会有变化呢?
提示:可以看到在R2 上更改了lo接口cost为100以后,在R2上查看对应路由的cost并没有发生变化,其原因是各个路由器的路由都是从R2的g0/0/0接口入站,对应cost就是为各路由器的lo接口cost+R2的g0/0/0接口的cost,即0+1=1;
验证:在R3上查看对应ospf学习到的路由,看看对应路由的cost会是多少呢?
提示:可以看到在R3上查看ospf学习到的路由中,到达R2lo接口的路由,对应cost为101,这是因为R2的lo接口的cost为100,那么到达R3,对应cost就为R2的lo接口cost+R3的g0/0/0的cost,即100++1=101;对于除R2以外的其他路由器,学习到达R2的路由cost都是101;
路由表中的cost字段,主要用来描述到达目标网络的cost,它的主要作用评判对应链路的cost,数字越大表示开销越大,开销越大即路由器选择对应的路由的几率就越低(如果有到达相同目标网络的路由),所以更改cost是能够影响路由器选路;
验证:查看R4的lo接口和g/00/0接口,看看默认情况下对应lo接口和物理接口的cost为多少?
提示:默认情况下华为设备的lo接口cost为0,思科的设备lo接口cost为1 ;
OSPF基础配置命令总结
ospf 1 router-id 1.1.1.1
提示:上述命令表示开启ospf进程,进程号为1,并手动设置其router id 为1.1.1.1;
area 0
提示:上述命令是配置对应ospf的区域id为0;区域id为0表示该区域为ospf的骨干区域,非0的区域是常规区域;
network 192.168.0.0 0.0.0.255
提示:上述命令是用来在ospf中宣告网络,这个和RIP中宣告网络的命令一样;只有在对应的动态路由协议中宣告了网络,其他路由器才能学习到到达该网络的路由条目;对于RIP来讲,我们宣告的时候只需要把对应要宣告的网络的主类地址进行宣告即可,不需要带掩码;而在ospf中,宣告网络必须带反掩码,所谓反掩码就是指255.255.255.255减去对应网络的掩码;比如255.255.255.0的反掩码就是0.0.0.255;255.255.255.252的反掩码就是0.0.0.3;我们宣告网络可以对一个网段进行宣告,当然也可单独对一个地址进行宣告,只要宣告的网络能够包含对应接口的地址就行;
display ospf peer
display ospf peer brief
提示:上述命令用来验证ospf的邻居信息的;
ospf timer hello 10
提示:该命令在对应接口下进行修改,表示修改ospf的发送hello包的时间间隔,默认只修改hello包发送时间间隔,对应死亡间隔也会跟着保持4倍关系进行修改;
ospf timer dead 40
提示:上述命令表示修改ospf接口hello包的死亡时间为40秒;如果修改了hello包的死亡事件和发送时间,它会以后者修改的为准,不会和hello发送时间保持4倍关系,如果只修改hello包的发送时间,它会跟着修改保持4倍关系;
display ospf interface g0/0/0
提示:该命令用于显示ospf接口的相关信息;默认ospf后面不跟进程号,默认就是1号进程;
ospf dr-priority 100
提示:该命令用于在接口模式下修改ospf的DR优先级;默认情况下ospf的接口DR优先级都为1 ,修改其优先级可以影响对应DR和BDR的选举,当前提是在DR和BDR没有完全选举成功,如果DR和BDR选举成功,需要重置ospf进程触发DR和BDR的重新选举,让其新的配置生效;
ospf cost 10
提示:该命令用于在接口模式下修改对应接口的cost,其范围是1-65535,默认情况下都是1 ;
bandwidth-reference 100
提示:上述命令是在ospf进程模式下调整ospf接口的带宽参考值,默认情况下带宽参考值为100Mbps;需要在整个OSPF网络中统一进行调整;
bandwidth 100
提示:该命令用于在接口模式下修改对应接口的带宽;
reset ospf process
提示:该命令用于用户模式下重启ospf进程;