#import "labtemplate.typ": * #show: nudtlabpaper.with(title: "虚拟局域网(VLAN)配置", author: "程景愉", id: "202302723005", training_type: "无军籍", grade: "2023", major: "网络工程", department: "计算机学院", advisor: "张军", jobtitle: "工程师", lab: "306-707", date: "2025.09.17", header_str: "《网络工程》实验报告", ) #set page(header: [ #set par(spacing: 6pt) #align(center)[#text(size: 11pt)[《网络工程》实验报告]] #v(-0.3em) #line(length: 100%, stroke: (thickness: 1pt)) ],) #show heading: it => box(width: 100%)[ #v(0.50em) #set text(font: hei) // #counter(heading).display() // #h(0.5em) #it.body ] #outline(title: "目录",depth: 3, indent: 2em) #pagebreak() #outline( title: [图目录], target: figure.where(kind: image), ) #show heading: it => box(width: 100%)[ #v(0.50em) #set text(font: hei) #counter(heading).display() // #h(0.5em) #it.body ] #set enum(indent: 0.5em,body-indent: 0.5em,) #pagebreak() = 实验目的 #para[ 能根据需求划分和配置VLAN,实现VLAN的基本功能。 了解端口安全的作用,掌握端口安全的配置方法。 ] = 实验原理 == VLAN #para[ 虚拟局域网(VLAN)是一种将局域网划分为多个逻辑上的局域网的技术。VLAN技术可以将不同的用户、不同的网络设备、不同的网络数据流分隔开,提高网络的安全性和管理性。VLAN技术可以实现以下功能: ] - 逻辑划分:将一个物理局域网划分为多个逻辑局域网,不同的逻辑局域网之间相互隔离,提高网络的安全性。 - 广播控制:VLAN可以控制广播域的范围,减少广播风暴,提高网络的性能。 - 管理灵活:VLAN可以根据网络的需求随时调整,提高网络的管理灵活性。 - 负载均衡:VLAN可以将不同的用户、不同的网络设备、不同的网络数据流分隔开,实现负载均衡。 // == 链路聚合 // #para[ // 链路聚合是一种将多个物理链路聚合成一个逻辑链路的技术。链路聚合技术可以实现以下功能: // ] // - 增加带宽:可以将多个物理链路聚合成一个逻辑链路,增加带宽,提高网络的性能。 // - 提高可靠性:可以将多个物理链路聚合成一个逻辑链路,提高网络的可靠性。 // - 负载均衡:可以将多个物理链路聚合成一个逻辑链路,实现负载均衡。 == 端口安全 #para[ 端口安全是一种保护网络安全的技术,可以防止未经授权的设备接入网络。端口安全技术可以实现以下功能: ] - 限制MAC地址:可以限制接口学习的MAC地址数量,防止未经授权的设备接入网络。 - 防止ARP攻击:可以防止ARP攻击,提高网络的安全性。 - 防止MAC地址冲突:可以防止MAC地址冲突,提高网络的稳定性。 = 实验环境 == 实验背景 #para[ 本实验模拟某公司网络场景。公司规模较大,员工200余名,内部网络是一个大的局域网。公司放置了多台接入交换机(如S1和S2)负责员工的网络接入。接入交换机之间通过汇聚交换机S3相连。公司通过划分VLAN来隔离广播域,由于员工较多,相同部门的员工通过不同交换机接入。为了保证在不同交换机下相同部门的员工能互相通信,需要配置交换机之间链路为干道模式,以实现相同VLAN跨交换机通信。 ] == 实验设备 #align(center)[#table( columns: (auto, auto,auto), rows:(2em,2em,3em), inset: 10pt, align: horizon+center, table.header( [*设备名称*], [*设备型号*], [*设备数量*] ), "交换机", "华为S5735", "2", "PC", "联想启天M410 Windows 10", "4", )] #para[ 另有网线若干,控制线2条。 ] = 实验步骤及结果 == 实验拓扑 #para[ 按实验背景,绘制拓扑图如下: ] #figure(image("实验拓扑.png",format: "png",fit:"stretch",width: 100%),caption: "实验拓扑图") == 按照拓扑图接线 #para[ 按照拓扑图接线,将PC1、PC2、PC3、PC4分别连接到LSW1、LSW2上。图中手握的三根线是用于链路聚合的网线。 ] #figure(image("接线图.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "接线图") == 配置前检验 #para[ 设置PC1、2、3、4的IP地址,分别为`192.168.10.{1, 2, 3, 4}`。设置PC1、2的网关为`192.168.10.5`,设置PC3、4的网关为`192.168.10.6`。使用`ipconfig`命令查看PC的IP地址和网关地址,以PC1为例,查看结果如下: ] #figure(image("step0.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置前检验") #para[ 说明PC1的IP地址、网关地址已经设置成功。 然后,在PC1上ping PC2、PC3、PC4,查看是否能够ping通。结果如下: ] #figure(image("step1.jpg",format: "jpg",fit:"stretch",width: 60%),caption: "配置前检验结果") #para[ 说明PC1能够ping通PC2、PC3、PC4,网络连接正常。下面开始进行VLAN配置。 ] == 配置VLAN #para[ 下列许多步骤在LSW1和LSW2上都有相同的操作,这里只列出LSW1上的操作步骤。 ] // === 配置LACP模式的链路聚合 // #para[ // 在LSW1上创建Eth-Trunk1并配置为LACP模式。 // #figure(image("../labtemplate.typ",format: "jpg",fit:"stretch",width: 40%),caption: "配置LACP模式的链路聚合(1)") // 配置LSW1上的成员接口加入Eth-Trunk1。 // #figure(image("../labtemplate.typ", format: "jpg", fit: "stretch", width: 70%),caption: "配置LACP模式的链路聚合(2)") // #figure(image("../labtemplate.typ", format: "jpg", fit: "stretch", width: 70%),caption: "(续)配置LACP模式的链路聚合(2)") // 在LSW1上配置系统优先级为100,使其成为LACP主动端(LSW2上不需要配置,其缺省优先级为32768,比LSW1低,已经满足要求)。配置活动接口上限阈值为2。 // #figure(image("../labtemplate.typ",format: "jpg",fit:"stretch",width: 60%),caption: "配置LACP模式的链路聚合(2)") // 在LSW1上配置接口优先级确定活动链路。 // #figure(image("../labtemplate.typ",format: "jpg",fit:"stretch",width: 60%),caption: "配置LACP模式的链路聚合(3)") // ] === 配置各个接口的VLAN属性 #para[ 创建VLAN并将接口加入VLAN。将与PC1、PC2相连接口的接口类型设置为access。将PC1划分到VLAN 10,将PC2划分到VLAN 20。 ] #figure(image("step2.1.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "配置VLAN属性(1)") #para[ 配置Eth-Trunk1接口允许VLAN10和VLAN20通过。 ] #figure(image("step3.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "配置VLAN属性(2)") #para[ 验证配置结果,查看各交换机的Eth-Trunk信息,查看链路是否协商成功。 ] #figure(image("step4.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "LSW1的Eth-Trunk信息") #figure(image("step5.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "LSW2的Eth-Trunk信息") #para[ 通过以上显示信息可以看到,LSW1的系统优先级为100,高于LSW2的系统优先级。Eth-Trunk的成员接口中GigabitEthernet0/0/3、GigabitEthernet0/0/4成为活动接口,处于“Selected”状态,接口GigabitEthernet0/0/5处于“Unselect”状态,同时实现2条链路的负载分担和1条链路的冗余备份功能。 ] === 阶段性检验 #para[ 在PC1上ping PC2、PC3、PC4,查看是否能够ping通。预期结果为PC1可以ping通PC3,无法ping通PC2、4。结果如下: ] #figure(image("step6.jpg",format: "jpg",fit:"stretch",width: 50%),caption: "阶段性检验(1)") #para[ 上述结果说明PC1可以ping通PC3,无法ping通PC2、4,VLAN配置成功。网工系的学生与网安系的学生电脑之间无法通信,满足了苞米要求。 ] == 添加网关 #para[ 网工系的学生做了一个网工实验,他们PC的IP地址发生了变化,从`192.168.10.x/24`变为了`192.168.20.x/24`,如下图所示: ] #figure(image("step7.1.jpg",format: "jpg",fit:"stretch",width: 100%),caption: "新的拓扑图") #para[ 现在网工系与网安系之间展开交流,要求网安系的PC1、PC3能够访问网工系的PC2、PC4。为此,需要在交换机上配置网关。本实验选择在LSW1上配置网关。 ] === 配置PC默认网关 #para[ 在PC2、PC4上配置默认网关为`192.168.20.6`(以PC2为例): ] #figure(image("step8.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置PC默认网关(1)") #para[ 使用`ipconfig`命令查看PC的网关地址,以PC2为例,查看结果如下: ] #figure(image("step9.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置PC默认网关(2)") #para[ 说明PC2的IP网关地址已经设置成功。PC4同理。 ] === 配置VLAN网关 #para[ 配置VLANIF接口,作为学生PC的网关。在LSW1上配置VLANIF10接口的IP地址为`192.168.10.5/24`,配置VLANIF20接口的IP地址为`192.168.20.6/24`。 ] #figure(image("step10.jpg",format: "png",fit:"stretch",width: 60%),caption: "配置VLAN网关(1)") #para[ 配置好之后使用`display interface Vlanif `命令查看VLANIF接口的状态,查看结果如下: ] #figure(image("step11.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "配置VLAN网关(2)") #para[ 可以看到IP已经正确配置,且状态为UP。 ] === 阶段性检验 #para[ 在PC1上ping PC2、PC3、PC4,查看是否能够ping通。预期结果为全通。结果如下: ] #figure(image("step12.jpg",format: "jpg",fit:"stretch",width: 60%),caption: "阶段性检验(2)") #para[ 上述结果说明PC1可以ping通PC2、PC3、PC4,VLAN配置成功。网工系的学生与网安系的学生电脑之间可以通信。 ] == 引入接口安全 #para[ 网工系与网安系的交流活动中,有外部人员参与。为了保证网络安全,需要对接口进行安全配置,防止外部人员使用外部设备接入网络。 ] === 配置接口安全 #para[ 将接口GigabitEthernet0/0/1、GigabitEthernet0/0/2的最大MAC地址数设置为1。以LSW1的GigabitEthernet0/0/1为例,配置如下: ] #figure(image("step13.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "配置接口安全(1)") 配置好之后,让PC1与PC2、PC3、PC4进行一次ping通信,让交换机学习每个PC的MAC地址。用`ipconfig /all`命令查看PC的MAC地址,以PC1为例,查看结果如下: #figure(image("step14.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "配置接口安全(2)") 可以看到PC1的MAC地址为`1C-69-7A-2F-8E-43`。 在LSW1上运行`display mac-address`命令查看交换机学习到的MAC地址,查看结果如下: #figure(image("step15.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "配置接口安全(3)") 可以看到交换机学习到了PC1的MAC地址。 === 检验接口安全配置 #para[ 模拟外部人员进入网安系,将PC1用于接入交换机LSW1的网线取下,改用个人笔记本电脑接入LSW1: ] #figure(image("step16.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "检验接口安全配置(1)") #para[ 将IP地址与默认网关设置为与PC1相同: ] #figure(image("step17.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "检验接口安全配置(2)") #para[ 然后分别ping PC2、PC3、PC4,看是否能够正常通信。预期结果为无法通信。结果如下: ] #figure(image("step18.jpg",format: "png",fit:"stretch",width: 80%),caption: "检验接口安全配置(3)") #para[ 个人笔记本电脑无法与任何PC通信,交换机出色地完成了苞米任务。 ] = 实验总结 == 内容总结 #para[ 通过本次实验,我深入了解了虚拟局域网(VLAN)和端口安全配置的基本原理和实际操作。具体来说,我完成了以下几项任务: ] 1. VLAN 配置: - 学习了 VLAN 的基本概念和作用,掌握了如何根据需求划分和配置 VLAN。 - 通过实际操作,将一个物理局域网划分为多个逻辑局域网,实现了不同 VLAN 之间的隔离,提高了网络的安全性和管理性。 2. 链路聚合: - 了解了链路聚合技术的基本原理,掌握了如何将多个物理链路聚合成一个逻辑链路。 - 通过实际操作,实现了链路聚合,增加了带宽,提高了网络的性能和可靠性。 3. 端口安全配置: - 学习了端口安全的作用和配置方法,掌握了如何通过端口安全配置来防止未经授权的设备接入网络。 - 通过实际操作,模拟了外部人员尝试接入网络的场景,验证了端口安全配置的有效性。 == 心得感悟 #para[ 本次实验,我选择了MobaXterm作为Serial会话的发起终端,而非Hypertrm。虽然两者没有本质区别,但后者具有更加现代化的界面,方便查看输入、输出。其次,在完成基础的VLAN配置后,我尝试学习课上讲到的其他技术,并在实验中成功利用。较为遗憾的是,由于没有技术搭建较好的测试与应用环境,没有尝试使用Hybrid类型接口配置基于MAC的VLAN。在实验中,我遇到了许多问题,但通过查阅资料、请教老师和同学,最终解决了问题。通过本次实验,我不仅学会了网络配置的方法,还提高了解决问题的能力。 ] #show heading: it => box(width: 100%)[ #v(0.50em) #set text(font: hei) // #counter(heading).display() // #h(0.5em) #it.body ] #pagebreak() #bibliography("ref.yml",full: true,title: "参考文献",style:"gb-7714-2015-numeric")