这是笔者在学习计算机网络这门课程中,最后的一次综合大实验。这次实验考察的知识点较多,因此我想将其记录并分享出来,给广大朋友参考。
通过该实验的设计与配置模拟,考核学生对已学知识的掌握程度,加深对网络协议和原理的理解;培养学生利用网络技术结合实际需要分析问题、解决问题的能力;培养学生的组网技能和实际动手能力;培养学生的协调工作能力;提高学生撰写实验报告的能力。
下图是模拟某学校网络拓扑结构,在该学校网络接入层采用S2126交换机,接入层交换机划分了办公网VLAN2和学生网VLAN4,VLAN2和VLAN4通过汇聚层S3550与路由器A相连,另外S3550上有一个VLAN3存放一台网管机。路由器A和B通过路由协议获取路由信息后,办公网可以访问B路由器后面的FTP服务器。为了防止学生网内的主机访问重要的FTP服务器,A路由器采用了访问控制列表的技术作为控制手段。需要在三层交换机上建立路由表。
通过理解实验指导书,若将上述拓扑图左方(学生网、办公网和网管网)称为客户端子网络网,右方(ftp服务器)称为服务端子网络,我们可以将任务分为以下几点:
- 设备之间连接的物理导线选择
- 交换机基于端口划分VLAN
- 三层交换机实现跨VLAN通信(交换虚拟接口)
- 主机网络配置(IP,默认网关,子网掩码)
- 路由表的建立与路由协议
- 数据包的转发过程
- 控制访问列表的控制原理和过程
- 数据包协议栈
- 客户端子网使用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服务,并测试;
思科网络模拟器(Cisco Packet Tracer)
推荐各位学习计算机网络的同学有机会尽量使用一下,可以帮助我们快速高效地设计、配置网络,理解网络的搭建过程和工作过程,加深对于理论知识的理解。并且有一个优势是,避免在真实实验室中“由于设备故障,浪费大量时间去排查”的情况,使得我们可以将精力更多地放在学习知识本身。
第一步:创建四台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
Switch(config-if)#END
Switch#show vlan
Switch#configure terminal
Switch(config)#interface FastEthernet0/24
Switch(config-if)#switchport mode trunk
Switch#show interface fastethernet 0/24 switchport
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
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
Switch(config-vlan)#exit
Switch(config)#interface fastethernet 0/1
Switch(config-if)#switch access vlan 3
Switch#show running-config
Switch(config)#interface FastEthernet0/24
Switch(config-if)#switchport mode trunk
Switch#show interface fastethernet 0/24 switchport
!做到这一步,实验出现了问题。我第一时间想到的是防火墙,但是检测之后发现所有主机的防火墙都是关闭的,原因不在这里。然后我就分析ping命令的工作过程和数据包的转发过程。
首先,上方的输出信息是“请求超时”,说明请求已经正常发出。而由于ping的是不同网段,是需要网关进行转发的,也就是说主机找到网关这一步是没有问题的。
然后我ping了一下别的网段的网关,发现可以ping通。也就是说,本机发出的数据包是可以正常到达多层交换机的;问题就出在,多层交换机无法将收到的数据包正确转发出去!
那么转发需要什么?过程是怎么样的?路由器首先需要建立起到每一个网段的路由表,指明到哪个网段去需要经过哪个端口,然后当有数据包到达之后,通过目的地址字段进行查表转发,因此我需要确认路由表是不是正确的!
Switch#show ip route
果然,路由表没有建立!经过上网查找资料,原来多层交换机的路由功能需要主动开启!
Switch(config)#ip routing
Switch#show ip route
可以看到,路由表已经正常建立!
任务一完成,客户端子网搭建成功!
上图中第一和第三根导线是直通线。后面路由表创建不正常,排查出了是这一步出现了问题,路由器与终端的物理连线应该使用交叉线而不应该是直通线,否则路由器与主机通信不了。因此后面改成交叉线。
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
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
Router#show running-config
路由器A设置成功!
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
Router(config)#router rip
Router(config-router)#network 192.168.1.0
Router(config-router)#network 10.0.0.0
Router(config-router)#end
Router#show running-config
路由器A设置成功!
服务器ping客户端,可以成功通信(客户端也可以ping通服务器,不再展示):
点击服务器图标会弹出配置面板,选择服务栏,开启服务,并添加用户,授予权限
FTP配置成功!
Switch(config)#router rip
Switch(config-router)#network 172.16.0.0
!由于与多层交换机直连的只有172.16.0.0的聚合网段,因此只设置这一个即可
学生网PC4访问FTP服务(其他PC也可以访问,不再重复展示,当然所有PC机都可以ping通服务器):
- 任务二完成,客户端可以正常访问服务端!
点击学生主机图标,选择“桌面”栏,进入Web浏览器软件,输入服务器域名和文件名“server.jnu.edu.cn/helloworld.html”,跳转,可以正确访问的网页!
任务三完成,客户端可以正常访问服务端其他服务!
此步骤需要屏蔽学生网使用服务器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
至此,控制访问功能设置成功,任务四完成,网络全部搭建成功,实验完成!
整个实验中总共出现两个问题,一个是多层交换机没有开启路由功能,一个是路由器与主机间选择物理导线错误(应该是交叉线,而不是直通线)。
解决前者的过程是,经过分析ping命令工作过程和路由转发过程,设计分段测试,定位问题设备为多次交换机,再分析转发过程,得出引发问题的原因(路由表没有正确建立),进而验证,解决。
解决后者的过程是,通过主机ping网关,发现主机根本找不到网关,又去检测出路由器接口地址没有问题,因此问题一定出在路由器和主机之间的导线上,然后更好导线,解决问题。
总结就是,出现问题之后如何快速定位问题是最关键的,常用方法就是分段测试,二分法快速排除非故障点。定位到故障点后,需要结合具体知识分析故障原因,进而找出解决方法。
这次实验是之前实验的一次综合应用,由于我对于之前的实验还算熟悉,因此在分析、设计、操作和解决问题的过程中都比较顺利。
这次试验我首先对实验任务进行分析,然后提取出所需要的知识点。看到这些知识点,我就知道自己单独完成这个实验是完全没有问题的。然后我就开始设计网络拓扑图和配置信息,再设计网络搭建过程。在设计网络搭建过程时,我采用了“分段搭建,分段检验,最后整合”的思路,保证网络搭建的顺利进行,降低出故障后定位故障点的难度。实验中出现的问题和解决思路已经在上一部分描述清楚,不再赘述。此外,我在实验要求之外还增加了WWW服务和DNS服务的内容,使得服务器能装载更多服务,也能验证访问控制列表对于TCP端口进行控制的能力。