#import "labtemplate.typ": * #show: nudtlabpaper.with(title: "VPN实例配置", author: "程景愉", id: "202302723005", training_type: "无军籍", grade: "2023", major: "网络工程", department: "计算机学院", advisor: "张军", jobtitle: "工程师", lab: "306-707", date: "2025.09.28", 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) #it.body ] #outline(title: "目录",depth: 3, indent: 1em) #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() = 实验目的 1. 了解VPN的基本概念及应用场景; 2. 掌握VPN在隔离数据流、构建虚拟网络中的关键作用; 3. 熟悉VPN的配置方法与工作机制。 通过本实验,我将学习VPN的基本原理及其在实现多租户隔离、提升网络灵活性方面的重要应用。同时,通过实践掌握VPN实例的创建、接口绑定及路由表配置等操作,深入理解VPN实例在数据转发和隔离中的实现机制,并了解其与根实例的区别及优点。实验将进一步验证VPN实例在多接口场景下的流量隔离效果,帮助我建立对虚拟网络技术的系统性认识,为日后设计复杂网络拓扑和实现网络隔离奠定基础。 = 实验原理 == VPN #para[ 虚拟专用网络(VPN,Virtual Private Network)是一种通过公共网络(如Internet)建立安全连接的技术,用于实现远程用户接入、分支机构互联、数据加密传输等应用场景。VPN技术通过加密隧道、身份认证、数据加密等手段,保障数据传输的安全性和隐私性,提高网络通信的可靠性和保密性。常见的VPN类型包括IPSec VPN、SSL VPN、PPTP VPN等,广泛应用于企业网络、远程办公、移动通信等领域。 ] == VRF === 概述 #para[ 虚拟路由转发(VRF,Virtual Routing and Forwarding)技术通过在同一台三层设备上创建多张独立的路由表,实现数据流的隔离和独立转发。VRF广泛应用于MPLS VPN、防火墙等需要隔离的场景。在VRF环境中,每个实例拥有独立的接口、路由表和路由协议进程等,使流量彻底隔离。没有VPN实例时,设备的所有接口都属于同一个根实例;而创建VPN实例后,可以将特定接口绑定到该实例,使其服务于特定业务,从而实现多租户数据的独立管理。在华为设备上VRF又称为VPN实例。 ] === 工作原理 1. 创建实例:在物理设备中创建VPN实例,用于定义独立的转发域; 2. 接口绑定:将三层接口(如物理接口、子接口或VLANIF接口)分配给实例,使其成为实例的一部分; 3. 路由表建立:基于实例绑定的接口和配置的路由协议建立独立的路由表,并按照这些路由表转发数据,从而实现实例间的数据隔离。 #pagebreak() = 实验环境 == 实验背景 #para[ 本实验模拟企业网络场景。利用VPN实例技术实现公司内员工所用电脑 client1 不可访问管理client4和client2;公司内管理员所用电脑client2不可访问管理client3和client1。 ] == 实验设备 #align(center)[#table( columns: (auto, auto,auto), rows:(auto, auto,auto), inset: 10pt, align: horizon+center, table.header( [*设备名称*], [*设备型号*], [*设备数量*] ), "路由器", "华为AR6120-S", "2", "交换机", "华为S5735", "1", "PC", "联想启天M410\nWindows 10", "4", )] #para[ 另有网线若干,控制线3条。 ] = 实验步骤及结果 == 实验拓扑 #para[ 按实验背景,绘制拓扑图如下: ] #figure(image("拓扑图.png",format: "png",fit:"stretch",width: 100%),caption: "实验拓扑图") #para[ 要求将CLIENT1、CLIENT3和CLIENT2、CLIENT4分别划分到一个VPN实例中。 ] #pagebreak() == 按照拓扑图接线 #para[ 按照拓扑图接线。 ] #figure(image("正面.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "机柜正面接线图") #figure(image("背面.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "机柜背面接线图") #pagebreak() == 配置基本网络 === 配置PC和路由器以及交换机Vlanif的IP地址 #para[ 配置IP如下表所示: ] #figure(image("IP表.png",format: "png",fit:"stretch",width: 80%),caption: "IP地址表") #para[ 具体配置命令较为简单,此处不再赘述,以下为部分步骤截图: ] #figure(image("step1.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "IP配置步骤示例(1)") #figure(image("step2.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "IP配置步骤示例(2)") #figure(image("step3.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "IP配置步骤示例(3)") #figure(image("step4.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "IP配置步骤示例(4)") === 在LSW1上建立VPN实例 #para[ 首先需要在LSW1上创建两个VPN实例,分别用于隔离Vlan 20和Vlan 200上的流量。 ] #figure(image("step8.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "激活Vlanif接口") #figure(image("step9.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "创建VPN实例vpn_employee和vpn_admin") #figure(image("step9.5.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "创建管理VPN实例 (vpn_admin)") #pagebreak() #para[ 接下来需要将VLAN接口绑定到对应的VPN实例并配置IP。 ] #figure(image("step5.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "在Vlan 20上绑定VPN实例并设置IP地址") #figure(image("step6.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "在Vlan 200上绑定VPN实例并设置IP地址") #figure(image("step7.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "在Vlan 10上绑定VPN实例并设置IP地址") #para[ 最后只需要在LSW上配置路由并在路由器配置回程路由即可。 ] #figure(image("step11.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "在 LSW1 上为VPN实例配置路由") #figure(image("step12.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "在 AR1 上配置回程路由,AR2 同理") #pagebreak() == 结果检验 #para[ 在LSW1上查看VPN实例信息,确认配置成功: ] #figure(image("step10.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "查看VPN实例信息") #para[ 在CLIENT1上分别ping CLIENT2, CLIENT3与CLIENT4,发现CLIENT1与CLIENT2, CLIENT4无法通信,CLIENT1与CLIENT3可以通信: ] #figure(image("step13.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "CLIENT1分别ping VPN内外的主机") #para[ 说明VPN实例`vpn_employee`和`vpn_admin`的配置成功,实现了CLIENT1与CLIENT2等的数据隔离。 ] = 实验总结 #para[ 本次实验通过配置VPN实例,实现了不同网络之间的数据隔禆,验证了VPN实例在网络隔离中的重要作用。通过实验,我掌握了VPN实例的创建、接口绑定、路由配置等操作方法,深入理解了VPN实例在数据转发和隔离中的实现机制。同时,通过实验验证了VPN实例在多接口场景下的流量隔离效果,为我今后设计复杂网络拓扑和实现网络隔离提供了重要参考。 ] #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")