思科模拟器完成计算机网络综合组网(虚拟局域网,交换机,路由器,路由器协议,WWW/DNS/FTP服务,访问控制列表)
这是笔者在学习计算机网络这门课程中,最后的一次综合大实验。这次实验考察的知识点较多,因此我想将其记录并分享出来,给广大朋友参考。
一、实验目的
通过该实验的设计与配置模拟,考核学生对已学知识的掌握程度,加深对网络协议和原理的理解;培养学生利用网络技术结合实际需要分析问题、解决问题的能力;培养学生的组网技能和实际动手能力;培养学生的协调工作能力;提高学生撰写实验报告的能力。
二、实验内容
下图是模拟某学校网络拓扑结构,在该学校网络接入层采用S2126交换机,接入层交换机划分了办公网VLAN2和学生网VLAN4,VLAN2和VLAN4通过汇聚层S3550与路由器A相连,另外S3550上有一个VLAN3存放一台网管机。路由器A和B通过路由协议获取路由信息后,办公网可以访问B路由器后面的FTP服务器。为了防止学生网内的主机访问重要的FTP服务器,A路由器采用了访问控制列表的技术作为控制手段。需要在三层交换机上建立路由表。
三、实验过程
1.任务分析:
通过理解实验指导书,若将上述拓扑图左方(学生网、办公网和网管网)称为客户端子网络网,右方(ftp服务器)称为服务端子网络,我们可以将任务分为以下几点:
- 客户端子网络内,为学生网、办公网和网管网分别划分虚拟局域网,并利用一台二层交换机和三层交换机使它们之间可以相互通信;
- 客户端子网络可以通过两个路由器与服务器进行通信,访问ftp服务;
- 为服务器配置更多的服务,比如WWW服务和DNS服务(为其他主机和服务器配置域名)
- 在客户端子网络直接连接的路由器中设置控制访问列表,使得学生网VLAN4无法访问FTP服务器的FTP服务,但让它们可以有其他通信(比如www服务,DNS);
2.设计过程和说明:
(1)从上面的任务分析可以提取出关键知识点:
- 设备之间连接的物理导线选择
- 交换机基于端口划分VLAN
- 三层交换机实现跨VLAN通信(交换虚拟接口)
- 主机网络配置(IP,默认网关,子网掩码)
- 路由表的建立与路由协议
- 数据包的转发过程
- 控制访问列表的控制原理和过程
- 数据包协议栈
(2)设计:
①网络配置设计
下面是使用思科模拟器设计的实验拓扑图:
- 客户端子网使用172.16.0.0/16网段
- 客户端子网中各虚拟局域网分别使用172.16.2.0/24、172.16.3.0/24、172.16.4.0/24网段
- 整个客户端子网的网关地址为172.16.1.1/24,通过此网关客户端子网可以连接的服务器1 路由器之间使用192.168.1.0/24网段
- 服务器端使用10.1.10.0/24网段
②网络搭建过程设计
相信学习计算机网络的同学,必然也是有大量编程经验的程序员。我们在编写程序时一定不会把全部逻辑一次过写完,然后才去执行和调试。否则,bug的定位和解决的难度将会“超级加倍”。因此我们一定是分模块,分单元去实现,并分别调试和检验,最后才整合到一起去整体测试。这次实验我的网络搭建过程也是如此,看到我上面的任务分解了吗?相信细心的同学之前就已经发现了,这四个任务正是按照模块和过程来划分出来的,每一步做完之后都是可检验的。下面将上述四个任务转化为搭建过程:
- 先按照拓扑图的配置信息搭建左方客户端子网络部分,并使用一台PC机代替路由器A的位置(IP172.16.1.2/24),然后测试PC2,PC3,PC4,临时PC机之间的通信情况;
- 使用一台临时PC机,代替客户端子网,通过两路由器与服务器1通信,配置服务器1的ftp服务,测试临时PC机与服务器1的通信情况和ftp访问情况。然后将两临时PC机去除,将服务器子网与客户端子网连接,测试客户端和服务器的通信情况和ftp服务情况;
- 为服务器1配置WWW服务和DNS服务,并为客户机机和服务器配置域名信息,测试服务情况
- 在路由器A中设置控制访问列表,使得学生网VLAN4无法访问FTP服务器的FTP服务,但可以访问WWW和DNS服务,并测试;
3.具体操作过程,问题及分析:
(1)实验环境
思科网络模拟器(Cisco Packet Tracer)
推荐各位学习计算机网络的同学有机会尽量使用一下,可以帮助我们快速高效地设计、配置网络,理解网络的搭建过程和工作过程,加深对于理论知识的理解。并且有一个优势是,避免在真实实验室中“由于设备故障,浪费大量时间去排查”的情况,使得我们可以将精力更多地放在学习知识本身。
(2)实验步骤
①客户端子网络搭建
-
第一步:创建四台PC机,分别取名为PC2,PC3,PC4,临时PC1,按照拓扑图所示配置以上主机的网络信息(不在此演示设置过程,而是以注释文本展示)
-
第二步:创建一台二层交换机和多层交换机,将之前的所有设备按照拓扑图相连(注意图中有标明连接的端口)
-
第三步:在二层交换机上创建VLAN2和VLAN4,并将FA0/1和FA0/2接口分别分配给两个VLAN
Switch>enable
Switch#configure terminal
Switch(config)#vlan 2 !创建VLAN2
Switch(config-vlan)# name VLAN2 !命名VLAN2
Switch(config-vlan)#vlan 4 !创建VLAN4
Switch(config-vlan)# name VLAN4 !命名VLAN4
Switch(config-vlan)#end
Switch#configure terminal
Switch(config)#interface FastEthernet0/1 !将FA0/1分配给VLAN2
Switch(config-if)#switchport access vlan 2
Switch(config)#interface FastEthernet0/2 !将FA0/2分配给VLAN4
Switch(config-if)#switchport access vlan 4
- 第四步:展示二层交换机VLAN配置结果
Switch(config-if)#END
Switch#show vlan
- 第五步:把二层交换机的0/24接口做成trunk模式
Switch#configure terminal
Switch(config)#interface FastEthernet0/24
Switch(config-if)#switchport mode trunk
- 第六步:显示Trunk配置
Switch#show interface fastethernet 0/24 switchport
- 第七步:在多层交换机上创建VLAN2,VLAN3,VLAN4
Switch(config)#vlan 2
Switch(config-vlan)# name VLAN2
Switch(config-vlan)#vlan 3
Switch(config-vlan)# name VLAN3
Switch(config-vlan)#vlan 4
Switch(config-vlan)# name VLAN4
- 第八步:为VLAN1,VLAN2,VLAN3,VLAN4配置虚拟接口IP地址
Switch(config)#interface vlan 1 !配置vlan1的虚拟接口IP
Switch(config-if)#ip address 172.16.1.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit !开启接口
Switch(config)#interface vlan 2
Switch(config-if)#ip address 172.16.2.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface vlan 3
Switch(config-if)#ip address 172.16.3.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface vlan 4
Switch(config-if)#ip address 172.16.4.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
- 第九步:将FA0/1端口放入VLAN3
Switch(config-vlan)#exit
Switch(config)#interface fastethernet 0/1
Switch(config-if)#switch access vlan 3
- 第十步:显示交换机配置
Switch#show running-config
- 第十一步:把多层交换机的0/24接口做成trunk模式。
Switch(config)#interface FastEthernet0/24
Switch(config-if)#switchport mode trunk
- 第十二步:显示Trunk配置
Switch#show interface fastethernet 0/24 switchport
- 第十三步:测试连通性
PC4 PING PC3 ping不通:
!做到这一步,实验出现了问题。我第一时间想到的是防火墙,但是检测之后发现所有主机的防火墙都是关闭的,原因不在这里。然后我就分析ping命令的工作过程和数据包的转发过程。
首先,上方的输出信息是“请求超时”,说明请求已经正常发出。而由于ping的是不同网段,是需要网关进行转发的,也就是说主机找到网关这一步是没有问题的。
然后我ping了一下别的网段的网关,发现可以ping通。也就是说,本机发出的数据包是可以正常到达多层交换机的;问题就出在,多层交换机无法将收到的数据包正确转发出去!
那么转发需要什么?过程是怎么样的?路由器首先需要建立起到每一个网段的路由表,指明到哪个网段去需要经过哪个端口,然后当有数据包到达之后,通过目的地址字段进行查表转发,因此我需要确认路由表是不是正确的!
- 第十四步:查看多层交换机路由表
Switch#show ip route
果然,路由表没有建立!经过上网查找资料,原来多层交换机的路由功能需要主动开启!
- 第十五步:开启三层路由器的路由功能
Switch(config)#ip routing
- 第十六步:再次查看多层交换机路由表
Switch#show ip route
可以看到,路由表已经正常建立!
- 第十七步:重新测试连通性
PC4 PING PC3 可以ping通:
任务一完成,客户端子网搭建成功!
②服务器子网络和路由搭建
- 第十八步:创建服务器1和临时PC2,按照拓扑图所示配置以上主机的网络信息(不在此演示设置过程,而是以注释文本展示)
- 第十九步:创建路由器A和路由器B,并按拓扑图右方将四台设备连接
上图中第一和第三根导线是直通线。后面路由表创建不正常,排查出了是这一步出现了问题,路由器与终端的物理连线应该使用交叉线而不应该是直通线,否则路由器与主机通信不了。因此后面改成交叉线。
- 第二十步:为路由器A的FA1/0和Ser2/0端口配置ip地址
Router>enable
Router#configure terminal
Router(config)#interface FastEthernet1/0
Router(config-if)#ip address 172.16.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial2/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
- 第二十一步:配置路由器A的RIP路由协议
Router(config)#router rip
Router(config-router)#network 172.16.0.0 !定义关联网络172.16.0.0
Router(config-router)#network 192.168.1.0 !定义关联网络192.168.1.0
Router(config-router)#exit
- 第二十二步:显示路由器A配置信息
Router#show running-config
路由器A设置成功!
- 第二十三步:为路由器B的FA1/0和Ser2/0端口配置ip地址
Router>enable
Router#configure terminal
Router(config)#interface FastEthernet1/0
Router(config-if)#ip address 10.1.10.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial2/0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
- 第二十四步:配置路由器B的RIP路由协议
Router(config)#router rip
Router(config-router)#network 192.168.1.0
Router(config-router)#network 10.0.0.0
Router(config-router)#end
- 第二十五步:显示路由器B配置信息
Router#show running-config
路由器A设置成功!
- 第二十六步:测试客户端和服务器的通信情况
服务器ping客户端,可以成功通信(客户端也可以ping通服务器,不再展示):
- 第二十七步:服务器上建立ftp服务
点击服务器图标会弹出配置面板,选择服务栏,开启服务,并添加用户,授予权限
- 第二十八步:临时PC2访问FTP服务
FTP配置成功!
- 第二十九步:去除临时PC机,连接客户端子网和服务端子网
- 第三十步:多层交换机配置RIP路由协议
Switch(config)#router rip
Switch(config-router)#network 172.16.0.0
!由于与多层交换机直连的只有172.16.0.0的聚合网段,因此只设置这一个即可
- 第三十一步:查看多层交换机和路由器的路由表(均正确)
多层交换机:
路由器A:
路由器B:
- 第三十二步:PC2,PC3,PC4分别访问服务器FTP服务
学生网PC4访问FTP服务(其他PC也可以访问,不再重复展示,当然所有PC机都可以ping通服务器):
- 任务二完成,客户端可以正常访问服务端!
③配置WWW服务和DNS服务
- 第三十三步:配置WWW服务(顺便修改了一下helloworld.html文件)
- 第三十四步:配置DNS服务
开启DNS服务并配置四个DNS记录
为PC2,PC3,PC4和服务器配置DNS服务器地址
- 第三十五步:学生主机通过域名访问服务器网站
点击学生主机图标,选择“桌面”栏,进入Web浏览器软件,输入服务器域名和文件名“server.jnu.edu.cn/helloworld.html”,跳转,可以正确访问的网页!
- 第三十六步:管理主机通过域名ping其他两台主机
任务三完成,客户端可以正常访问服务端其他服务!
④路由器A设置控制访问列表
此步骤需要屏蔽学生网使用服务器FTP服务,但是不能影响到学生网访问其他服务,也不能影响到其他主机。
- 第三十七步:设置控制访问列表
Router(config)#ip access-list extend 101
!定义一个扩展的IP访问控制列表
Router(config-ext-nacl)#deny tcp 172.16.4.0 0.0.0.255 host 10.1.10.2 eq ftp
!拒绝源地址为172.16.4.0/24网段,目的地址为10.1.10.2,tcp端口为ftp的数据包
Router(config-ext-nacl)#permit ip any any
!允许所有的源地址到所有的目的地址的 IP 包的发送
Router(config-ext-nacl)#exit
Router(config)#interface fastethernet 1/0
Router(config-if)#ip access-group 101 in
!端口fa1/0入路由器方向引用该访问控制列表
Router(config-if)#exit
- 第三十八步:学生主机访问FTP(无法访问)
- 第三十九步:学生主机通过域名访问服务器网站(验证DNS和WWW服务仍然可用)
- 第四十步:教师主机和管理主机通过域名访问服务器网站(验证其他网络不受影响)
两网段均可正常访问!
至此,控制访问功能设置成功,任务四完成,网络全部搭建成功,实验完成!
4.问题总结和思考
整个实验中总共出现两个问题,一个是多层交换机没有开启路由功能,一个是路由器与主机间选择物理导线错误(应该是交叉线,而不是直通线)。
解决前者的过程是,经过分析ping命令工作过程和路由转发过程,设计分段测试,定位问题设备为多次交换机,再分析转发过程,得出引发问题的原因(路由表没有正确建立),进而验证,解决。
解决后者的过程是,通过主机ping网关,发现主机根本找不到网关,又去检测出路由器接口地址没有问题,因此问题一定出在路由器和主机之间的导线上,然后更好导线,解决问题。
总结就是,出现问题之后如何快速定位问题是最关键的,常用方法就是分段测试,二分法快速排除非故障点。定位到故障点后,需要结合具体知识分析故障原因,进而找出解决方法。
四、实验总结
这次实验是之前实验的一次综合应用,由于我对于之前的实验还算熟悉,因此在分析、设计、操作和解决问题的过程中都比较顺利。
这次试验我首先对实验任务进行分析,然后提取出所需要的知识点。看到这些知识点,我就知道自己单独完成这个实验是完全没有问题的。然后我就开始设计网络拓扑图和配置信息,再设计网络搭建过程。在设计网络搭建过程时,我采用了“分段搭建,分段检验,最后整合”的思路,保证网络搭建的顺利进行,降低出故障后定位故障点的难度。实验中出现的问题和解决思路已经在上一部分描述清楚,不再赘述。此外,我在实验要求之外还增加了WWW服务和DNS服务的内容,使得服务器能装载更多服务,也能验证访问控制列表对于TCP端口进行控制的能力。