• capwap协议重点分析


    一、     CAPWAP概述

    CAPWAP由两个部分组成:CAPWAP协议和无线BINDING协议。

    (1)CAPWAP协议是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关。即AP自动发现AC,AC对AP进行安全认证,AP从AC获取软件映像,AP从AC获得初始和动态配置等。此外,系统可以支持本地数据转发和集中数据转发。瘦AP架构让AC具有了对整个WLAN网络的完整视图,为无线漫游、无线资源管理等业务功能的实现提供了基础如图1.1所示。

    (2)BINDING协议是提供具体和某个无线接入技术相关的配置管理功能。可以这么解释,前者规定了各个阶段需要干什么事,后者就是具体到在各种接入方式下应该怎么完成这些事。目前工作组只提供了802.11的binding协议(RFC5416,2009年4月发布),以支持802.11网络的配置管理功能。OpenCapwap也实现了这个协议。

                           

    图1.1 瘦AP架构图

    二、     CAPWAP状态机分析(重点1)

    AC与WTP通过CAPWAP状态机来建立隧道,CAPWAP状态机如示意图2.1所示,由图上可知,整个CAPWAP隧道建立的状态有:Idle, Discovery, Sulking, DTLS Setup, Authorize, DTLS Connect, DTLS Teardown, Join, Configure, Image Data, Data Check, Run, Reset。其中 DTLS是CAPWAP报文传输安全机制,保障了网络通信的安全。

    CAPWAP状态机是被AC与WTP同时使用的,WTP系统中只有一个CAPWAP状态机,AC端有多个状态机。对于每个定义的状态,只有特定消息被允许发送和接受,每一个状态变迁都有AC与WTP的相关动作,详见RFC5415。CAPWAP状态机的最终目标是进入到RUN状态,进行实际的数据传输,而之前的过程都是AP发现AC,AP与AC建立CAPWAP隧道的过程。

    图2.1 CAPWAP状态机流程图

    其中AC和AP建立控制链路的过程如图2.2所示,包含了几个主要的状态:

    1、 Discovery状态

    该状态是一个WTP发现可关联AC的过程,在前期WTP可以通过1)读取静态配置文件中AC IP列表2)通过DNS域名解析3)DHCP返回AC IP列表4)广播等方式发送Discovery request,查找当前可关联的AC,当AC收到Discovery request,会发送Discovery response作为响应。

    图2.2  AP发现AC的流程图

    2、 Join状态

    该状态是AC与WTP建立控制通道的交互过程,并在此交互过程中,AC检查WTP当前版本,如果WTP的版本无法与AC要求的相匹配,WTP和AC会进入Image Data状态做固件升级,来更新WTP版本;如果WTP版本符合要求,则进入configuration状态

    3、 Image Data状态

    Image Data状态是AC对WTP升级的过程,以便WTP的版本可正常关联AC

    4、 Configuration状态

    该状态用于做WTP的现有配置和AC设定配置的匹配检查,WTP发送configuration request到AC,里面包含现有WTP配置,当WTP当前配置与AC要求不符实,AC会通过configuration response通知WTP,WTP根据response内容对自身配置做重新设置。

    5、 Run状态

    当WTP进入Run状态,说明WTP与AC的控制和数据通道建立已成功,用户可根据需要,对指定的WTP做配置设置,如创建WLAN、Channel设置、Txpower设置等等,并可实时监控WTP的运行状态。

    三、     CAPWAP报文格式(重点2

    1、CAPWAP报文

    CAPWAP报文分为控制和数据两种消息,除了控制消息的Discovery Request和Discovery Response消息外其余的大部分消息均用DTLS进行加密封装。

    CAPWAP的控制报文格式如下:

    +-------------------------------------------+
    | IP  | UDP | CAPWAP | Control | Message    |
    | Hdr | Hdr | Header | Header  | Element(s) |
    +-------------------------------------------+

    图3.1 CAPWAP控制报文帧格式一(Discovery Request/Response)

    +------------------------------------------------------------------+
        | IP  | UDP | CAPWAP   | DTLS | CAPWAP | Control| Message   | DTLS |
        | Hdr | Hdr | DTLS Hdr | Hdr  | Header | Header | Element(s)| Trlr |
        +------------------------------------------------------------------+
                               ---------- 认证---------------------/
                                      ------------- 加密------------------/

    图3.2 CAPWAP控制报文帧格式二(经DTLS 安全加密处理的)

    CAPWAP的数据报文格式如下:(CAPWAP协议对数据报文的DTLS加密是可选的。)

    +-------------------------------+

    | IP  | UDP | CAPWAP | Wireless |

    | Hdr | Hdr | Header | Payload  |

    +-------------------------------+

    图3.3 CAPWAP数据明文帧格式

    +--------------------------------------------------------+
           | IP  | UDP |  CAPWAP  | DTLS | CAPWAP | Wireless | DTLS |
           | Hdr | Hdr | DTLS Hdr | Hdr  | Header| Payload  | Trlr |
           +--------------------------------------------------------+
                                  ------ 认证---------------/
                                         ------- 加密--------------/

    图3.4 CAPWAP加密数据报文帧格式

    2CAPWAP 协议头分析

    CAPWAP 协议的所有报文都包含 CAPWAP 首部,在控制信道收到则是控制报文,在数据信道收到则是数据报文,其帧格式见下:

    具体字段的含义请参加文档说明。

     

    图3.5  CAPWAP Header格式

    四、     总结

    理解CAPWAP状态机的状态跳转过程,弄清了具体的CAPWAP报文格式,就知道它发生什么数据,状态机从一种状态跳到另一种状态,这样就基本弄清了整个CAPWAP协议基本框架。当然CAPWAP协议还有很多细节去分析,但是在理解了CAPWAP协议基本框架后,再结合OpenCapwap源代码和网络抓包,分析细节是比较容易的了。希望本文档能对你有所帮助。


     

  • 相关阅读:
    面试题-Java多线程基础、实现工具和可见性保证(新更新版)
    Linux脚本-使用jar自动替换配置文件
    让ie兼容opacity属性的方法
    rgba兼容ie
    ie6的又一个变态问题
    长为112px的td里面有一个块span,居中时引起的兼容问题
    ie8中position不显示的问题
    haslayout
    CSS中zoom作用
    Vue学习笔记一
  • 原文地址:https://www.cnblogs.com/seacode/p/3175379.html
Copyright © 2020-2023  润新知