openbox lab initialized

This commit is contained in:
2025-11-06 00:01:42 +08:00
parent 0fe20bb24c
commit edb0725375
2508 changed files with 670396 additions and 66 deletions

View File

@ -1,11 +1,7 @@
#import "labtemplate.typ": *
#show: nudtlabpaper.with(title: "异构网络设计综合实验",
author1: "王李烜",
id1: "202202001046",
author2: "廖中煜",
id2: "202202001032",
author3: "王誉潞",
id3: "202202001051",
author1: "程景愉",
id1: "202302723005",
advisor: "张军",
jobtitle: "工程师",
lab: "306-707",
@ -42,7 +38,7 @@
// Display inline code in a small box
// that retains the correct baseline.
#show raw.where(block: false): it => box(
text(font: ("Consolas","FangSong_GB2312"), it),
text(font: ("Consolas","Noto Sans CJK SC"), it),
fill: luma(240),
inset: (x: 3pt, y: 0pt),
outset: (y: 3pt),
@ -52,7 +48,7 @@
// Display block code in a larger block
// with more padding.
#show raw.where(block: true): it => block(
text(font: ("Consolas","FangSong_GB2312"), it),
text(font: ("Consolas","Noto Sans CJK SC"), it),
fill: luma(240),
inset: 6pt,
radius: 3pt,
@ -63,9 +59,9 @@
#pagebreak()
= 实验目的与要求
#para[
+ 实验目的:通过本实验,让学员熟悉从网络规划到方案撰写,再到工程实施及测试验收的整个过程。
+ 实验任务:设计和实现一个包含局域网和广域网的中型网络。
#para[
一个完整的组网工程包括需求分析、方案设计、设备选型与采购、硬件安装与配置、软件安装与配置、系统测试与联调、工程验收等若干个环节,其中硬件与应用系统安装、配置工作量大,技术含量高,是信息系统集成或网络工程的关键环节,其中既涉及到技术上的问题,也涉及到工程组织、协调配合上的问题,一个网络工程师只有通过多次工程的实际锻炼,不断积累经验、吸取教训才能提高自己的水平。
]
= 需求分析
@ -172,12 +168,16 @@
=== 拓扑图
#para[
物理链路的拓扑图如@topo 所示(见下页):
]
#figure(image("实验拓扑.png",format: "png",fit:"stretch",width: 115%),caption: "实验拓扑图")<topo>
#para[
核心交换机有2台它们在物理上是横向而对等的关系。但由于使用了堆叠技术核心层的2台交换机在逻辑上是同一个设备。此外由于使用防火墙旁挂所以需要把核心交换机分成内外两个VPN示例。而这两个VPN实例在逻辑上可以视为2个设备故逻辑拓扑图由横向的2个设备变为了纵向的两个设备如下图所示。
]
#figure(image("逻辑拓扑.png",format: "png",fit:"stretch",width: 30%),caption: "逻辑拓扑图")<logic_topo>
#para[
接下来给出设备连接表(拓扑表):
]
#para[
// #para[
#set page(flipped: true)
#align(center)[#figure(caption: "核心交换机拓扑表")[#table(
columns: (auto, auto,auto,auto,auto,auto,auto,auto),
@ -275,10 +275,9 @@
[FW2], [g0/0/4], [FW1], [g0/0/4], [10.1.1.2/24], [7], [-], [用于组建防火墙旁挂系统],
[FW2], [g0/0/5], [FW1], [g0/0/5], [10.1.1.2/24], [7], [-], [用于组建防火墙旁挂系统],
)]]<firewall_topo>
]
// ]
= 实验设备
#para[
#align(center)[#table(
columns: (auto, auto,auto,auto),
rows:40pt,
@ -300,19 +299,19 @@
Windows 10 24H4", "1","DataServer、WebServer",
)]
另有网线、控制线若干。
]
= 实验步骤及结果
#para[]
== 设备连接
#para[
将所有设备按照拓扑图连接好,确保每个设备的接口都正确连接:
]
#figure(image("机柜正面接线图.jpg",format: "jpg",fit:"stretch",width: 60%),caption: "机柜正面接线图")<front>
#figure(image("机柜背面接线图.jpg",format: "jpg",fit:"stretch",width: 80%),caption: "机柜背面接线图")<back>
]
== 配置核心层堆叠系统基本功能
=== 组建堆叠系统
#para[
在此处配置开始之前必须明确本设备的逻辑堆叠端口stack-port 0/1对应的物理端口必须连接邻设备的逻辑堆叠端口stack-port 0/2对应的物理端口否则堆叠组建不成功。
]
+ 配置逻辑堆叠端口并加入物理成员端口。
- 配置LSW1的业务口g0/0/1、g0/0/7为物理成员端口并加入到相应的逻辑堆叠端口。
```
@ -378,12 +377,13 @@
1 Standby 642c-acc1-5970 100 S5735S-S24T4S-A
```
输出展示了堆叠的状态信息包括堆叠模式、堆叠拓扑类型、堆叠系统MAC地址、MAC切换延迟时间、堆叠保留VLAN、激活管理端口的槽位、各个槽位的角色、MAC地址、优先级和设备类型。其中槽位0的Priority为200槽位1的Priority为100在竞争中槽位0最终会成为Master角色槽位1为Standby角色。按照顺序上电能够保证设备快速进入事先规定好的角色。
#para[
配置完成后两台设备将组成一个堆叠系统逻辑上看成一个设备标号为CORE称为核心集群。在后续的配置中将以CORE作为设备名称。
]
=== 配置核心集群的Eth-Trunk功能和接口IP地址
#para[
此步骤是要将核心集群与其他设备相连的物理链路聚合起来,以提高链路的带宽和可靠性。
]
+ 创建 Eth-Trunk1用于连接 AR1并加入 Eth-Trunk 成员接口。
```
[CORE] interface Eth-Trunk 1
@ -456,10 +456,10 @@
[CORE-GigabitEthernet1/0/11] Eth-Trunk 6
[CORE-GigabitEthernet1/0/11] quit
```
]
=== 配置核心集群的VLAN功能
#para[
经过前面的配置核心集群上现在同时共存了2个VPN实例Private与Public。它们互相隔离表示内网与外网不能直接连通每个实例内又需要配置多个VLAN并在每个Eth接口上限制VLAN的出入借此来限制与不同用途的设备的连接。本步骤进行VLAN配置并为每个VLAN配置VLANIF接口的IP地址。
]
+ 创建 VLAN 并配置 VLANIF 接口。
```
[CORE] vlan batch 10 20 30 110 120 130
@ -585,10 +585,10 @@
130 enable default enable disable VLAN 0130
```
输出中的信息与上文配置办法无异说明各个VLAN#footnote[其中的VLAN 66是后来配置的此处可忽略。]配置生效。
]
== 配置接入层
#para[
接入层的配置比较简单,仅涉及到 VLAN。
]
+ 配置 LSW3
```plaintext
@ -655,10 +655,10 @@
[LSW5-GigabitEthernet0/0/4] port trunk allow-pass vlan 130
[LSW5-GigabitEthernet0/0/4] quit
```
]
== 配置出口网关的基本功能
#para[
出口网关即为AR1、AR2。在此步骤中首先配置路由器使用链路聚合接口核心交换机能够荣
]
+ AR1 上创建 Eth-Trunk2并加入成员接口。
```plaintext
[AR1] interface Eth-Trunk 2
@ -700,10 +700,10 @@
[AR2-Eth-Trunk2.100] dot1q termination vid 10
[AR2-Eth-Trunk2.100] quit
```
]
=== 配置防火墙的基本功能
#para[
在此步骤中首先配置防火墙使用链路聚合接口然后配置接口的IP地址最后根据接口划分安全区域。
]
+ FW1 上配置接口与安全区域。
```plaintext
[FW1] interface Eth-Trunk 3 // 配置与 CORE 连接的接口及 IP 地址(外侧)
@ -800,7 +800,6 @@
[FW2-zone-dmz] add interface Eth-Trunk 1 // 将 FW2 与 FW1 之间的接口加入 DMZ 区域
[FW2-zone-dmz] quit
```
]
== 配置使内部网络互联互通
#para[
此处内网指与核心集群相连的重要设备即AR1、AR2、FW1、FW2。在此步骤中需要配置核心集群与AR1、AR2的连接使得核心集群能够连接路由器其次还要配置核心集群上两个不互通的VPN实例与FW1、FW2的连接使得两个VPN实例可以通过旁挂防火墙互通。
@ -808,6 +807,7 @@
=== 在路由器上部署VRRP
#para[
在AR1、AR2上部署VRRP使得核心集群能够通过VRRP虚拟IP地址连接路由器。
]
- 配置AR1
```
[AR1] interface Eth-Trunk 2.100
@ -821,10 +821,10 @@
[AR2-Eth-Trunk2.100] vrrp vrid 1 virtual-ip 192.168.10.100 //配置VRRP的虚拟IP地址
[AR2-Eth-Trunk2.100] quit
```
]
=== 配置 AR1 和 AR2 的路由
#para[
+ AR1 上配置 OSPF。
]
```plaintext
[AR1] ospf 100 router-id 1.1.1.1
[AR1-ospf-100] area 0
@ -841,10 +841,8 @@
[AR2-ospf-100-area-0.0.0.0] quit
[AR2-ospf-100] quit
```
]
=== 配置防火墙的路由
#para[
+ FW1 上配置静态路由。
```plaintext
@ -862,10 +860,10 @@
[FW2] ip route-static 192.168.120.0 255.255.255.0 192.168.30.1 // 对于下行流量,目的地址为 VLAN120 网络,下一跳为 CORE 的 Private 接口 VLANIF30 的 IP 地址
[FW2] ip route-static 192.168.130.0 255.255.255.0 192.168.30.1 // 对于下行流量,目的地址为 VLAN130 网络,下一跳为 CORE 的 Private 接口 VLANIF30 的 IP 地址
```
]
=== 配置核心集群的路由
#para[
核心集群上路由配置比较复杂涉及到两个VPN实例分别是Public和Private。Public用于连接路由器Private用于连接防火墙。在此步骤中需要配置核心集群上的路由使得核心集群能够连接路由器和防火墙。配置时需要仔细对照网络拓扑表确保路由配置正确。
]
+ CORE 上创建 VPN 实例 Public将连接路由器的接口和连接防火墙上行口的接口绑定到 Public。
```plaintext
[CORE] ip vpn-instance Public // 创建 Public
@ -943,16 +941,16 @@
```plaintext
[CORE] ip route-static vpn-instance Private 0.0.0.0 0.0.0.0 192.168.30.2 // 缺省路由下一跳指向 FW1 的下行接口
```
]
== 阶段性检验
#para[
上面的配置完成后进行一个阶段性检验。配置PC1的IP地址为`192.168.110.10/24`网关为核心集群上VPN实例Private内的Vlanif110接口地址`192.168.110.1`然后ping AR1、AR2的VRRP虚拟IP地址`192.168.10.100`,是可以通的,如图@check_point1。如果不能则逐级ping查找问题所在。
#figure(image("阶段性检验1.jpg",format:"jpg",fit:"stretch",width: 100%),caption:"阶段性检验1")<check_point1>
]
#figure(image("阶段性检验1.jpg",format:"jpg",fit:"stretch",width: 100%),caption:"阶段性检验1")<check_point1>
== 配置其他功能
=== 配置出口网关的BFD功能
#para[
配置 AR1 AR2 之间的 BFD 功能,用于快速检测链路故障并触发 OSPF 路由收敛。
]
+ 配置全局 BFD 功能。
```plaintext
@ -1007,10 +1005,10 @@
RemoteIpAdd:192.168.10.2 Diagnostic Info:No diagnostic information
```
注意其中的`BFDStat`字段,显示为`up`,表示 BFD 会话建立成功。
]
=== 配置防火墙的双机热备
#para[
在防火墙上配置双机热备功能主备备份模式确保高可用性。FW1 作为 MasterFW2 作为 Slave。
]
+ FW1 上配置双机热备FW1 在备份组中作为 Master。
```plaintext
@ -1038,11 +1036,10 @@
配置好之后保存配置将两台设备全部断电关机。按照FW1先、FW2后的顺序开机防火墙开机较久约5分钟可通过风扇声音判断声音突然由大变小表示开机完成应该可以观察到防火墙Web主页中的主备状态
#figure(image("主备备份(主).png",format:"png",fit:"stretch",width: 80%),caption:"防火墙双机热备FW1")<FW1_hr>
#figure(image("主备备份(备).png",format:"png",fit:"stretch",width: 80%),caption:"防火墙双机热备FW2")<FW2_hr>
]
=== 配置DHCP服务器
#para[
DHCP服务器一般配置在接入层上但本实验拓扑图较为简单所以在核心集群上配置DHCP服务器 VLANIF110 VLANIF120 接口下的客户端分配 IP 地址和相关网络参数。
]
+ 配置 VLANIF110 接口的 DHCP 地址池
- 配置 VLANIF110 接口下的客户端从接口地址池中获取 IP 地址和相关网络参数。
```plaintext
@ -1063,8 +1060,9 @@
[CORE-Vlanif120] dhcp server dns-list 192.168.130.10
[CORE-Vlanif120] quit
```
#para[
配置完成之后配置PC1、PC2为自动获取IP地址的方式还可配置自动获取DNS地址查看 DHCP 地址池信息:
]
- 使用 `display ip pool` 命令查看 DHCP 地址池的配置和状态。
```plaintext
@ -1086,12 +1084,14 @@
```
注意到`Used`字段中变成2。此时在任一台机器上查看IP地址和DNS地址可以看到被分配的地址
#figure#figure(image("dhcp_dns.jpg",format:"jpg",fit:"stretch",width: 100%),caption:"PC1自动获取IP地址和DNS服务器地址")<dhcp_dns>
]
=== 配置STP以消除网络中的环路
#para[
逻辑拓扑图@logic_topo 有更完整的版本:
]
#figure(image("无环路.png",format:"png",fit:"stretch",width: 60%),caption:"逻辑拓扑图(完整)")<no_halo>
#para[
分析逻辑拓扑图发现此网络基本呈树形有且仅有核心集群与FW1、FW2之间组成的环。因此只需要在核心集群、防火墙上配置 STP就可以消除网络中的环路不需要RSTP、MSTP等较复杂的协议。具体来说以阻塞 FW2 连接Private的端口Eth4为目的配置STP协议。
]
+ CORE 上启用 STP 并配置优先级。
```plaintext
[CORE] stp enable // 启用 STP 协议
@ -1122,10 +1122,10 @@
[FW2-Eth-Trunk4] stp disable // 禁用 STP 以阻塞 Eth4 端口
[FW2-Eth-Trunk4] quit
```
]
=== 为出口网关配置NAT
#para[
由于内网用户有上网需求,所以需要进行地址转换。这一步骤在 AR1 AR2 上配置 NAT 功能包括地址池、ACL、静态映射以及 FTP ALG 功能。
]
+ 配置地址池和 ACL
- AR1 上配置地址池:
```plaintext
@ -1197,15 +1197,15 @@
结果如@ar1nat @ar2nat 所示(见下页):
#figure(image("AR1-NAT配置结果-截图.jpg",format:"jpg",fit:"stretch",width: 80%),caption:"AR1 NAT配置结果")<ar1nat>
#figure(image("AR1-NAT配置结果-截图.jpg",format:"jpg",fit:"stretch",width: 80%),caption:"AR1 NAT配置结果")<ar2nat>
]
=== 防火墙的工作时间段切换
#para[
公司规定员工办公室工作时间内不能访问外网。因此,需要在防火墙上配置对应的安全策略,即工作时间段内`trust`不能访问`untrust`区域,策略配置如下:
#figure(image("do_not_play_policy.png",format:"png",fit:"stretch",width: 90%),caption:"配置非工作时间段内不能访问外网")<do_not_play>
]
#figure(image("do_not_play_policy.png",format:"png",fit:"stretch",width: 90%),caption:"配置非工作时间段内不能访问外网")<do_not_play>
=== 配置端口安全
#para[
LSW4 上为连接到 Boss 设备的接口配置端口安全,以确保只有特定的 MAC 地址可以访问该端口。
]
+ 进入连接到 Boss 设备的接口配置模式。
```plaintext
[LSW4] interface GigabitEthernet0/0/2
@ -1223,9 +1223,7 @@
```plaintext
[LSW4-GigabitEthernet0/0/2] port-security max-mac-num 1
```
]
]
=== 配置Web服务器与DNS服务器
#para[
在个人笔记本电脑上配置服务器。选择Apache24作为Web服务器选择BIND 9作为DNS服务器。Apache的配置十分简单而BIND的具体配置十分复杂不是重点在此不再展开。
@ -1233,13 +1231,15 @@
=== 配置无线路由器
#para[
初始化AP然后以无线网络连接到它的配置界面`tplogin.cn`TP-Link AX3000。随后选择桥接模式即可。
]
#para[
理论成立但实际不可行。经测试此AP在选取桥接模式后也无法真正地担任交换机的功能两个连接同网段设备的端口间互ping不通。推测在工程环境下只能作为路由器使用。而拓扑图中已经没有多余的路由器位置。即使有也不具有适合此AP的功能性。所以不再继续配置此AP。
]
== 实验后验收
#para[
检查以下项目来验证整个网络的功能:
]
+ 内网主机能够通过DHCP获取到IP地址#box(
text(font: ("Times LT Pro","FZXiaoBiaoSong-B05"),fill: luma(240), weight:"bold", "先前已验证"),
fill:green,
@ -1256,7 +1256,7 @@
+ 内网主机可以访问外网;
+ 检验防火墙安全策略;
+ 防火墙主备备份;#box(
text(font: ("Times LT Pro","FZXiaoBiaoSong-B05"),fill: luma(240), weight:"bold", "先前已验证"),
text(font: ("Times New Roman","Noto Sans CJK SC"),fill: luma(240), weight:"bold", "先前已验证"),
fill:green,
inset: (x: 3pt, y: 0pt),
outset: (y: 3pt),
@ -1264,13 +1264,12 @@
+ 检验出口网关双机热备份/BFD快速切换
+ 检验端口安全;
其中,第一项与第八项先前已经验证生效,后续不再专门验收。
]
=== 内网通信
#para[
检查内网主机之间是否可以互相ping通。这里以PC1和Boss、PC2和Asso通信为例
]
#figure(image("2.PC1-ping老板.jpg",format: "jpg",width: 50%,fit:"stretch"),caption:"PC1 ping 通 Boss")
#figure(image("3.PC2-ping-Asso.jpg",format: "jpg",width: 50%,fit:"stretch"),caption:"PC2 ping 通 Asso")
]
=== 内网访问Web服务器
#para[
使用主机Asso经由IP地址192.168.130.10访问Web服务器