当前位置: 首页 > news >正文

WLAN配置实验

本文记录了WLAN配置实践的过程,该操作在华为HCIA中属于相对较复杂的实验,记录过程备忘。这里不就WLAN原理解释,仅进行配置实践,可以作为学习原理时候的参考。本文使用华为ENSP进行仿真。实验拓扑图如下:

image-20231210011047594

1.WLAN工作流程

image-20231209095723691

2.模拟器实验操作

步骤0 :准备工作

在配置WLAN之前,需要确保基本网络的连通性,这里在ENSP中使用的WLAN拓扑如下,采用瘦AP模式,由路由器上配置DHCP,LSW1进行DHCP中继,AC采用旁挂式。设置两个VLAN,其中VLAN100 控制VLAN 传输CAPWAP协议,VLAN200是业务VLAN。其中LSW2作为二层交换机使用,LSW1作为三层交换机使用。

  • ap不用做特别配置,刚上线时候外联端口是hybrid类型,使用POE+标准(802.3at)
image-20231209102026376
  • SW2配置

    [SW2]vlan batch 100 200  # 创建业务和数据VLAN
    [SW2]int g0/0/2
    [SW2-GigabitEthernet0/0/2]port link-type trunk
    [SW2-GigabitEthernet0/0/2]port trunk allow-pass vlan 100 200# AP刚发出的帧是不带标记的,为了让帧能达到VLAN100对应的三层接口,
    # 需要打上标记,因此配置PVID100
    [SW2-GigabitEthernet0/0/2]port trunk pvid vlan 100# 这里不能配置PVID100,否则AP数据从0/0/1口出来后会被剥离VLAN100标签,
    # 无法找到VLAN100三层口
    [SW2]interface GigabitEthernet0/0/1
    [SW2-GigabitEthernet0/0/1] port link-type trunk
    [SW2-GigabitEthernet0/0/1] port trunk allow-pass vlan 100 200
    
  • SW1配置

    [SW1]vlan batch 100 200[SW1]interface GigabitEthernet0/0/2
    [SW1-GigabitEthernet0/0/2]port link-type trunk
    [SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all[SW1]interface GigabitEthernet0/0/3
    [SW1-GigabitEthernet0/0/3] port link-type trunk
    [SW1-GigabitEthernet0/0/3] port trunk allow-pass vlan all[SW1]interface GigabitEthernet0/0/1
    # 需要配置为aceess,数据通向路由器时候标签被去除,否则路由器不认识包
    # 如果要配置为trunk,则需要配置PVID移除标签
    [SW1-GigabitEthernet0/0/1]port link-type access 
    [SW1-GigabitEthernet0/0/1]port default vlan 1000
    
  • AC配置

    [AC]vlan batch 100 200
    [AC-GigabitEthernet0/0/1] port link-type trunk
    [AC-GigabitEthernet0/0/1] port trunk allow-pass vlan all
    
  • 配置DHCP中继

    • SW1上配置接口类型

      [SW1]interface vlanif100
      [SW1-Vlanif100]ip address 10.1.1.2 24# 交换机与路由器之间建立三层逻辑口,将g0/0/1划入VLAN1000
      [SW1]vlan 1000
      [SW1]interface GigabitEthernet0/0/1
      [SW1-GigabitEthernet0/0/1]port link-type access 
      [SW1-GigabitEthernet0/0/1]port default vlan 1000
      
    • R1配置相关接口

      [AR1]interface GigabitEthernet0/0/0
      [AR1-GigabitEthernet0/0/0] ip address 10.1.12.1 255.255.255.0 
      

      此时可以在路由器上ping通交换机端口

      image-20231209111758998

      在SW2 g0/0/1上抓包,可以看到DHCP Discocery广播

      image-20231208194020913

      但此时交换机不会将该DHCP广播帧泛洪到路由器。因为从SW2 g0/0/1上传递出来的DHCP Discocery报文是打着VLAN100标签,只能到达VLANif100对应目的地,而SW1的g0/0/1属于VLANif 1000,因此必须通过三层转发才行。

      但是该广播没法转发到路由器DHCP服务器,需要在SW1上开启DHCP中继。继续在SW1上进行配置:

    • SW1上配置中继

      [SW1]dhcp enable
      [SW1]int vlan 100
      [SW1-Vlanif100]dhcp select relay  # 配置中继后,广播变成单播
      [SW1-Vlanif100]dhcp relay server-ip 10.1.12.1 # 设置DHCP服务器地址
      

      在SW1 g0/0/1上进行抓包,可以看到已经从上面的广播变为单播,但此时只是AP发往路由器,并没有路由器给AP的回复。

      image-20231209232153199

    • 在路由器上开启DHCP功能

      [AR1]dhcp enable # 开启DHCP功能
      [AR1]ip pool 1 # 配置DHCP地址池
      [AR1-ip-pool-1]network 10.1.1.0 mask 255.255.255.0
      [AR1-ip-pool-1]excluded-ip-address 10.1.1.1  # 排除一个地址给AC用
      [AR1-ip-pool-1]gateway-list 10.1.1.254 # 配置AP网关地址
      [AR1]interface g0/0/0
      [AR1-GigabitEthernet0/0/0]dhcp select global  # 在接口上开启地址分配
      
    • R1和SW1上配置路由

      • AR
      [AR1]ospf router-id 1.1.1.1
      [AR1-ospf-1]area 0
      # 简化起见,全网通告
      [AR1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255 
      
      • SW1
      [SW1]ospf router-id 2.2.2.2
      [SW1-ospf-1]area 0 
      [SW1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255
      

      在SW1 g0/0/1上进行抓包,可以看到服务器回复的DHCP Offer:

      image-20231209235615503

      展开DHCP服务器发给中继的DHCP Offer消息,可以看到以下关键信息:

      image-20231210000040740

      中继是替客户端AP获取动态地址,因此此处抓到的都是中继和DHCP服务器之间的DHCP交互,而且经过中继后是单播形式。

      在AP上查看,现在AP已经获得了DHCP动态分配的IP地址,即上面看到的10.1.1.253/24

      image-20231210000444267

步骤1:AP上线

FIT AP需完成上线过程,AC才能实现对AP的集中管理和控制,以及业务下发。为了AP能上线,AC需要配置如下内容:

image-20231210005425571

AP的上线过程包括如下步骤:

1.1 AP获取IP地址;

这一步的操作在步骤0中已经完成,在实验中可以看到AP1已经获取到了10.1.1.253/24

1.2 AP发现AC并与之建立CAPWAP隧道

在AP通过DHCP得到自己的地址后,就会通过广播发送CAMWAP协议去找AC,此时在SW2 g0/0/1开启抓包,可以看到:

image-20231210001250710

注意:如果AP和AC不在同一个网段,这个时候AP就不可能用广播去寻找AC,而是单播寻找。在R1的DHCP中需要增加option43配置:

[AR1]ip pool 1

[AR1-ip-pool-1]option 43 ip-address AC地址

这一步受限于模拟器无法做出效果,真机中可以。

上面的报文中可以看到AC并未回复,接下来配置AC:

[AC]interface Vlanif 100
[AC-Vlanif100]ip address 10.1.1.1 24
[AC]capwap source interface Vlanif 100 # 配置CAPWAP源地址
1.3 AP接入控制
image-20231210004828327

AC上配置监视域的模版:

[AC]wlan 
[AC-wlan-view]regulatory-domain-profile name ctr  # 配置监控域模版,ctr是自定义名字
[AC-wlan-regulate-domain-ctr]country-code cn # 国家码,每个国家发射功率不同

AC上配置AP组,方便需要对多个AP进行分组管控:

[AC]wlan 
[AC-wlan-view]ap-group name ctr   # 建立AP组,ctr是自定义名字
Info: This operation may take a few seconds. Please wait for a moment.done.
[AC-wlan-ap-group-ctr]regulatory-domain-profile ctr # 将监控域模版挂入需要的AP组
Warning: Modifying the country code will clear channel, power and antenna gain c
onfigurations of the radio and reset the AP. Continue?[Y/N]:y

AC上配置AP信息,可以用AP序列号SN认证,也可以用AP MAC认证,这里用AP MAC认证,查询AP MAC:

image-20231210004022701

在AC上配置

[AC]wlan
[AC-wlan-view]ap-id 1 ap-mac 00e0-fc41-58d0 # 配置AP的MAC 
[AC-wlan-ap-1]ap-group ctr # 挂到AP组,让AP上线

查看一下AP是否上线,看到状态nor为正常上线

image-20231210004426991

此时在AP上也弹出上线消息,命令提示符转换为BSSID:

image-20231210005107528

在在SW2 g0/0/1开启抓包,可以看到,完整的CAMWAP交互报文:

image-20231210004804907

  • CAPWAP隧道维持。
image-20231210005313380
步骤2 WLAN参数下发

需要在AC上建立如下模版:

image-20231210010115264
2.1 建立安全模版
[AC]wlan
[AC-wlan-view]security-profile name ctr   # ctr是自定义名字
# psk:共享秘钥方式  huawei@123:自定义的秘钥   aes:使用高级加密方式
[AC-wlan-sec-prof-ctr]security wpa-wpa2 psk pass-phrase huawei@123 aes
2.2 建立SSID模版
[AC]wlan
[AC-wlan-view]ssid-profile name  ctr 
[AC-wlan-ssid-prof-ctr]ssid ctr   # ctr为自定义名称
2.3 建立VAP模版
[AC]wlan
[AC-wlan-view]vap-profile name ctr
[AC-wlan-vap-prof-ctr]ssid-profile ctr   # 把SSID模版挂上去
Info: This operation may take a few seconds, please wait.done.
[AC-wlan-vap-prof-ctr]security-profile ctr # 把安全模版挂上去
Info: This operation may take a few seconds, please wait.done.
[AC-wlan-vap-prof-ctr]service-vlan vlan-id 200  # 业务VLAN,数据上来后会打上VLAN200标签
Info: This operation may take a few seconds, please wait.done.
2.4 下发参数
[AC]wlan 
[AC-wlan-view]ap-group name ctr
[AC-wlan-ap-group-ctr]vap-profile ctr wlan 1 radio all  # 下发安全、SSID、射频频段
Info: This operation may take a few seconds, please wait...done.

下发配置后,模拟器中的拓扑图上WLAN区域可以看到变化,不得不说华为的ENSP模拟得挺好。

image-20231210011154256

此时在模拟器中添加一个笔记本电脑,连接WLAN,发现地址获取不到:

image-20231210011418319

原因在于业务VLAN200在SW1中没有配置

[SW1]interface Vlanif 200
[SW1-Vlanif200]ip address 192.168.1.254 24
[SW1-Vlanif200]dhcp select interface  # 通过接口自动分配DHCP地址

此时笔记本WLAN已经连接上

image-20231210011845654

ping网关能通:

image-20231210012059953

此时业务数据不会经过AC(direct-forward),如果所有业务都需要先通过隧道方式到达AC再转发,则需要在AC上如下配置:

[AC]wlan 
[AC-wlan-view]vap-profile name ctr
[AC-wlan-vap-prof-ctr]forward-mode tunnel 
Warning: This action may cause service interruption. Continue?[Y/N]y

此时在笔记本上ping 192.168.1.254,在SW2 g0/0/1口抓ICMP包,可以看到先找AC后找网关的过程,使用的使IPOverIP技术

image-20231210013443824

步骤3 再增加一个AP,测试漫游功能

查看AP2 MAC

image-20231210013724099

在AC上加入AP2

[AC]wlan
[AC-wlan-view]ap-id 2 ap-mac 00e0-fc87-2990 
[AC-wlan-ap-2]ap-group ctr
Warning: This operation may cause AP reset. If the country code changes, it willclear channel, power and antenna gain configurations of the radio, Whether to c
ontinue? [Y/N]:y
Info: This operation may take a few seconds. Please wait for a moment.. done.

在SW2上做相应配置:

[SW2]interface g0/0/3
[SW2-GigabitEthernet0/0/3]port link-type trunk 
SW2-GigabitEthernet0/0/3]port trunk pvid vlan 100
[SW2-GigabitEthernet0/0/3]port trunk allow-pass vlan all

此时在AC上可以看到新增加的AP:

image-20231210014528810

模拟器中AP2也开始发射信号

image-20231210014555326

在模拟器上将笔记本电脑从AP1区域移动到AP2区域,在笔记本上持续ping 192.168.1.254,可以发现不掉包,即在ESS内,可以不改变SSID进行漫游切换

image-20231210014958912 image-20231210015021046

相关文章:

WLAN配置实验

本文记录了WLAN配置实践的过程,该操作在华为HCIA中属于相对较复杂的实验,记录过程备忘。这里不就WLAN原理解释,仅进行配置实践,可以作为学习原理时候的参考。本文使用华为ENSP进行仿真。实验拓扑图如下: 1.WLAN工作流程…...

java_web接收前端传的excel文件读取数据

#本次做一个将患者数据导入到某个模块的功能&#xff0c;前期集成的代码时不时出现异常&#xff0c;本次进行修改记录 //controller层/*** 导入患者数据*/RejectReplayRequestPostMapping("/importData")public Result<?> importData(HttpServletRequest req…...

在Vue开发中v-if指令和v-show指令的使用介绍和区别及使用场景

一、条件渲染 v-if v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。 <h1 v-if"awesome">Vue is awesome!</h1>v-else 你也可以使用 v-else 为 v-if 添加一个“else 区块”。 <h1 v-if"awesome"&g…...

Power Query是啥

Power Query是一种用于数据获取、转换和整理的功能强大的工具&#xff0c;它是Microsoft Excel和Power BI中的一个组件。Power Query可以帮助用户从各种数据源中获取数据&#xff0c;并进行数据清洗、转换和整理&#xff0c;以便进一步分析和可视化。 使用Power Query&#xf…...

在k8s中部署nfs-client-provisioner

1、部署过程 1.1、环境依赖 在部署nfs-client-provisioner之前&#xff0c;需要先部署nfs服务。 因为&#xff0c;nfs-client-provisioner创建的pv都是要在nfs服务器中搭建的。 本示例中的nfs server的地址如下&#xff1a; [rootnode1 /]# showmount -e Export list for …...

23.12.10日总结

周总结 这周三的晚自习&#xff0c;学姐讲了一下git的合作开发&#xff0c;还有懒加载&#xff0c;防抖&#xff0c;节流 答辩的时候问了几个问题&#xff1a; 为什么在js中0.10.2!0.3? 在js中进行属性运算时&#xff0c;会出现0.10.20.300000000000000004js遵循IEEE754标…...

持续集成交付CICD:通过API方式上传Nexus制品

目录 一、实验 1.通过API方式上传Nexus制品 二、问题 1.如何通过API方式上传PNG图片 2.如何通过API方式上传tar.gz 与 ZIP文件 3.如何通过API方式上传Jar file文件 4.如何通过API方式上传制品&#xff08;maven类型的制品&#xff09;文件 5.如何下载制品 一、实验 1.通…...

Hadoop学习笔记(HDP)-Part.14 安装YARN+MR

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …...

reinforce 跑 CartPole-v1

gym版本是0.26.1 CartPole-v1的详细信息&#xff0c;点链接里看就行了。 修改了下动手深度强化学习对应的代码。 然后这里 J ( θ ) J(\theta) J(θ)梯度上升更新的公式是用的不严谨的&#xff0c;这个和王树森书里讲的严谨公式有点区别。 代码 import gym import torch from …...

【VRTK】【VR开发】【Unity】13-攀爬

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 VRTK提供两个预制件实现攀爬 Climbing Controller,用于控制Player的物理义体Climbable Interactable,用于设置可攀爬对象【设置Climbing Controller…...

华为OD机试真题-求幸存数之和-2023年OD统一考试(C卷)

题目描述&#xff1a; 给一个正整数列 nums&#xff0c;一个跳数 jump&#xff0c;及幸存数量 left。运算过程为&#xff1a;从索引为0的位置开始向后跳&#xff0c;中间跳过 J 个数字&#xff0c;命中索引为J1的数字&#xff0c;该数被敲出&#xff0c;并从该点起跳&#xff…...

python pyaudio实时读取音频数据并展示波形图

python pyaudio实时读取音频数据并展示波形图 下面代码可以驱动电脑接受声音数据&#xff0c;并实时展示音波图&#xff1a; import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation import pyaudio import wave import os import op…...

【算法系列篇】递归、搜索和回溯(二)

文章目录 前言1. 两两交换链表中的节点1.1 题目要求1.2 做题思路1.3 代码实现 2. Pow(X,N)2.1 题目要求2.2 做题思路2.3 代码实现 3. 计算布尔二叉树的值3.1 题目要求3.2 做题思路3.3 代码实现 4. 求根节点到叶结点数字之和4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面为大…...

Ubuntu下安装SDL

源码下载地址&#xff08;SDL version 2.0.14&#xff09;&#xff1a;https://www.libsdl.org/release/SDL2-2.0.14.tar.gz 将源码包拷贝到系统里 使用命令解压 tar -zxvf SDL2-2.0.14.tar.gz 解压得到文件夹 SDL2-2.0.14 进入文件夹 执行命令 ./configure 执行命令 make…...

创建vue项目:vue脚手架安装、vue-cli安装,vue ui界面创建vue工程(vue2/vue3),安装vue、搭建vue项目开发环境(保姆级教程二)

今天讲解 Windows 如何利用脚手架创建 vue 工程&#xff0c;以及 vue ui 图形化界面搭建 vue 开发环境&#xff0c;这是这个系列的第二章&#xff0c;有什么问题请留言&#xff0c;请点赞收藏&#xff01;&#xff01;&#xff01; 文章目录 1、安装vue-cli脚手架2、vue ui创建…...

【3】密评-物理和环境安全测评

0x01 依据 GB/T 39786 -2021《信息安全技术 信息系统密码应用基本要求》针对等保三级系统要求&#xff1a; 物理和环境层面&#xff1a; a&#xff09;宜采用密码技术进行物理访问身份鉴别,保证重要区域进入人员身份的真实性&#xff1b; b&#xff09;宜采用密码技术保证电子门…...

笨爸爸工房,我们在校园|“小鲁班”,铸未来

为了响应国家号召&#xff0c;将劳动教育课程真正实现融入校园生活&#xff0c;笨爸爸工房已与洛阳市西下池小学、洛阳市第一实验小学西工校区、洛阳市西工区第二实验小学、洛阳第二外国语学校&#xff08;兰溪校区&#xff09;、洛阳市睿源幼儿园&#xff0c;这4所学校及1家幼…...

RPC 集群,gRPC 广播和组播

一、集群抽象&#xff1a;cluster 它是指我们在调用远程的时候&#xff0c;尝试解决&#xff1a; 1、failover:即引入重试功能&#xff0c;但是重试的时候会换一个新节点 2、failfast: 立刻失败&#xff0c;不需要重试 3、广播&#xff1a;将请求发送到所有的节点上 4、组…...

OpenSSL SSL_read: Connection was reset, errno 10054

fatal: unable to access ‘https://github.com/vangleer/es-big-screen.git/’: OpenSSL SSL_read: Connection was reset, errno 10054 解决方法&#xff1a;git config --global http.sslVerify “false” 参考链接&#xff1a; https://github.com/Kong/insomnia/issues/2…...

【springboot】整合redis和定制化

1.前提条件:docker安装好了redis,确定redis可以访问 可选软件: 2.测试代码 (1)redis依赖 org.springframework.boot spring-boot-starter-data-redis (2)配置redis &#xff08;3&#xff09; 注入 Resource StringRedisTemplate stringRedisTemplate; 这里如果用Autowi…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...