网络运维学习笔记 017 HCIA-Datacom综合实验01
文章目录
- 综合实验1
- 实验需求
- 总部
- 特性
- 分支8
- 分支9
- 配置
- 一、 基本配置(IP+二层VLAN+链路聚合)
- ACC_SW
- SW-S1
- SW-S2
- SW-Ser1
- SW-Core
- SW8
- SW9
- DHCP
- ISP
- GW
- 二、 单臂路由
- GW
- 三、 vlanif
- SW8
- SW9
- 四、 OSPF
- SW8
- SW9
- GW
- 五、 DHCP
- DHCP
- GW
- 六、 NAT+缺省路由
- GW
- 七、 HTTP
- GW
综合实验1

实验需求
总部
1.除了SW8和SW9是三层交换机,其他交换机均为二层交换机,需要做链路聚合的线路图中已标出。所有交换机的接口模式按照图中标出的位置。
思考问题:这个图中有环路么?
2.GW为总部的出口设备,使用单臂路由技术,Vlan10,20,100的网关都在GW上。
3.总部、分支8、分支9之间互有专线连接。
目标:GW、SW8、SW9之间建立ospf,互相宣告互为邻居,进程号200,区域0,达到企业内网全网互通。
4.在SW8和SW9建立的邻居中,SW8的互联接口要永远为DR。
5.要求DHCP服务器在路由追踪PC8时,路径中必须包含SW9。
特性
6.Vlan10,20的PC均由DHCP服务器提供IP地址,DHCP服务器的地址池配置如下:
Vlan10:192.168.10.0/24 GW:192.168.10.254 DNS:8.8.8.8 租期:8天。
Vlan20:192.168.20.0/24 GW:192.168.20.254 DNS:8.8.8.8 租期:8天。
PC2是老板的PC,老板要求通过DHCP给他固定IP:192.168.20.100/24,其他与地址池一致。
由于员工区存在打印机,需要排除掉192.168.10.240-254 , 192.168.20.240-254。
7.GW路由器使用NAT技术,配置Easy-IP技术让内部设备可以上网
在Internet路由器上使用环回接口模拟公网地址,让所有PC可以ping通100.1.1.1。
8.服务器区有一台HTTP服务器,将其80端口发布到Internet网络,在Internet路由器上使用telnet 70.1.1.1 80 来验证是否成功。
分支8
PC8配置静态IP使PC8可以通过总部GW上网,ping 100.1.1.1。
分支9
PC9配置静态IP使PC9可以通过总部GW上网,ping 100.1.1.1。
配置
一、 基本配置(IP+二层VLAN+链路聚合)
ACC_SW
[ACC_SW]vlan 200
[ACC_SW-Vlanif200]int g0/0/1
[ACC_SW-GigabitEthernet0/0/1]p l a
[ACC_SW-GigabitEthernet0/0/1]p d v 200
[ACC_SW-GigabitEthernet0/0/1]int Eth-Trunk 1
[ACC_SW-Eth-Trunk1]mode lacp-static
[ACC_SW-Eth-Trunk1]trunkport GigabitEthernet 0/0/2 to 0/0/3
[ACC_SW-Eth-Trunk1]p l t
[ACC_SW-Eth-Trunk1]p t a v a
SW-S1
[SW-S1]vlan 10
[SW-S1]int g0/0/2
[SW-S1-GigabitEthernet0/0/2]p l t
[SW-S1-GigabitEthernet0/0/2]p t a v a
[SW-S1]int g0/0/1
[SW-S1-GigabitEthernet0/0/2]p l a
[SW-S1-GigabitEthernet0/0/2]p d v 10
SW-S2
[SW-S2]vlan 20
[SW-S2]int g0/0/2
[SW-S2-GigabitEthernet0/0/2]p l t
[SW-S2-GigabitEthernet0/0/2]p t a v a
[SW-S2]int g0/0/1
[SW-S2-GigabitEthernet0/0/1]p l t
[SW-S2-GigabitEthernet0/0/1]p t a v 20
[SW-S2-GigabitEthernet0/0/1]port trunk pvid vlan 20
SW-Ser1
[SW-Ser1]vlan 100
[SW-Ser1]int g0/0/1
[SW-Ser1-GigabitEthernet0/0/1]port hybrid pvid vlan 100
[SW-Ser1-GigabitEthernet0/0/1]port hybrid untagged vlan 100
[SW-Ser1-GigabitEthernet0/0/1]int g0/0/2
[SW-Ser1-GigabitEthernet0/0/2]port hybrid pvid vlan 100
[SW-Ser1-GigabitEthernet0/0/2]port hybrid untagged vlan 100
[SW-Ser1-GigabitEthernet0/0/2]int g0/0/3
[SW-Ser1-GigabitEthernet0/0/3]port hybrid tagged vlan 100
SW-Core
[SW-Core]vlan batch 10 20 100 200 201 202
[SW-Core]int g0/0/6
[SW-Core-GigabitEthernet0/0/6]p l t
[SW-Core-GigabitEthernet0/0/6]p t a v a
[SW-Core-GigabitEthernet0/0/6]int g0/0/7
[SW-Core-GigabitEthernet0/0/7]p l t
[SW-Core-GigabitEthernet0/0/7]p t a v a
[SW-Core-GigabitEthernet0/0/7]int g0/0/8
[SW-Core-GigabitEthernet0/0/8]port hybrid tagged vlan 100
[SW-Core-GigabitEthernet0/0/8]int g0/0/1
[SW-Core-GigabitEthernet0/0/1]p l a
[SW-Core-GigabitEthernet0/0/1]p d v 201
[SW-Core-GigabitEthernet0/0/1]int g0/0/9
[SW-Core-GigabitEthernet0/0/9]p l a
[SW-Core-GigabitEthernet0/0/9]p d v 202
[SW-Core]int Eth-Trunk 1
[SW-Core-Eth-Trunk1]mode lacp-static
[SW-Core-Eth-Trunk1]trunkport GigabitEthernet 0/0/2 to 0/0/3
[SW-Core-Eth-Trunk1]p l t
[SW-Core-Eth-Trunk1]p t a v a
[SW-Core]int Eth-Trunk 2
[SW-Core-Eth-Trunk2]mode lacp-static
[SW-Core-Eth-Trunk2]trunkport GigabitEthernet 0/0/4 to 0/0/5
[SW-Core-Eth-Trunk2]p l t
[SW-Core-Eth-Trunk2]p t a v a
[SW-Core]undo stp enable
SW8
[SW8]vlan batch 80 201 203
[SW8]int g0/0/1
[SW8-GigabitEthernet0/0/1]p l a
[SW8-GigabitEthernet0/0/1]p d v 201
[SW8-GigabitEthernet0/0/1]int g0/0/2
[SW8-GigabitEthernet0/0/2]p l a
[SW8-GigabitEthernet0/0/2]p d v 80
[SW8-GigabitEthernet0/0/2]int g0/0/3
[SW8-GigabitEthernet0/0/3]p l a
[SW8-GigabitEthernet0/0/3]p d v 203
SW9
[SW9]vlan batch 90 202 203
[SW9]int g0/0/1
[SW9-GigabitEthernet0/0/1]p l a
[SW9-GigabitEthernet0/0/1]p d v 202
[SW9-GigabitEthernet0/0/1]int g0/0/3
[SW9-GigabitEthernet0/0/3]p l a
[SW9-GigabitEthernet0/0/3]p d v 203
[SW9-GigabitEthernet0/0/3]int g0/0/2
[SW9-GigabitEthernet0/0/2]p l a
[SW9-GigabitEthernet0/0/2]p d v 90
DHCP
[DHCP]vlan batch 10 20 80 90 100 200 201 202 203
[DHCP]int g0/0/0
[DHCP-GigabitEthernet0/0/0]ip add 192.168.100.100 24
[DHCP]ip route-static 0.0.0.0 0.0.0.0 192.168.100.254
ISP
[Internet]int LoopBack 0
[Internet-LoopBack0]ip add 100.1.1.1 32
[Internet-LoopBack0]int g0/0/0
[Internet-GigabitEthernet0/0/0]ip add 60.30.1.1 29
GW
[GW]vlan batch 10 20 100 200 201 202
[GW]int Eth-Trunk 2
[GW-Eth-Trunk2]undo portswitch
[GW-Eth-Trunk2]trunkport GigabitEthernet 0/0/0 to 0/0/1
[GW-Eth-Trunk2]mode lacp-static
[GW]int loopback 0
[GW-LoopBack0]ip add 1.1.1.1 32
二、 单臂路由
GW
[GW]int Eth-trunk 2.10
[GW-Eth-Trunk2.10]d t v 10
[GW-Eth-Trunk2.10]ip add 192.168.10.254 24
[GW-Eth-Trunk2.10]a b e
[GW-Eth-Trunk2.10]int Eth-trunk 2.20
[GW-Eth-Trunk2.20]d t v 20
[GW-Eth-Trunk2.20]ip add 192.168.20.254 24
[GW-Eth-Trunk2.20]a b e
[GW-Eth-Trunk2.20]int Eth-trunk 2.100
[GW-Eth-Trunk2.100]d t v 100
[GW-Eth-Trunk2.100]ip add 192.168.100.254 24
[GW-Eth-Trunk2.100]a b e
[GW-Eth-Trunk2.100]int Eth-trunk 2.200
[GW-Eth-Trunk2.200]description toISP
[GW-Eth-Trunk2.200]d t v 200
[GW-Eth-Trunk2.200]ip add 60.30.1.2 29
[GW-Eth-Trunk2.200]a b e
[GW-Eth-Trunk2.200]int Eth-trunk 2.201
[GW-Eth-Trunk2.201]description toSW8
[GW-Eth-Trunk2.201]d t v 201
[GW-Eth-Trunk2.201]ip add 192.168.201.1 24
[GW-Eth-Trunk2.201]a b e
[GW-Eth-Trunk2.201]int Eth-trunk 2.202
[GW-Eth-Trunk2.202]d t v 202
[GW-Eth-Trunk2.202]ip add 192.168.202.1 24
[GW-Eth-Trunk2.202]a b e
三、 vlanif
SW8
[SW8]undo stp enable
[SW8]int loopback 0
[SW8-LoopBack0]ip add 8.8.8.8 32
[SW8]int vlanif 201
[SW8-vlanif201]ip add 192.168.201.2 24
[SW8-vlanif201]int vlanif 80
[SW8-vlanif80]ip add 192.168.80.254 24
SW9
[SW9]undo stp enable
[SW9]int loopback 0
[SW9-LoopBack0]ip add 9.9.9.9 32
[SW9]int vlanif 202
[SW9-vlanif202]ip add 192.168.202.2 24
[SW9-vlanif202]int vlanif 90
[SW9-vlanif90]ip add 192.168.90.254 24
四、 OSPF
SW8
[SW8]ospf 200 router-id 8.8.8.8
[SW8-ospf-200]area 0
[SW8-ospf-200-area-0.0.0.0]network 192.168.201.0 0.0.0.255
[SW8-ospf-200-area-0.0.0.0]network 192.168.203.0 0.0.0.255
[SW8-ospf-200-area-0.0.0.0]network 192.168.80.0 0.0.0.255
[SW8-ospf-200-area-0.0.0.0]network 8.8.8.8 0.0.0.0
[SW8]int vlanif 203
[SW8]ospf dr-priority 255 #永远为DR
SW9
[SW9]ospf 200 router-id 9.9.9.9
[SW9-ospf-200]area 0
[SW9-ospf-200-area-0.0.0.0]network 192.168.202.0 0.0.0.255
[SW9-ospf-200-area-0.0.0.0]network 192.168.203.0 0.0.0.255
[SW9-ospf-200-area-0.0.0.0]network 192.168.90.0 0.0.0.255
[SW9-ospf-200-area-0.0.0.0]network 9.9.9.9 0.0.0.0
GW
[GW]ospf 200 router-id 1.1.1.1
[GW-ospf-200]area 0
[GW-ospf-200-area-0.0.0.0]network 192.168.201.0 0.0.0.255
[GW-ospf-200-area-0.0.0.0]network 192.168.202.0 0.0.0.255
[GW-ospf-200-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[GW-ospf-200-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[GW-ospf-200-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[GW-ospf-200-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[GW]int Eth-trunk 2.201
[GW-Eth-Trunk2.201]ospf cost 3 #更改cost值用来改变路径
五、 DHCP
DHCP
[DHCP]dhcp enable
[DHCP]ip pool VLAN10
[DHCP-ip-pool-VLAN10]network 192.168.10.0 mask 24
[DHCP-ip-pool-VLAN10]gateway-list 192.168.10.254
[DHCP-ip-pool-VLAN10]dns-list 8.8.8.8
[DHCP-ip-pool-VLAN10]lease day 8
[DHCP-ip-pool-VLAN10]excluded-ip-address 192.168.10.240 192.168.10.253
[DHCP-ip-pool-VLAN10]ip pool VLAN20
[DHCP-ip-pool-VLAN20]network 192.168.20.0 mask 24
[DHCP-ip-pool-VLAN20]gateway-list 192.168.20.254
[DHCP-ip-pool-VLAN20]dns-list 8.8.8.8
[DHCP-ip-pool-VLAN20]lease day 8
[DHCP-ip-pool-VLAN20]static-bind ip-address 192.168.20.100 mac-address 5489-9806-68e7
[DHCP-ip-pool-VLAN20]excluded-ip-address 192.168.20.240 192.168.20.253
[DHCP-ip-pool-VLAN20]int g0/0/0
[DHCP-g0/0/0]dhcp select global
GW
[GW]dhcp enable
[GW]int Eth-Trunk 2.10
[GW-Eth-Trunk2.10]dhcp select relay
[GW-Eth-Trunk2.10]dhcp relay server-ip 192.168.100.100
[GW-Eth-Trunk2.10]int Eth-Trunk 2.20
[GW-Eth-Trunk2.20]dhcp select relay
[GW-Eth-Trunk2.20]dhcp relay server-ip 192.168.100.100
六、 NAT+缺省路由
GW
[GW]acl 2000
[GW-acl-basic-2000]rule permit source any
[GW]int Eth-Trunk 2.200
[GW-Eth-Trunk2.200]nat outbound 2000
[GW]ip route-static 0.0.0.0 0.0.0.0 60.30.1.1
SW8:ip route-static 0.0.0.0 0.0.0.0 192.168.201.1
SW9:ip route-static 0.0.0.0 0.0.0.0 192.168.202.1
七、 HTTP
GW
[GW]int Eth-Trunk 2.200
[GW-Eth-Trunk2.200]nat server protocol tcp global 70.1.1.1 80 inside 192.168.100.101 80
Internet:ip route-static 70.1.1.1 32 60.30.1.2
相关文章:
网络运维学习笔记 017 HCIA-Datacom综合实验01
文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置(IP二层VLAN链路聚合)ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…...
Leetcode350:两个数组的交集 II
题目描述: 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输…...
Ubuntu20.04.2安装Vmware tools
软件版本:Vmware Workstation Pro 17.6.2 操作系统镜像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso镜像安装 没用这种方法,太麻烦 方式2:用apt安装Open VM Tools 如果你使用的是较新的Ubuntu版本(如…...
C++单例模板类,继承及使用
前言: 单例模式可以参考如下文章: 我的设计模式,单例模式的设计和实现 c 单例模式的模板类 - 川野散人 - 博客园 1.为什么需要单例模板类? 场景问题: 如果需要100个单例类就需要设计100个单例模式,代…...
JavaScript函数-函数的返回值
在JavaScript编程语言中,函数是构建复杂逻辑和实现代码复用的关键组件。而函数的返回值则是这些功能的重要组成部分,它允许我们将数据从一个函数传递到另一个地方,从而使得函数更加通用和灵活。本文将深入探讨JavaScript函数返回值的各种特性…...
nodejs:vue 3 + vite 作为前端,将 html 填入<iframe>,在线查询英汉词典
向 doubao.com/chat/ 提问: node.js js-mdict 作为后端,vue 3 vite 作为前端,编写在线查询英汉词典 后端部分(express js-mdict ) 详见上一篇:nodejs:express js-mdict 作为后端ÿ…...
现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能
现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能,每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容,屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便,而…...
《FFTformer:基于频域的高效Transformer用于高质量图像去模糊》
paper:2211.12250 GitHub:kkkls/FFTformer: [CVPR 2023] Effcient Frequence Domain-based Transformer for High-Quality Image Deblurring CVPR 2023 目录 摘要 1、介绍 2、相关工作 2.1 基于深度CNN的图像去模糊方法 2.2 Transformer及其在图…...
ChātGPT赋能的“SolidWorks工具箱”:重塑3D设计效率新标杆
ChātGPT精心打造的“SolidWorks工具箱”正逐步成为3D设计领域中的一颗璀璨新星,其集高效、便捷与创新于一身,为用户带来了前所未有的设计体验。以下是对这一革命性工具箱的深度剖析与美化呈现: 一、核心功能:重塑设计流程&#x…...
Pytorch使用手册-音频数据增强(专题二十)
音频数据增强 torchaudio 提供了多种方式来增强音频数据。 在本教程中,我们将介绍一种应用效果、滤波器、RIR(房间脉冲响应)和编解码器的方法。 最后,我们将从干净的语音合成带噪声的电话语音。 import torch import torchaudio import torchaudio.functional as Fprin…...
基于CNN的FashionMNIST数据集识别3——模型验证
源码 import torch import torch.utils.data as Data from torchvision import transforms from torchvision.datasets import FashionMNIST from model import LeNetdef test_data_process():test_data FashionMNIST(root./data,trainFalse,transformtransforms.Compose([tr…...
Python爬虫处理网页中的动态内容
文章目录 前言一、Python环境搭建1.Python安装2.选择Python开发环境 二、Python爬虫处理网页中的动态内容1. 使用 Selenium 库2. 使用 Pyppeteer 库3. 分析 API 请求 前言 在网页中,动态内容通常是指那些通过 JavaScript 在页面加载后动态生成或更新的内容…...
洛谷P1135多题解
解法1:BFS,有n个节点每个节点最多被访问一次,所以BFS时间复杂度为O(n)。注意ab的特判。 #include<iostream> #include<cstring> #include<queue> using namespace std; const int N 205; int n, a, b; int k[N], s[N]; b…...
用AI写游戏3——deepseek实现kotlin android studio greedy snake game 贪吃蛇游戏
项目下载 https://download.csdn.net/download/AnalogElectronic/90421306 项目结构 就是通过android studio 建空项目,改下MainActivity.kt的内容就完事了 ctrlshiftalts 看项目结构如下 核心代码 MainActivity.kt package com.example.snakegame1// MainA…...
Python 错误和异常处理
目录 try-except块 例子: 输出: 捕获多种异常 例子: else和finally 例子: 输出: 自定义异常 例子: 输出: 好的,简单来说,错误和异常处理是编程中用来处理程序…...
论文解读 | AAAI'25 Cobra:多模态扩展的大型语言模型,以实现高效推理
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 个人信息 作者:赵晗,浙江大学-西湖大学联合培养博士生 内容简介 近年来,在各个领域应用多模态大语言模型(MLLMs&…...
DPVS-3: 双臂负载均衡测试
测试拓扑 双臂模式, 使用两个网卡,一个对外,一个对内。 Client host是物理机, RS host都是虚拟机。 LB host是物理机,两个CX5网卡分别在两个子网。 配置文件 用dpvs.conf.sample作为双臂配置文件,其中…...
Qt 中集成mqtt协议
一,引入qmqtt 库 我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台时 方便,直接编译就行了。 原始仓库路径:https://github.com/emqx/qmqtt/tree/master 二,使用 声明一个单例类,将订阅到…...
C语言图结构学习笔记
1. 图的定义 图(Graph)是一种数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象及其相互关系。图可以是有向图(Directed Graph)或无向图(Undi…...
记一次复杂分页查询的优化历程:从临时表到普通表的架构演进
1. 问题背景 在项目开发中,我们需要实现一个复杂的分页查询功能,涉及大量 IP 地址数据的处理和多表关联。在我接手这个项目的时候,代码是这样的 要知道代码里面的 ipsList 数据可能几万条甚至更多,这样拼接的sql,必然是要内存溢出的,一味地扩大jvm参数不…...
架构师面试(六):熔断和降级
问题 在千万日活的电商系统中,商品列表页服务通过 RPC 调用广告服务;经过统计发现,在最近10秒的时间里,商品列表页服务在对广告服务的调用中有 98% 的调用是超时的; 针对这个场景,下面哪几项的说法是正确的…...
细说 Java 引用(强、软、弱、虚)和 GC 流程(二)
一、前文回顾 在 细说Java 引用(强、软、弱、虚)和 GC 流程(一) 我们对Java 引用有了总体的认识,本文将继续深入分析 Java 引用在 GC 时的一些细节。 还是从我们在前文中提到的引用流程图里说起,这里不清…...
【深度学习】Unet的基础介绍
U-Net是一种用于图像分割的深度学习模型,特别适合医学影像和其他需要分割细节的任务。如图: Unet论文原文 为什么叫U-Net? U-Net的结构像字母“U”,所以得名。它的结构由两个主要部分组成: 下采样(编码…...
Python--函数进阶(下)
3. 返回值与print的辨析 3.1 返回值的作用 return:将结果传递给调用者,可后续处理。print:仅输出到控制台,不保留数据。 def add(a, b):return a bresult add(3, 4) # 结果存储在result中 print(result) # …...
ROS2机器人开发--服务通信与参数通信
服务通信与参数通信 在 ROS 2 中,服务(Services)通信和参数(Parameters)通信是两种重要的通信机制。服务是基于请求和响应的双向通信机制。参数用于管理节点的设置,并且参数通信是基于服务通信实现的。 1 …...
DeepSeek写贪吃蛇手机小游戏
DeepSeek写贪吃蛇手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端贪吃蛇H5文件: 要求 蛇和食物红点要清晰,不超过屏幕外 下方有暂停和重新…...
【开源项目】分布式文本多语言翻译存储平台
分布式文本多语言翻译存储平台 地址: Gitee:https://gitee.com/dreamPointer/zza-translation/blob/master/README.md 一、提供服务 分布式文本翻译服务,长文本翻译支持流式回调(todo)分布式文本多语言翻译结果存储服…...
代码随想录刷题day29|(栈与队列篇:队列)225.用队列实现栈
目录 一、队列基本知识 二、队列在Java中的实现 1.Queue 2.Deque ①实现普通队列 ②实现栈 ③实现双端队列 3.基于底层数据结构 4.组合模式 三、相关算法题目 思路 代码 四、栈和队列总结 一、队列基本知识 队列只能在队尾添加元素,在队头删除元素&a…...
Python安全之反序列化——pickle/cPickle
一. 概述 Python中有两个模块可以实现对象的序列化,pickle和cPickle,区别在于cPickle是用C语言实现的,pickle是用纯python语言实现的,用法类似,cPickle的读写效率高一些。使用时一般先尝试导入cPickle&…...
Deepin(Linux)安装MySQL指南
1.下载 地址:https://downloads.mysql.com/archives/community/ 2.将文件解压到 /usr/local 目录下 先cd到安装文件所在目录再解压,本机是cd /home/lu01/Downloads sudo tar -xvJf mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local3.创建软链…...
