Files
NE_YuR/6_vpn/vpn.typ
2025-10-23 16:54:42 +08:00

164 lines
7.8 KiB
Typst
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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[
虚拟专用网络VPNVirtual Private Network是一种通过公共网络如Internet建立安全连接的技术用于实现远程用户接入、分支机构互联、数据加密传输等应用场景。VPN技术通过加密隧道、身份认证、数据加密等手段保障数据传输的安全性和隐私性提高网络通信的可靠性和保密性。常见的VPN类型包括IPSec VPN、SSL VPN、PPTP VPN等广泛应用于企业网络、远程办公、移动通信等领域。
]
== VRF
=== 概述
#para[
虚拟路由转发VRFVirtual 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")