AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
1、了解FITAP与AC的建立过程
之前我们已经知道了FATAP与FIT是一对双胞胎一样的兄弟,FAT哥哥能够直接独立使用当AP桥接、路由器等,而弟弟FIT则比较薄弱,独自发挥不出功效,需要一位师傅(AC)来带领,那么弟弟FIT如何能够正常找到一位好师傅(AC)呢,今天我们来了解了解FIT AP上线的过程。
CAPWAP协议
竟然FITAP需要寻找AC,那么他们之间就有一种协议来构建通信,这个协议就是CAPWAP,CAPWAP(全称ControlAnd Provisioning of Wireless Access Points Protocol Specification无线接入点控制和配置协议)是由IETE定义出来的公有标准,实现以下几个重要功能
1、包括AC对AP的自动发现以及状态维护
2、AC对AP进行管理、业务配置下发
3、客户端的信息通过AP发送CAPWAP协议告诉AC,AC进行维护
4、客户端的业务数据也可以通过CAPWAP交给AC进行转发(可选,隧道转发才需要用到)
CAPWAP的报文结构如下,了解这个对于我们后续排查上线还是有一定帮助的。
「华为 eNSP 模拟器合集】」,复制整段内容,打开最新版「夸克APP」即可获取。
链接:https://pan.quark.cn/s/5c17bfbc4e00
1、CAPWAP是基于UDP端口的应用层协议。
2、CAPWAP协议传输层运输两种类型的负载:
数据消息,封装转发无线帧 。
控制消息,管理AP和AC之间交换的管理消息,通常AP上线就用到控制消息。
3、CAPWAP数据和控制报文基于不同的UDP端口发送:
控制报文端口为UDP端口5246。
数据报文端口为UDP端口5247。
4、DTLS加密是可选的,默认华为设备是没有开启。
FIT AP与AC建立的过程
1、首先AP需要获取到一个IP地址,用于跟AC通信(IP地址获取的方法一个是DHCP下发,另外一个则是AP手动静态设置),并且获取到的IP地址与AC之间是可通信的。(当然这里还分为AP于AC在同一个VLAN网段,以及不同VLAN网段,我们称为二层上线与三层上线,这个后续我会以实际案例讲解,这里简单提一下,大家有个印象)对于DHCP的获取过程就不在讲述了,可以参考博主的公众号。
2、当AP获取到地址后,AP会启用CAPWAP发现机制,会出现如下几个场景
(1)AP、AC在同一VLAN网段场景:AP发送Discovery Reqiest广播报文自动发现同一网段AC,AC收到后会相应一个Discovery Response给AP,AP收到后就开始于AC建立CAPWAP隧道。
(2)AP、AC夸三层VLAN网段场景:这时候需要DHCP参数中携带option 43参数告诉AP,AC的地址,AP通过option43中携带的地址参数,直接发送一个发送DiscoveryRequest单播报文,AC收到后会相应一个DiscoveryResponse给AP,AP收到后就开始于AC建立CAPWAP隧道。
(3)AP手动设置地址场景:则直接跳过发现机制,直接向AC发送Discovery Request单播报文,AC回应后,开始建立隧道
(4)AP在发送广播报文寻找AC的过程会连续发送2次,如果2次没有AC响应,这认为没有AC存在,自动重启。
3、DTLS握手协议(可选),AP与AC在建立过程中,如果AC配置了DTLS加密传输UDP报文,那么后续报文则在加密过程中建立,默认情况下AC是没有开启,平时项目中也用的少,作为一个了解。
4、Join阶段:AC跟AP开始建立控制通道,交互过程中,AP会发送给AC join request AC回应的Join response报文中会携带AC当前的版本号,以及AP升级版本,握手报文间隔/超时时间,控制报文优先级等信息。AC会检查AP的当前版本,如果AP的版本无法与AC要求的相匹配时,AP和AC会进入ImageData状态做固件升级,以此来更新AP的版本,如果AP的版本符合要求,则进入configuration状态。
5、image date(可选):AP根据协商参数判断当前版本是否是最新版本,如果不是最新版本,则AP将在CAPWAP隧道上开始更新软件版本。AP在软件版本更新完成后重新启动,重复进行AC发现、建立CAPWAP隧道、加入过程。
6、Configuration:进入Configuration状态后,AP会发送一个configuration status request报文到AC,该信息中包含了现有AP的配置,AC收到后发现AP与现在AC的配置要求不符合,会通过回复configuration status response通知AP来同步。AP同步的时候,会发送configuationupdate request来请求信的配置,AC则回应confguation update response来下发配置个AP,让AP进行同步。
7、Data Check:Configuration阶段完成后,AP发送change state eventrequest信息,其中包含了radio,code、配置信息等,当AC接收到change state event request后,开始回应changestate event response 。如果出现radio或者配置不同步的话,则会在response里面告知AP配置不同步,这时候AP会发送configuationupdate request来请求信的配置,AC则回应confguation update response来下发配置个AP,让AP进行同步。同步一致的话,表示已经完成DateCheck 管理隧道建立的过程,开始进入run状态。
8、Run(最终正常工作状态):AP发送keepalive到AC,AC收到keepalive后表示数据隧道建立,AC回应keepalive,AP进入“normal”状态,开始正常工作。同时AP发送echorequest报文给AC,宣布建立好CAPWAP管理隧道并启动echo发送定时器和隧道检测超时定时器以检测管理隧道时候异常。
(对于AP上线有个很好的了解,对于我们部署无线网络那是事半功倍的,无线的第一大难点在于上线,至于后续业务50%的中小企业需求就是配置一个SSID、一个密码、需要漫游就完事了,博主这不管是从协助客户部署跟解决无线故障、以及私活部署大部分的都是卡在上线这块,其次就是高级认证、以及优化干扰这。)
进入正式配置之前,我们先了解下AC的设备以及如何初始化
1、console登陆方法
作为经常要维护、调试各类设备的朋友,那console线是必不可少的(博主建议大家选这样一体的,兼容性很好,别用转接的)
(博主用一体的一根三年多了 还没坏过,携带方便,如果不知道如何选择的朋友,可以公众号回复console线,博主推荐一个TB链接,一个JD链接,都性价比高的)
连接终端程序可以是 SecureCRT、XSHELL6、超级终端、putty,这里以SecureCRT为例
串行里面,端口号就电脑设备管理显示的COM3,波特率位9600,其余默认,注意流控这块都不选择。
PS:全新设备第一次console登陆AC是要求设置密码的(必须要求字母数字符号中的两种出现,区分大小写),而并不是要求你输入密码,这里别搞混了(FAT AP第一次进入也是)
2、SSH/WEB登陆
接任意一个电口,把电脑网卡设置成169.254.1.2,华为AC出厂地址为169.254.1.1,可以直接SSH 169.254.1.1 或者浏览器直接输入https://169.254.1.1
默认账号为admin,密码位admin@huawei.com,浏览器第一次登陆进去强制要求改密码,SSH则不需要
博主经验分享:有console线的情况线可以直接用console来开局设备,如果没有console,那么用SSH或者WEB的时候,可以把其中一个口当管理口,并且修改默认地址169.254.1.1为其他,可以是169.254.1.2~254任意一个 或者其他网段,为什么建议修改呢,因为华为AP默认出厂地址也是169.254.1.1,很有可能把设备都接上去了,当访问169.254.1.1的时候会出现访问不了WEB,或者输入了密码没反应。
博主经验分享:这里AP与AC的建立过程了解完毕,看着建立状态特别多,那么我们在工作中部署AP上线需要注意的几个地方,这里提一下,对于AP上线很有帮助哦。拿到客户的需求后,我们要了解客户组网环境来判断AP跟AC上线需要采取什么方式,这里博主以案例形式举例几个工作中常见的场景。
(1)AC与AP都在同一VLAN网段的场景(这里省去外网以及有线部分,我们这里主要讲解无线上线这块)
当AP与AC在同一个VLAN网段环境下属于最简单的环境了,只需要交换机接AP以及AC的接口配置划分到一个VLAN内即可,然后AC配置一个固定IP(必须是固定,这个地址用于CAPWAP通信),然后开启DHCP给AP分配地址(DHCP可以是三层交换机、路由器、AC上面。)这里我们以中间拓扑来举例。PS:关于常见的数通路由交换技术需要有一定了解,无线部分不会在详细讲解这一块。
1、5700交换机的配置
vlan 100
#
interfaceGigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 100
#
interfaceGigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 100
2、3700交换机的配置
vlan 100
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 100
#
interface Ethernet0/0/2
port link-type access
port default vlan 100
#
interface Ethernet0/0/3
port link-type access
port default vlan 100
3、AC的配置
(1)VLAN、DHCP以及地址配置,该地址用于CAPWAP隧道建立使用。
vlan batch 100
#
interfaceGigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 100
#
dhcp enable
#
interface Vlanif100
ip address 192.168.100.1 255.255.255.0
dhcp select interface
(2)指定CAPWAP使用哪个地址,这样后续AP与AC建立CAPWAP隧道就使用接口地址,这里位192.168.100.1
capwap source interface Vlanif 100
可以看到现在没有任何一台AP上线。
Ap已经是获取到了地址并且跟AC也能通信,但是没有上线。
我们抓包可以看到 两台AP都发送了 CAPWAP的discovery request来寻找AC,AC跟AP在一个网段内,按之前的报文交互流程AC应该收到了,而且会回应一个Discovery Response给AP,但从抓包来看并没有,这就涉及到我们常见上线的第一个难题了,AP地址也获取到了,跟AC通信也正常,但是不上线。
在这里就要了解下华为对于AP默认是开启了认证的,可以通过display ap global configuration 看到默认是采用的mac-auth,也就是说只有AC里面添加了AP的MAC地址信息,才能在AC的列表里面看到,否则则出现在未认证列表里面。
display ap unauthorized record通过该命令可以看到有两台未认证的设备存在,我们来深入看下discovery request的包里面包含什么。
在包里面我们可以发现AP携带了产商、型号、序列号以及自身MAC地址,当AC收到后,它会查看自己WLAN配置里面是否有该AP的信息存在,如果没有则不会让其出现在AP列表里面,放入未认证列表。
解决办法:
(1)把认证方式改成不认证
[AC6005]wlan
[AC6005-wlan-view]apauth-mode no-auth
(2)手动确认
[AC6005-wlan-view]ap-confirm(后面可以跟MAC、SN、ALL),display ap unauthorizedrecord查看未授权AP信息
然后复制MAC,SN,而ALL的意思是则全部确认为授权信息
(3)手动把AP信息输入进去
[AC6005-wlan-view]ap-id 1 ap-mac 00e0-fc2e-56f0
[AC6005-wlan-ap-0]ap-name1F-1A
那么在平时工作中怎么去使用呢,博主的经验就是如果施工方好说话,把每个地点装的AP的MAC/SN信息都记录成表格形式了,那么我会采用手动信息输入方式上线,手动输入上线的好处在于,第一个可以排序,第二个可以在输入的过程中命名。
默认情况下AP的命名是以MAC地址来命名的,采用手动输入方式的话,可以直接命名,后续AP上线就直接以名字显示,当后续出现故障,很快就能定位到是哪台AP,在什么位置。
博主也是非常建议大家采用这种方式,虽然前期麻烦点,但是后期维护真心省不少事,特别是楼层多的场景,没记录信息的时候找一个AP可能得花费不少体力、精力。那么另外博主常用到的就是不认证了,规模不大的场景我都会选择不认证,AP少,好找,前期省不少事情。至于手动确认的方式博主没用过,暂时想不到什么场景用的少。(后续试验环境都一律采用不认证方式)
[AC6005-wlan-view]ap auth-mode no-auth (缺省模式是ap auth-mode mac-auth)
这时候在看AP就已经都上来了,这还只是涉及到了我们一种上线方式,二层上线,篇幅有限,在后续我们还会讲解到AP与AC建立CAPWAP过程中的抓包,分析每个包里面的内容,以及AP在AC中的状态显示,还有三层上线、AP静态地址配置等。
WEB操作单独说明(有的朋友喜欢WEB操作,命令行太复杂了,这里单独加上)
1、登陆WEB,默认地址169.254.1.1,电脑设置成169.254.1.2即可。默认账号admin 密码 admin@huawei.com这里说一个模拟器也是支持WEB的,可以直接桥接到本地即可(用云功能)
2、创建VLAN与VLANIF
3、开启DHCP
4、接口配置成trunk
这里记得点击那个加号
5、配置CAPWAP source接口
指定VLAN 100为capwap 原地址,认证方式可以采取MAC认证、SN认证、不认证,如果是MAC认证、或者SN认证可以直接这里添加AP即可
6、未认证的设备在AP配置里面可以看到
准备工作:(1)能以模拟器模拟的实验都会用模拟器来演示,所以大家模拟器提前安装好 (2)不能模拟器的博主会以真机方式讲解,博主目前AC设备没有,有一台AR加AP。
相关文章:

AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
1、了解FITAP与AC的建立过程 之前我们已经知道了FATAP与FIT是一对双胞胎一样的兄弟,FAT哥哥能够直接独立使用当AP桥接、路由器等,而弟弟FIT则比较薄弱,独自发挥不出功效,需要一位师傅(AC)来带领,…...

10 django管理系统 - 管理员管理 - 新建管理员(通过模态框和ajax实现)
在文章“04 django管理系统 - 部门管理 - 新增部门”中,我们通过传统的新增页面来实现部门的添加。 在本文中,我们通过模态框和ajax来实现管理员的新增。 首先在admin_list.html中新建入口,使用按钮 <div class"panel-heading&quo…...

Mysql中表字段VARCHAR(N)类型及长度的解释
本文将针对MySQL 中 varchar (N)类型字段的存储方式进行解释,主要是对字符和字节的关系的理解。 1. varchar (N) 中的 N varchar (N) 中的 N 表示字符数,而不是字节数。这意味着 N 表示你可以存储多少个字符。 字符数:指的是字符的个数&…...

git提交信息写错处理方式
在Git中,你可以通过使用rebase命令来合并提交记录。以下是一个简单的步骤来合并一系列提交: 使用git rebase -i开始交互式变基。在打开的编辑器中,你会看到一个提交列表。若要合并提交,将要合并的提交前面的pick改为squash或s。保…...

C#从零开始学习(用unity探索C#)(unity Lab1)
初次使用Unity 本章所有的代码都放在 https://github.com/hikinazimi/head-first-Csharp Unity的下载与安装 从 unity官网下载Unity Hub Unity的使用 安装后,注册账号,下载unity版本,然后创建3d项目 设置窗口界面布局 3D对象的创建 点击对象,然后点击Move Guzmo,就可以拖动…...

【SpringBoot】15 Echarts+Thymeleaf 绘制各种图表
Gitee仓库 https://gitee.com/Lin_DH/system 介绍 ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,…...

网络学习笔记
一、网络的结构与功能 网络的鲁棒性与抗毁性 如果在移走少量节点后网络中的绝大部分节点仍然是连通的,那么就该网络的连通性对节点故障具有鲁棒性 网络上的动力学 动力系统:自旋、振子或混沌的同步、可激发系统 传播过程:信息传播与拥堵…...

[论文笔记]HERMES 3 TECHNICAL REPORT
引言 今天带来论文HERMES 3 TECHNICAL REPORT,这篇论文提出了一个强大的工具调用模型,包含了训练方案介绍。同时提出了一个函数调用标准。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 聊天模…...

MySQL-19.多表设计-一对多-外键
一.多表问题分析 二.添加外键 三.外键约束的问题...

MySQL程序介绍<一>
目录 MySQL程序简介 mysqld - MySQL 服务器 编辑 mysql - MySQL 命令⾏客⼾端 MySQL程序简介 1.MySQL安装完成通常会包含如下程序: Linux系统程序⼀般在 /usr/bin⽬录下,可以通过命令查看 windows系统⽬录: 你的安装路径\MySQL Server…...

Leetcode 第 419 场周赛题解
Leetcode 第 419 场周赛题解 Leetcode 第 419 场周赛题解题目1:3318. 计算子数组的 x-sum I思路代码复杂度分析 题目2:3319. 第 K 大的完美二叉子树的大小思路代码复杂度分析 题目3:思路代码复杂度分析 题目4:3321. 计算子数组的 …...

那些年 我们说走就走
那些年 我们说走就走 —— 2022-03-20 二月十八 春分 我总是钟情于原生景色,犹如那句 “落霞与孤鹜齐飞,秋水共长天一色。” 所绘。 我热爱骑行,向往自然,对有着 “中国人的景观大道” 之称的 318 国道川藏线憧憬已久。 17 年暑…...

MySQL初识
在了解什么是MySQL前,我们先了解一下什么是数据库?? 1. 数据库简介 1.1 什么是数据库 数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问…...

基于Java微信小程序的的儿童阅读系统的详细设计和实现(源码+lw+部署文档+讲解等)
详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…...

利用 OBS 推送 WEBRTC 流到 smart rtmpd
webrtc whip 推流 & whep 拉流简介 RFC 定义 通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) . WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html WHEP RFC Link:…...

【python】极简教程3-函数
函数是将代码组织到可重用块中的一种方法。 函数调用 Python提供了许多内置函数,例如print: print(Hello, World!)函数调用通常包含函数名,后跟圆括号,括号内是参数列表。参数是传递给函数的数据,函数会基于这些数据执行操作。 数学函数 使用math函数前需要先导入mat…...

Python案例小练习——小计算器
文章目录 前言一、代码展示二、运行展示 前言 这是用python实现一个简单的计器。 一、代码展示 def calculate(num1, op, num2):if op "":return float(num1) float(num2)elif op "-":return float(num1) - float(num2)elif op "*":return…...

仓储数字化蓝图
1、仓储能力建设 2、仓储数字化建设...

【数字图像处理】第5章 图像空域增强方法
上理考研周导师的哔哩哔哩频道 我在频道里讲课哦 目录 5.1 图像噪声 相关概念 ①图像噪声的产生 ② 图像噪声分类 ③ 图像噪声特点 5.2 图像增强方法分类 ①图像增强概念 ②图像增强目的 ③图像增强技术方法: 5.3 基于灰度变换的图像增强 1. 概述: 2. 灰度变换…...

idea 发布jar包
当你有一个能正常编译的项目,以springboot为例,有两步步骤 打包配置 打包 一、打包配置 1.点击右上角快捷按钮/文件-->项目结构,打开项目结构设置 2.项目结构-->Artifacts,如图所示选择 3.在Create JAR from Modules配置…...

c语言字符串函数strstr,strtok,strerror
1,strtok函数的使用和模拟实现 char * strtok(char * str,const char * sep) 会有static修饰变量,有记忆功能,会保存字符串的位置,下次找再继续找。 1)sep参数指向一个字符串,它包含了0个或者多个由sep字符中一个或…...

【Java】—JavaBean转换方法详解
JavaBean间的转换 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 文章目录 JavaBean间的转换1 Apache Co…...

[Vue3核心语法] setup语法糖
一、setup 概述 setup是Vue3中一个新的配置项,值是一个函数,它是 Composition API “表演的舞台”,组件中所用到的:数据、方法、计算属性、监视......等等,均配置在setup中。 特点: setup函数返回的对象中…...

RabbitMQ 入门(三)SpringAMQP五种消息类型(Basic Queue)
一、Spring AMQP 简介 SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: - 自动…...

2024双十一买什么好?双十一高性价比数码好物推荐!
双十一购物狂欢节即将来临,这是一年中家电和数码产品优惠力度较大的时候。然而,随着产品种类越来越丰富,选择一款合适的商品也变得越发困难。今天,我为大家推荐一些双十一期间值得入手的高品质好物,让我们一同来了解…...

MySQL 查找连续相同名称的记录组,并保留每组内时间最大的一条记录
要求:查找连续相同名称的记录组,并保留每组内时间最大的一条记录,同时计算每组记录的 num 总和。 今天有人问了我一个问题,大致就是下面这样的数据结构(原谅我实在不知道怎么描述这个问题) 然后需要得到下面…...

three.js 使用geojson ,实现中国地图区域,边缘流动效果
three.js 使用geojson ,实现中国地图区域,边缘流动效果 在线链接:https://threehub.cn/#/codeMirror?navigationThreeJS&classifyexpand&idgeoBorder 国内站点预览:http://threehub.cn github地址: https://github.co…...

数据中台业务架构图
数据中台的业务架构是企业实现数据驱动决策和业务创新的关键支撑。它主要由数据源层、数据存储与处理层、数据服务层以及数据应用层组成。 数据源层涵盖了企业内部各个业务系统的数据,如 ERP、CRM 等,以及外部数据来源,如社交媒体、行业数据…...

Docker学习笔记(2)- Docker的安装
1. Docker的基本组成 镜像(image):Docker镜像就像是一个模板,可以通过这个模板来创建容器服务。通过一个镜像可以创建多个容器。最终服务运行或者项目运行就是在容器中。容器(container):Docker…...

PostgreSql的备份和升级
目录 版本概述: 跨大版本数据迁移 QProcess 调用相关进程进行备份和恢复 版本概述: 该数据库版本主要分为主要版本和次要版本,大版本基本每年发布一次,小版本则每几个月即发布,更新较快。在10.0之前所使用的数据库版…...