diff --git a/6_vpn/vpn.typ b/6_vpn/vpn.typ index f6d7e55..be94682 100644 --- a/6_vpn/vpn.typ +++ b/6_vpn/vpn.typ @@ -42,12 +42,10 @@ #pagebreak() = 实验目的 -#para[ 1. 了解VPN的基本概念及应用场景; 2. 掌握VPN在隔离数据流、构建虚拟网络中的关键作用; 3. 熟悉VPN的配置方法与工作机制。 通过本实验,我将学习VPN的基本原理及其在实现多租户隔离、提升网络灵活性方面的重要应用。同时,通过实践掌握VPN实例的创建、接口绑定及路由表配置等操作,深入理解VPN实例在数据转发和隔离中的实现机制,并了解其与根实例的区别及优点。实验将进一步验证VPN实例在多接口场景下的流量隔离效果,帮助我建立对虚拟网络技术的系统性认识,为日后设计复杂网络拓扑和实现网络隔离奠定基础。 -] = 实验原理 == VPN @@ -57,16 +55,12 @@ == VRF === 概述 #para[ - 虚拟路由转发(VRF,Virtual Routing and Forwarding)技术通过在同一台三层设备上创建多张独立的路由表,实现数据流的隔离和独立转发。VRF广泛应用于MPLS VPN、防火墙等需要隔离的场景。在VRF环境中,每个实例拥有独立的接口、路由表和路由协议进程等,使流量彻底隔离。没有VPN实例时,设备的所有接口都属于同一个根实例;而创建VPN实例后,可以将特定接口绑定到该实例,使其服务于特定业务,从而实现多租户数据的独立管理。 - - 在华为设备上VRF又称为VPN实例。 + 虚拟路由转发(VRF,Virtual Routing and Forwarding)技术通过在同一台三层设备上创建多张独立的路由表,实现数据流的隔离和独立转发。VRF广泛应用于MPLS VPN、防火墙等需要隔离的场景。在VRF环境中,每个实例拥有独立的接口、路由表和路由协议进程等,使流量彻底隔离。没有VPN实例时,设备的所有接口都属于同一个根实例;而创建VPN实例后,可以将特定接口绑定到该实例,使其服务于特定业务,从而实现多租户数据的独立管理。在华为设备上VRF又称为VPN实例。 ] === 工作原理 -#para[ 1. 创建实例:在物理设备中创建VPN实例,用于定义独立的转发域; 2. 接口绑定:将三层接口(如物理接口、子接口或VLANIF接口)分配给实例,使其成为实例的一部分; 3. 路由表建立:基于实例绑定的接口和配置的路由协议建立独立的路由表,并按照这些路由表转发数据,从而实现实例间的数据隔离。 -] #pagebreak() = 实验环境 == 实验背景 @@ -75,7 +69,6 @@ ] == 实验设备 -#para[ #align(center)[#table( columns: (auto, auto,auto), rows:(auto, auto,auto), @@ -88,6 +81,7 @@ "路由器", "华为AR6120-S", "3", "PC", "联想启天M410\nWindows 10", "4", )] +#para[ 另有网线若干,控制线3条。 ] @@ -95,29 +89,32 @@ == 实验拓扑 #para[ 按实验背景,绘制拓扑图如下: +] #figure(image("实验拓扑.png",format: "png",fit:"stretch",width: 100%),caption: "实验拓扑图") +#para[ 要求将红框内的PC1、PC3划分到一个VPN实例中。 ] #pagebreak() == 按照拓扑图接线 #para[ 按照拓扑图接线。 +] #figure(image("机柜正面连线.jpg",format: "jpg",fit:"stretch",width: 50%),caption: "机柜正面接线图") #figure(image("机柜背面连线.jpg",format: "jpg",fit:"stretch",width: 50%),caption: "机柜背面接线图") -] #pagebreak() == 配置基本网络 === 配置PC -#para[ - 配置PC1的IP地址为`192.168.10.1/24`,网关为`192.168.10.2`; - 配置PC2的IP地址为`192.168.20.1/24`,网关为`192.168.20.2`; - 配置PC3的IP地址为`192.168.30.1/24`,网关为`192.168.30.2`; - 配置PC4的IP地址为`192.168.40.1/24`,网关为`192.168.40.2`。 +#para[ 步骤简单,展示图略。 ] === 配置路由器IP地址 #para[ 按照拓扑图配置路由器的IP地址。配置AR1的G0/0/0口IP地址为 +] 1. 配置AR1路由器: - 接口 `GE 0/0/0` 连接到 `AR3`,IP地址为 `192.168.60.2`。 - 接口 `GE 0/0/1` 连接到 `PC3`,IP地址为 `192.168.30.2`。 @@ -134,37 +131,46 @@ - 接口 `GE 0/0/2` 连接到 `AR2`,IP地址为 `192.168.80.1`。 - 接口 `GE 0/0/3` 连接到 `AR1`,IP地址为 `192.168.60.1`。 #figure(image("ar3ip.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置AR3的IP地址") -] === 配置RIP协议使互通 #para[ 本次实验使用RIP协议,配置路由器使得各个网络互通: +] #figure(image("ar1rip.png",format: "png",fit:"stretch",width: 60%),caption: "在AR1上配置RIP协议") #figure(image("ar2rip.png",format: "png",fit:"stretch",width: 60%),caption: "在AR2上配置RIP协议") #figure(image("ar3rip.jpg",format: "jpg",fit:"stretch",width: 60%),caption: "在AR3上配置RIP协议") +#para[ 此时在PC4(`192.168.40.1/24`)上ping其他三台主机,发现可以互通: - #figure(image("配置vpn前_2.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "PC2 ping其他主机") ] + #figure(image("配置vpn前_2.jpg",format: "jpg",fit:"stretch",width: 90%),caption: "PC2 ping其他主机") == 配置VPN实例 === 创建VPN实例 #para[ 在AR1上创建VPN实例`wlxvpn`,并为该实例设置RD值为`100:1`: - #figure(image("ar3vpn.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "创建VPN实例并设置RD值") - 并配置接口`GE 0/0/0`、`GE 0/0/2`绑定到该实例: - #figure(image("ar3binding.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "绑定接口") - 如下图@qingkong,绑定之后接口的配置会被清空,需要重新设置接口的IP地址: - #figure(image("ar3ip_2.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "重新设置接口IP地址") ] + #figure(image("ar3vpn.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "创建VPN实例并设置RD值") +#para[ + 并配置接口`GE 0/0/0`、`GE 0/0/2`绑定到该实例: +] + #figure(image("ar3binding.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "绑定接口") +#para[ + 如下图@qingkong,绑定之后接口的配置会被清空,需要重新设置接口的IP地址: +] + #figure(image("ar3ip_2.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "重新设置接口IP地址") === 配置VPN实例的路由 #para[ 向`wlxvpn`的路由表中创建RIP进程,进程号为100,并且该进程与VPN实例`wlxvpn`进行绑定。设备在该RIP进程中所学习到的路由会加载到`wlxvpn`的路由表中。 - #figure(image("ar3vpnrip.png",format: "png",fit:"stretch",width: 50%),caption: "配置RIP进程") - 此时可以测试一下VPN的连通性: - #figure(image("vpnpingPC1.png",format: "png",fit:"stretch",width: 80%),caption: "AR3 ping PC1") ] + #figure(image("ar3vpnrip.png",format: "png",fit:"stretch",width: 50%),caption: "配置RIP进程") +#para[ + 此时可以测试一下VPN的连通性: +] + #figure(image("vpnpingPC1.png",format: "png",fit:"stretch",width: 80%),caption: "AR3 ping PC1") == 结果检验 #para[ 在PC1上分别ping PC2与PC3,发现PC1与PC2无法通信,PC1与PC3可以通信: +] #figure(image("配置vpn后.jpg",format: "jpg",fit:"stretch",width: 100%),caption: "PC1分别ping VPN内外的主机") +#para[ 说明VPN实例`wlxvpn`的配置成功,实现了PC1与PC2等的数据隔离。 ] = 实验总结