云AC技术应用浅析
1. 云AC概述
MACC
(MobileAccess Control Cloud
,移动接入控制云平台),简称为云AC
,用于管理WIFI
设备。配置管理用于云AC
向设备端下发配置,即通过云AC
控制设备端的配置,配置管理现在包括设备无线配置、设备认证配置、访问资源控制、用户管理控制、设备管理配置、设备日志配置以及设备系统配置等七项基本配置功能以及记录各个配置项操作的相关信息的配置操作日志记录功能。
锐捷的云AC
解决了AP
分散到各个不同地市,不同门店,众多孤立设备集中管理,监控的难题;传统的硬件AC
对AP
的管理采用紧耦合的方式,更适合局域网内的大量AP
的管理;锐捷云AC
采用和AP
弱耦合,轻量级的交互方式来更好的适用跨互联网,广域网的AP
集中管理。云AC
还支持与锐捷云营销平台、移动媒体平台等对接,分别实现广告推送营销和多媒体服务等。
2. 配置管理的整体流程
图2.1
配置管理的整体流程
配置管理主要是实现云AC向WIFI设备下发配置文件,实现云AC对设备配置的统一管理。 产品官方首页 http://www.ruijie.com.cn/cp/wx-ypt/macc。
3. 配置管理的技术说明
云AC
与设备端的传输遵从CWMP
(CPE WANManagement Protocol
,用户侧设备广域网管理协议),该协议是由DSL
(Digital Subscriber's Line
,数字用户线路)论坛发起制定的技术规范之一,在该规范中描述了一个用户侧设备广域网管理协议的通用框架、消息规范、管理方法和数据模型。由于TR-069
是CWMP
协议最重要的核心文档,因此在许多时候CWMP
协议也称作TR-069
协议。
云AC
向设备端下发配置,设备端接收到配置后写入设备内对应的配置文件,然后重启对应进程即可实现配置。
4. CWMP技术如何应用在锐捷无线产品上
可以简单的把云AC
看做一台管理服务器,无线产品通过CWMP
与服务器建立通信道路。用过锐捷无线产品RG-MA1210
(用户交流社区http://bbs.ruijie.com.cn/forum.php?mod=viewthread&tid=2127
)的盆友应该对MACC
有一定的了解,如果想通过低成本投入,在给客户提供免费上网服务的同时,顺便推送一些小广告,您爽我也爽,岂不乐哉。事先声明下,其实我也没用过RG-MA1210
,用过的用户都说好^_^
。今天讨论的主题是技术,那可能是有人怀疑啦,产品都没用过,能把这技术说清楚吗。这点还请各位放心,因为本人用的产品,您们肯定没人用过,目前还没正式亮相咧。下面就拿这款无线产品RG-MR620
给各位讲解下CWMP
技术如何在它上面实现的,太多的技术细节,不便道出,何况我自己也是略懂而已。说的不对的地方,还望各位批评指正。
锐捷的无线产品大部分使用的我司自主研发的RGOS
,但是RG-MR620
采用的开源的OpenWrt
,也就是Linux
的一个发行版,RG-MR620
是一款支持11AC
的CPE
,下文简称CPE
。下图是该系统的系统信息:

图4.1 RG-MR620
的操作系统信息
CPE
是否支持CWMP
协议,看下图就知道:

图4.2 CWMP
实现
cwmp.elf
进程就是建立与MACC
隧道的源头。看到这里,估计技术大牛已经明白了,也说不定技术大牛不屑此类介绍。嘿嘿,其实我从不介意别人的看法,既然写,就要写的彻底,写得明白。
5. 举一例来说说
MACC
的功能包括设备无线配置、设备认证配置、访问资源控制、用户管理控制、设备管理配置等等,具体的配置方法请参考 http://www.ruijie.com.cn/cp/wx-ypt/macc
。下面就以配置管理设备无线配置为例来浅析下MACC
技术的应用。首先配置好CPE
的环境,让该设备加入到MACC
中,注意最重要的配置项是ACS URL
,也就是云AC
提供给设备的对外接口。

图5.1 CWMP
配置
配置好设备以后,登录MACC
主页面就能发现在线设备:

图5.2 MACC
登录界面
再来一张详细的:

图5.3 MACC
在线设备信息
设备无线配置主要是为了配置设备的无线wifi
功能,设备无线配置页面如图5.4
所示:

图5.4
设备无线配置页面
点击保存按钮就能将该配置同步到CPE
,事实上,在设备首次关联上MACC
时,会自动下发一个FullConfig
(全量配置),Fullconfig
包括了无线配置,因此在无线设备的Console
端可以看见有信息输出,ath0
是被wifi0
映射的vap
(该设备的wifi0
主要用作覆盖2.4G
,wifi1
主要用作5G
上联),其中ath0
、ath01
、ath02
、ath03
一共创建了4
个vap
,通过无线终端就能找到由wifi0
放出的4
个SSID
信号。

图5.5
设备控制台输出
对比下无线配置文件的变化如下所示:
MACC配置4个SSID:
admin@Ruijie:/# uci show wireless
wireless.wifi0=wifi-device
wireless.wifi0.type=qcawifi
wireless.wifi0.channel=auto
wireless.wifi0.macaddr=00:0c:30:67:fb:79
wireless.wifi0.hwmode=11ng
wireless.wifi1=wifi-device
wireless.wifi1.type=qcawifi
wireless.wifi1.channel=auto
wireless.wifi1.macaddr=00:0c:30:67:fb:79
wireless.wifi1.hwmode=11ac
wireless.wifi1.tdpcf=1
wireless.wifi1.peerdist=2500
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=wifi1
wireless.@wifi-iface[0].network=wan
wireless.@wifi-iface[0].mode=sta
wireless.@wifi-iface[0].wds=0
wireless.@wifi-iface[0].ssid=ruijie_cpe
wireless.@wifi-iface[0].encryption=none
wireless.@wifi-iface[0].wlan_id=1
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device=wifi0
wireless.@wifi-iface[1].wlan_id=1
wireless.@wifi-iface[1].network=lan
wireless.@wifi-iface[1].mode=ap
wireless.@wifi-iface[1].wds=0
wireless.@wifi-iface[1].ssid=MR620-2.4G-1
wireless.@wifi-iface[1].encryption=none
wireless.@wifi-iface[1].hidden=0
wireless.@wifi-iface[1].maxsta=1
wireless.@wifi-iface[2]=wifi-iface
wireless.@wifi-iface[2].device=wifi0
wireless.@wifi-iface[2].wlan_id=2
wireless.@wifi-iface[2].network=lan
wireless.@wifi-iface[2].mode=ap
wireless.@wifi-iface[2].wds=0
wireless.@wifi-iface[2].ssid=MR620-2,.4G-2
wireless.@wifi-iface[2].encryption=psk-mixed+ccmp
wireless.@wifi-iface[2].key=12345678
wireless.@wifi-iface[2].hidden=0
wireless.@wifi-iface[3]=wifi-iface
wireless.@wifi-iface[3].device=wifi0
wireless.@wifi-iface[3].wlan_id=3
wireless.@wifi-iface[3].network=lan
wireless.@wifi-iface[3].mode=ap
wireless.@wifi-iface[3].wds=0
wireless.@wifi-iface[3].ssid=MR620-2.4G-3
wireless.@wifi-iface[3].encryption=psk-mixed+ccmp
wireless.@wifi-iface[3].key=12345678
wireless.@wifi-iface[3].hidden=0
wireless.@wifi-iface[4]=wifi-iface
wireless.@wifi-iface[4].device=wifi0
wireless.@wifi-iface[4].wlan_id=4
wireless.@wifi-iface[4].network=lan
wireless.@wifi-iface[4].mode=ap
wireless.@wifi-iface[4].wds=0
wireless.@wifi-iface[4].ssid=MR620-2.4G-4
wireless.@wifi-iface[4].encryption=psk-mixed+ccmp
wireless.@wifi-iface[4].key=444444444444
wireless.@wifi-iface[4].hidden=0
admin@Ruijie:/#
|
MR620缺省配置:
admin@Ruijie:/# uci show wireless
wireless.wifi0=wifi-device
wireless.wifi0.type=qcawifi
wireless.wifi0.channel=auto
wireless.wifi0.macaddr=00:0c:30:67:fb:79
wireless.wifi0.hwmode=11ng
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=wifi0
wireless.@wifi-iface[0].network=lan
wireless.@wifi-iface[0].mode=ap
wireless.@wifi-iface[0].wds=0
wireless.@wifi-iface[0].ssid=ruijie_RG-MR620_2G
wireless.@wifi-iface[0].encryption=none
wireless.@wifi-iface[0].wlan_id=1
wireless.wifi1=wifi-device
wireless.wifi1.type=qcawifi
wireless.wifi1.channel=auto
wireless.wifi1.macaddr=00:0c:30:67:fb:79
wireless.wifi1.hwmode=11ac
wireless.wifi1.tdpcf=1
wireless.wifi1.peerdist=2500
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device=wifi1
wireless.@wifi-iface[1].network=wan
wireless.@wifi-iface[1].mode=sta
wireless.@wifi-iface[1].wds=0
wireless.@wifi-iface[1].ssid=ruijie_cpe
wireless.@wifi-iface[1].encryption=none
wireless.@wifi-iface[1].wlan_id=1
admin@Ruijie:/#
|
配置文件发生如此大改变,是因为MACC
下发了相关的配置操作指令给CPE
,查看日志由MACC
配置4
个SSID
的配置过程,很容易知道,MACC
通过下发指令,调用uci
指令对CPE
的配置文件进行修改。
扩展:
uci管理了OpenWrt
下最主要的系统配置参数并且提供了简单、容易、标准化的人机交互接口。uci中已经包含了网络配置、无线配置、系统信息配置等作为基本路由器所需的主要配置参数。
因此,MACC
给CPE
配置出4
个SSID
实际上调用的操作便是下面一系列的uci
操作:
admin@Ruijie:/# cat /var/log/wlcfg
[$Thu Dec 10 19:07:45 CST 2015]wifi_config.sh clear wlan-id 0
[$Thu Dec 10 19:07:45 CST 2015] uci -qdelete wireless.@wifi-iface[0]
[$Thu Dec 10 19:07:45 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:07:45 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:07:45 CST 2015] disableradio 1
[$Thu Dec 10 19:07:46 CST 2015] enableradio 1
[$Thu Dec 10 19:07:46 CST 2015] The flag ofcompatibility mmac = 1.
[$Thu Dec 10 19:07:46 CST 2015]wifi_config.sh set $RADIO = 1
[$Thu Dec 10 19:07:46 CST 2015] Add a new wifi-iface[1] and init ok!
[$Thu Dec 10 19:07:46 CST 2015] uci setwireless.@wifi-iface[1].device=wifi0
[$Thu Dec 10 19:07:46 CST 2015] uci setwireless.@wifi-iface[1].wlan_id=1
[$Thu Dec 10 19:07:46 CST 2015] uci setwireless.@wifi-iface[1].network=lan
[$Thu Dec 10 19:07:46 CST 2015] uci setwireless.@wifi-iface[1].mode=ap
[$Thu Dec 10 19:07:46 CST 2015] uci setwireless.@wifi-iface[1].wds=0
[$Thu Dec 10 19:07:47 CST 2015] uci setwireless.@wifi-iface[1].ssid=MR620-2.4G-1
[$Thu Dec 10 19:07:47 CST 2015] uci setwireless.@wifi-iface[1].encryption=none
[$Thu Dec 10 19:07:47 CST 2015] uci setwireless.@wifi-iface[1].hidden=0
[$Thu Dec 10 19:07:48 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:07:48 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:07:48 CST 2015] disableradio 1
[$Thu Dec 10 19:07:48 CST 2015] enableradio 1
[$Thu Dec 10 19:07:49 CST 2015] The flag ofcompatibility mmac = 1.
[$Thu Dec 10 19:07:49 CST 2015]wifi_config.sh set $RADIO = 1
[$Thu Dec 10 19:07:50 CST 2015] Add a new wifi-iface[2] and init ok!
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].device=wifi0
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].wlan_id=2
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].network=lan
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].mode=ap
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].wds=0
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].ssid=MR620-2,.4G-2
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].encryption=psk-mixed+ccmp
[$Thu Dec 10 19:07:50 CST 2015] uci setwireless.@wifi-iface[2].key=12345678
[$Thu Dec 10 19:07:51 CST 2015] uci setwireless.@wifi-iface[2].hidden=0
[$Thu Dec 10 19:07:51 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:07:51 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:07:51 CST 2015] disableradio 1
[$Thu Dec 10 19:07:52 CST 2015] enableradio 1
[$Thu Dec 10 19:07:55 CST 2015] The flag ofcompatibility mmac = 1.
[$Thu Dec 10 19:07:55 CST 2015]wifi_config.sh set $RADIO = 1
[$Thu Dec 10 19:07:56 CST 2015] Add a new wifi-iface[3] and init ok!
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].device=wifi0
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].wlan_id=3
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].network=lan
[$Thu Dec 10 19:07:56 CST 2015] uci set wireless.@wifi-iface[3].mode=ap
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].wds=0
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].ssid=MR620-2.4G-3
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].encryption=psk-mixed+ccmp
[$Thu Dec 10 19:07:56 CST 2015] uci setwireless.@wifi-iface[3].key=12345678
[$Thu Dec 10 19:07:57 CST 2015] uci setwireless.@wifi-iface[3].hidden=0
[$Thu Dec 10 19:07:57 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:07:57 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:07:58 CST 2015] disableradio 1
[$Thu Dec 10 19:07:58 CST 2015] enableradio 1
[$Thu Dec 10 19:08:04 CST 2015] The flag ofcompatibility mmac = 1.
[$Thu Dec 10 19:08:04 CST 2015]wifi_config.sh set $RADIO = 1
[$Thu Dec 10 19:08:04 CST 2015] Add a new wifi-iface[4] and init ok!
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].device=wifi0
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].wlan_id=4
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].network=lan
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].mode=ap
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].wds=0
[$Thu Dec 10 19:08:04 CST 2015] uci setwireless.@wifi-iface[4].ssid=MR620-2.4G-4
[$Thu Dec 10 19:08:05 CST 2015] uci setwireless.@wifi-iface[4].encryption=psk-mixed+ccmp
[$Thu Dec 10 19:08:05 CST 2015] uci setwireless.@wifi-iface[4].key=444444444444
[$Thu Dec 10 19:08:05 CST 2015] uci setwireless.@wifi-iface[4].hidden=0
[$Thu Dec 10 19:08:06 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:08:06 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:08:06 CST 2015] disableradio 1
[$Thu Dec 10 19:08:07 CST 2015] enableradio 1
[$Thu Dec 10 19:08:15 CST 2015] The flag ofcompatibility mmac = 1.
[$Thu Dec 10 19:08:15 CST 2015]wifi_config.sh set $RADIO = 1
[$Thu Dec 10 19:08:15 CST 2015] uci setwireless.@wifi-iface[1].maxsta=1
[$Thu Dec 10 19:08:15 CST 2015] The flag ofcompatibility mmac = 3.
[$Thu Dec 10 19:08:15 CST 2015]wifi_config.sh apply $RADIO = 3
[$Thu Dec 10 19:08:16 CST 2015] disableradio 1
[$Thu Dec 10 19:08:17 CST 2015] enableradio 1
admin@Ruijie:/#
6.结语
以上关于锐捷的MACC
技术的简单解析,还有很多具体细节的问题没有涉及到。还请各位工程师从网络上获取相关文档并研究。经常访问锐捷社区无线版本的网页, http://bbs.ruijie.com.cn/?fromuser=unrecoverable
找到最新的信息和资料。也非常欢迎您加我好友一起切磋技术,同时也欢迎各位在论坛上提问。