前面我们学习了很多有关基础和协议的知识,实验操作相对较少,今天我们就来做一个关于ospf协议运用的实验,具体一下细节问题,希望对ospf协议使用不熟悉的小伙伴有帮助!
实验拓扑:
在实验开始之前,我们先来学习一下预配指令,对我们以后的学习和工作都有很大的帮助!
预配指令:
enable 进入特权模式
configure terminal 进入全局配置模式
no ip domain-lookup 关闭域名解析;以防敲错指令,出现卡死的现象
line console 0 进入线路模式
logging synchronous 开启日志同步;同步显示工作日志
exec-timeout 0 0 永不超时;避免离开一段时间回来的时候配置找不到的情况
exit 退出当前模式
hostname +名字;命名当前设备
注:由于模拟器和真机设备都有自动补全的帮助系统,我们就可以简写来完成预配,同时后面实验的配置,有些地方我也是简写的,只要是正确的简写,系统都会认识的。所以你们注意比对,不要搞错了!
预配简写:
en
conf ter
no ip domain-lo
line co 0
logg sy
exec-t 0 0
hos
说完了预配,那么我们就开始进入正式的配置吧!根据问题要求,我们来按照步骤往下配置!
正式配置
一、全网可达:由于交换机在这个实验中只起到连接三个路由的作用,不需要我们作任何的配置。
1、r4的IP地址配置过程: 注:复制粘贴的时候,只需复制代码就行,不要将日志带上,不然就会出现错误!
Router>enable
Router#configure terminal
Router(config)#no ip domain-lookup
Router(config)#line console 0
Router(config-line)#logging synchronous
Router(config-line)#exec-timeout 0 0
Router(config-line)#exit
Router(config)#hostname r4
r4(config)#interface fastEthernet 0/0
r4(config-if)#ip address 47.1.1.2 255.255.255.0
r4(config-if)#no shutdown
r4(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up //up表示当前这个接口已经打开;是一条日志
r4(config-if)#exit
r4(config)#interface fastEthernet 0/1
r4(config-if)#ip address 123.1.1.4 255.255.255.0
r4(config-if)#no shutdown
r4(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up //日志
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up //日志
r4(config-if)#exit
r4(config)#interface loopback 0 //创建环回接口,虚拟的接口,可标识当前主机
r4(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up //日志
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up //日志
r4(config-if)#ip address 4.4.4.4 255.255.255.0
r4(config-if)#exit
r4(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up //日志
r5的IP地址配置过程: 备注:由于配置代码过多,下面的配置就没有写上预配指令,但是小伙伴们一定自己要敲上奥!
r5(config)#int f0/0
r5(config-if)#ip add 123.1.1.5 255.255.255.0
r5(config-if)#no shutdown
r5(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up //日志;切记以%开头的都是日志
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
r5(config-if)#exi
r5(config)#int f0/1
r5(config-if)#ip add 58.1.1.2 255.255.255.0
r5(config-if)#no shutdown
r5(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
r5(config-if)#int lo 0 //注意环回的创建简写
r5(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
r5(config-if)#ip add 5.5.5.5 255.255.255.0
r5(config-if)#exi
r5(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
r6的地址配置过程:
r6(config)#int f0/0
r6(config-if)#ip add 123.1.1.6 255.255.255.0
r6(config-if)#no shutdown
r6(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
r6(config-if)#exi
r6(config)#int lo 0
r6(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
r6(config-if)#ip add 6.6.6.6 255.255.255.0
r6(config-if)#exi
r6(config)#int f0/1
r6(config-if)#ip add 69.1.1.1 255.255.255.0
r6(config-if)#no shutdown
r6(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
r6(config-if)#exi
r6(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
r7的地址配置:
r7(config)#int f0/0
r7(config-if)#ip add 47.1.1.1 255.255.255.0
r7(config-if)#no shutdown
r7(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
r7(config-if)#exi
r7(config)#int lo 0
r7(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
r7(config-if)#ip add 7.7.7.7 255.255.255.0
r7(config-if)#exi
r8的地址配置:
r8(config)#int f0/0
r8(config-if)#ip add 58.1.1.1 255.255.255.0
r8(config-if)#no shutdown
r8(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
r8(config-if)#exi
r8(config)#int lo 0
r8(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
r8(config-if)#ip add 8.8.8.8 255.255.255.0
r8(config-if)#exi
r9的地址配置:
r9(config)#int f0/0
r9(config-if)#ip add 69.1.1.2 255.255.255.0
r9(config-if)#no shutdown
r9(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
r9(config-if)#exi
r9(config)#int lo 0
r9(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
r9(config-if)#ip add 9.9.9.9 255.255.255.0
r9(config-if)#exi
注:每个设备的地址配置完成之后,一定要检测一下每台设备的直连是不是能通,不然实验做到最后发现直连不通,找到错误之后又得重复之前的许多操作,相当麻烦!所以一定不要忘记检查设备直连的通与不通!
我在配置的过程中,已经做过检测了,方法是Ping对端的地址。
我们就举个例子,检测r4与r7的连接情况:
r4#ping 47.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 47.1.1.2, timeout is 2 seconds:
!!!!! //5个符号,只要有一个“!”就表示通了,如果5个全是“.”就表示不通
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/4/8 ms
IP地址配置完成之后,就开始起协议,划分区域的配置:r4(config)#router ospf 100 //开启ospf协议;100为进程号,必须全网一致
r4(config-router)#router-id 4.4.4.4 //RID系统自动生成,建议手工配置
r4(config-router)#network 4.4.4.4 0.0.0.0 area 0 //将环回地址4.4.4.4加上反掩码,宣告进骨干0区域
r4(config-router)#network 123.1.1.4 0.0.0.0 area 0 //同上
00:32:21: %OSPF-5-ADJCHG: Process 100, Nbr 5.5.5.5 on FastEthernet0/1 from LOADING to FULL, Loading Done //日志
r4(config-router)#network 47.1.1.2 0.0.0.0 area 1 //将47.1.1.2宣告进1区域
00:33:45: %OSPF-5-ADJCHG: Process 100, Nbr 7.7.7.7 on FastEthernet0/0 from LOADING to FULL,Loading Done //红色标记部分表示邻居关系建立
r4(config-router)#
00:35:26: %OSPF-5-ADJCHG: Process 100, Nbr 6.6.6.6 on FastEthernet0/1 from LOADING to FULL, Loading Done
r5的协议配置:
注:为了方便复制,下面的配置中就把日志去掉了!但是要注意邻居关系建立的标志!
r5(config)#router ospf 100
r5(config-router)#router-id 5.5.5.5
r5(config-router)#network 5.5.5.5 0.0.0.0 ar 0
r5(config-router)#network 58.1.1.2 0.0.0.0 ar 2
r5(config-router)#network 123.1.1.5 0.0.0.0 ar 0
r5(config-router)#exit
r6的协议配置:
r6(config)#router ospf 100
r6(config-router)#router-id 6.6.6.6
r6(config-router)#network 6.6.6.6 0.0.0.0 ar 0
r6(config-router)#network 123.1.1.6 0.0.0.0 ar 0
r6(config-router)#network 69.1.1.1 0.0.0.0 ar 3
r6(config-router)#exi
r7的协议配置:
r7(config)#router ospf 100
r7(config-router)#router-id 7.7.7.7
r7(config-router)#network 7.7.7.7 0.0.0.0 ar 1
r7(config-router)#network 47.1.1.1 0.0.0.0 ar 1
r7(config-router)#exi
r8的协议配置:
r8(config)#router ospf 100
r8(config-router)#router-id 8.8.8.8
r8(config-router)#network 8.8.8.8 0.0.0.0 ar 2
r8(config-router)#network 58.1.1.1 0.0.0.0 ar 2
r8(config-router)#exi
r9的协议配置:
r9(config)#router ospf 100
r9(config-router)#router-id 9.9.9.9
r9(config-router)#network 9.9.9.9 0.0.0.0 ar 3
r9(config-router)#network 69.1.1.2 0.0.0.0 ar 3
r9(config-router)#exi
r9(config)#
就这样,我们整个拓扑的协议就起完了,整个网络协议要起来得等一段时间。在实验环境下,为了节省时间,叫大家一个方法:
r9#clear ip route *
只要每个设备敲这个指令,就能让整个网络快速起来!
现在在任意一台设备上查看路由表:
r9#show ip route
4.0.0.0/32 is subnetted, 1 subnets
O IA 4.4.4.4 [110/3] via 69.1.1.1, 00:01:36, FastEthernet0/0
5.0.0.0/32 is subnetted, 1 subnets
O IA 5.5.5.5 [110/3] via 69.1.1.1, 00:01:36, FastEthernet0/0
6.0.0.0/32 is subnetted, 1 subnets
O IA 6.6.6.6 [110/2] via 69.1.1.1, 00:01:36, FastEthernet0/0
7.0.0.0/32 is subnetted, 1 subnets
O IA 7.7.7.7 [110/4] via 69.1.1.1, 00:01:36, FastEthernet0/0
8.0.0.0/32 is subnetted, 1 subnets
O IA 8.8.8.8 [110/4] via 69.1.1.1, 00:01:36, FastEthernet0/0
9.0.0.0/24 is subnetted, 1 subnets
C 9.9.9.0 is directly connected, Loopback0
47.0.0.0/24 is subnetted, 1 subnets
O IA 47.1.1.0 [110/3] via 69.1.1.1, 00:01:36, FastEthernet0/0
58.0.0.0/24 is subnetted, 1 subnets
O IA 58.1.1.0 [110/3] via 69.1.1.1, 00:01:36, FastEthernet0/0
69.0.0.0/24 is subnetted, 1 subnets
C 69.1.1.0 is directly connected, FastEthernet0/0
123.0.0.0/24 is subnetted, 1 subnets
O IA 123.1.1.0 [110/2] via 69.1.1.1, 00:01:36, FastEthernet0/0
就会发现刚才所有配置的路由(汇总路由)出现在这张表中,然后我们检测一下有没有完成
第一个要求---全网可达
r9#ping 7.7.7.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 7.7.7.7, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/0 ms
r9#ping 8.8.8.8
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms
从结果来看,已经是全网可达了!下来开始我们第二个要求:
二:r4为DR 备注:为了方便实验的进行,刚才先起协议的设备是r5,按照ospf--DR的选举规则,目前r5为DR
r6#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
5.5.5.5 1 FULL/DR 00:00:36 123.1.1.5 FastEthernet0/0
4.4.4.4 1 FULL/BDR 00:00:31 123.1.1.4 FastEthernet0/0
9.9.9.9 1 FULL/BDR 00:00:35 69.1.1.2 FastEthernet0/1 //这一条信息说的是r9和r6之间,r6为DR
从上表可以看出r5是DR,现在要让r4为DR,就必须改r4的优先级,重启进程让r4成为DR,具体配置为:
r4(config)#int f0/1 //注意改的是接口的优先级
r4(config-if)#ip ospf priority 2 //如果没有改动,优先级默认为1
r4(config-if)#end
r4#
%SYS-5-CONFIG_I: Configured from console by console
r4#clear ip ospf process //重启ospf进程
Reset ALL OSPF processes? [no]: y
既然可以将r4的优先级升高,那么另一种方法就是把其它两个路由器(r5和r6)的优先级降低为0,也可以实现要求。但是要注意一点:
修改了那个接口的优先级就一定要重启ospf进程才能使该接口的优先级改动生效!
现在让我们看看效果:
r6#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
5.5.5.5 1 FULL/DROTHER 00:00:33 123.1.1.5 FastEthernet0/0
4.4.4.4 2 FULL/DR 00:00:37 123.1.1.4 FastEthernet0/0 //r4变成了DR
9.9.9.9 1 FULL/BDR 00:00:31 69.1.1.2 FastEthernet0/1
三、区域0和其它区域之间作密文认证: 注:认证是网络中保证信息安全中最重要的一步r4(config)#router ospf 100
r4(config-router)#area 0 authentication message-digest
r4(config-router)#area 1 authentication message-digest //r4、r5和r6是ABR,因此两个区域的认证都得做
r5(config)#router os 100
r5(config-router)#area 0 authentication message-digest
r5(config-router)#area 2 authentication message-digest
r6(config)#router os 100
r6(config-router)#area 0 authentication message-digest
r6(config-router)#area 3 authentication message-digest
r7(config)#router os 100
r7(config-router)#area 1 authentication message-digest
r8(config)#router os 100
r8(config-router)#area 2 authentication message-digest
r9(config)#router os 100
r9(config-router)#area 3 authentication message-digest
做完认证,整个网络重新建立邻居关系;必须检查一下路由表,看有没有缺少路由信心:
r4#show ip route
4.0.0.0/24 is subnetted, 1 subnets
C 4.4.4.0 is directly connected, Loopback0
5.0.0.0/32 is subnetted, 1 subnets
O 5.5.5.5 [110/2] via 123.1.1.5, 00:01:45, FastEthernet0/1
6.0.0.0/32 is subnetted, 1 subnets
O 6.6.6.6 [110/2] via 123.1.1.6, 00:01:30, FastEthernet0/1
7.0.0.0/32 is subnetted, 1 subnets
O 7.7.7.7 [110/2] via 47.1.1.1, 00:02:20, FastEthernet0/0
8.0.0.0/32 is subnetted, 1 subnets
O IA 8.8.8.8 [110/3] via 123.1.1.5, 00:01:45, FastEthernet0/1
9.0.0.0/32 is subnetted, 1 subnets
O IA 9.9.9.9 [110/3] via 123.1.1.6, 00:01:30, FastEthernet0/1
47.0.0.0/24 is subnetted, 1 subnets
C 47.1.1.0 is directly connected, FastEthernet0/0
58.0.0.0/24 is subnetted, 1 subnets
O IA 58.1.1.0 [110/2] via 123.1.1.5, 00:01:45, FastEthernet0/1
69.0.0.0/24 is subnetted, 1 subnets
O IA 69.1.1.0 [110/2] via 123.1.1.6, 00:01:30, FastEthernet0/1
123.0.0.0/24 is subnetted, 1 subnets
C 123.1.1.0 is directly connected, FastEthernet0/1
比较之前的路由表,没有少路由条目,说明我们的认证做成功了!
四、扩展配置
1、被动接口 注:特定的路由协议的更新不会从这个接口发送出去r7(config)#router os 100 //r8和r9也得作同样的配置
r7(config-router)#passive-interface loopback 0
2、加快收敛速度
注:加快收敛速度的链路两端必须一致
r6(config)#int f0/1
r6(config-if)#ip ospf hello-interval 5
r6(config-if)#ip ospf dead-interval 20 //死亡时间默认四倍匹配hello时间
r9(config)#int f0/0
r9(config-if)#ip ospf hello-interval 5
r9(config-if)#ip ospf dead-interval 20
3、缺省路由
r8(config)#router ospf 100
r8(config-router)#default-information originate
强制下放缺省路由
r8(config)#router ospf 100
r8(config-router)#default-information originate always //模拟器不支持这个功能,可以试着换个模拟器试试!
到这里实验就做完了,在我做的过程中出现了一些小失误,需要我们认真检查,注意细节问题。实验作下来,收获很大,认证需要细心点,把区域写正确!最后希望关注的小伙伴抽空多作实验,来强化记忆,并来锻炼我们的敲配置手速!