CMCC portal 协议wireshark 抓包分析

环境介绍:

认证服务器

192.168.13.253

AC

192.168.13.252

抓包过程:
1、安装wireshark,宁盾wifi默认安装路径下${DKEY AM }/Utilities目录下有wireshark安装包,直接安装即可,具体安装过程略。2、添加Portal协议分析插件,具体操作过程参见附件 CMCC portal 协议wireshark 抓包分析 portal协议分析插件.zip (114.59 KB, 下载次数: 894) 
3、运行wireshark选取网卡,例我的认证服务器所使用的网卡为本地链接;如图:

CMCC portal 协议wireshark 抓包分析

4、过滤portal||radius报文:


CMCC portal 协议wireshark 抓包分析



Portal 认证流程


CMCC portal 协议wireshark 抓包分析CMCC portal 协议wireshark 抓包分析 

报文字段说明

Ver

Ver字段是协议的版本号,长度为 1 字节,目前定义的值为 0x01。

Type

Type字段定义报文的类型,长度为 1 字节,目前其值的定义如表6-1。


报文类型

  

Type

  

方向

含义

REQ_CHALLENGE

0x01

Client----->Server

Portal Server 向AC设备发送的请求Challenge报文

ACK_CHALLENGE

0x02

Client<-----Server

AC设备对Portal Server请求Challenge报文的响应报文

REQ_AUTH

0x03

Client----->Server

Portal Server向AC设备发送的请求认证报文

ACK_AUTH

0x04

Client<-----Server

AC设备对Portal Server请求认证报文的响应报文

REQ_LOGOUT

0x05

Client----->Server

若ErrCode字段值为0x00,表示此报文是Portal Server向AC设备发送的请求用户下线报文;若ErrCode字段值为0x01,表示该报文是Portal Server发送的超时报文,其原因是Portal Server发出的各种请求在规定时间内没有收到响应报文。

ACK_LOGOUT

0x06

Client<-----Server

AC设备对Portal Server请求下线报文的响应报文

AFF_ACK_AUTH

  
  

0x07

Client----->Server

Portal Server对收到的认证成功响应报文的确认报文;

NTF_LOGOUT

0x08

Server --> Client

用户被强制下线通知报文

REQ_INFO

0x09

Client --> Server

信息询问报文

ACK_INFO

0x0a

Server --> Client

信息询问的应答报文

Pap/Chap

Pap/Chap字段定义此用户的认证方式,长度为 1 字节,只对Type值为 0x03 的认证请求报文有意义:

Chap方式认证---值为0x00;

Pap  方式认证---值为0x01;

Rsv

Rsv目前为保留字段,长度为 1 字节,在所有报文中值为 0;

SerialNo

(1)         SerialNo字段为报文的序列号,长度为 2 字节,由Portal Server随机生成,Portal Server必须尽量保证不同认证流程的SerialNo在一定时间内不得重复,在同一个认证流程中所有报文的SerialNo相同;

(2)         Portal Server发给AC设备的报文

a、  由Portal Server发出的Type值为1、3的请求报文其SerialNo都是随机生成数;

b、  由Portal Server向AC设备发出的Type值为5的(REQ_LOGOUT)报文其SerialNo值分两种情况:当ErrCode为0 时(请求用户下线报文),SerialNo值为一个随机生成数;当ErrCode为1时,SerialNo值可能和Type值为1或3的报文 (请求Challenge超时, 或请求认证超时)相同,具体要看是请求Challenge超时还是请求认证超时;

c、  由Portal Server向AC设备发出的认证成功确认报文(Type值为7的报文)SerialNo和其发出的相应请求报文的SerialNo相同;比如对于Type值为7的报文其SerialNo值和Type值为3的请求认证报文相同;

(3)         每一个由AC设备发给PortalServer的响应报文的SerialNo必须和PortalServer发送的相应请求报文的SerialNo一样,否则PortalServer会丢掉从AC设备发来的响应报文; 比如Type值为2的报文其SerialNo值必须和Type值为1的报文相同,Type值为4的报文其SerialNo值必须和Type值为3的报文相同,Type值为6的报文其SerialNo值必须和Type值为5的报文相同。

ReqID

(1)         ReqID字段长度为 2 个字节,由AC设备随机生成,尽量使得在一定时间内ReqID不重复。

(2)         在Chap认证方式中:

a、  AC设备在Type为2 (ACK-CHALLENGE) 的请求Challenge响应报文中把该ReqID的值告诉Portal Server;

b、  在Type值为3、4、7 ( REQ-AUTH, ACK-AUTH, AFF-ACK-AUTH ) 的报文中ReqID字段的值都和Type值为2的报文中此字段的值相同;

c、  在Type值为 5 (REQ-LOGOUT) 的报文中,若报文表示请求Challenge 超时则此字段值为0 ;若报文表示请求认证超时则此字段值和Type值为2 (ACK-CHALLENGE)的报文中此字段的值相同;

(3)         在Pap认证方式中,此字段无意义,其值为0;

(4)         在Type值为 5(REQ-LOGOUT) 的报文中,若报文表示请求下线时则此字段值为0 ;

(5)         在Type值为1、6 (REQ-CHALLENGE , ACK-LOGOUT) 的报文中,该字段均无意义,值都为 0;

UserIP

       UserIP字段为Portal用户的IP地址,长度为 4 字节,其值由Portal Server根据其获得的IP地址填写,在所有的报文中此字段都要有具体的值

UserPort

      UserPort字段目前没有用到,长度为 2 字节,在所有报文中其值为0

ErrCode

ErrCode字段和Type字段一起表示一定的意义,长度为 1字节,具体如下:

(1)         对于Type值为1、3、7的报文,ErrCode字段无意义,其值为0;

(2)         当Type值为 2 时:

ErrCode=0,表示AC设备告诉PortalServer请求Challenge成功;

ErrCode=1,表示AC设备告诉PortalServer请求Challenge被拒绝;

ErrCode=2,表示AC设备告诉PortalServer此链接已建立;

ErrCode=3,表示AC设备告诉PortalServer有一个用户正在认证过程中,请稍后再试;

ErrCode=4,则表示AC设备告诉PortalServer此用户请求Challenge失败(发生错误);

(3)         当Type值为 4 时:

ErrCode=0,表示AC设备告诉PortalServer此用户认证成功;

CMCC portal 协议wireshark 抓包分析

ErrCode=1,表示AC设备告诉PortalServer此用户认证请求被拒绝;

ErrCode=2,表示AC设备告诉PortalServer此链接已建立;

        ErrCode=3,表示AC设备告诉PortalServer有一个用户正在认证过程中,请稍后再试;

        ErrCode=4 ,表示AC设备告诉PortalServer此用户认证失败(发生错误);

(4)         当Type值为 5 时:

ErrCode=0,表示此报文是Portal Server发给AC设备的请求下线报文;

ErrCode=1,表示此报文是在Portal Server没有收到AC设备发来的对各种请求的响应报文,而定时器时间到(即超时)时由PortalServer发给AC设备的报文;

(5)         当Type值为 6 时:

ErrCode=0,表示AC设备告诉PortalServer此用户下线成功;

ErrCode=1,表示AC设备告诉PortalServer此用户下线被拒绝;

ErrCode=2,  表示AC设备告诉Portal Server此用户下线失败(发生错误);

(6)         对Type为REQ_INFO时,ErrCode无意义,其值为0;

(7)         对Type为NTF_LOGOUT时,ErrCode含义如下:

   

ErrCode

   

含义

0

下线

(8)         对Type为ACK_INFO时,ErrCode含义如下:

ErrCode

含义

0

处理成功,但不表示全部消息都被获取了,有多少信息被获得应通过属性来判断,详见下文

1

功能不支持,表示设备不支持这一功能

2

消息处理失败,由于某种不可知原因,使处理失败,例如询问消息格式错误等。




本文转自 msft 51CTO博客,原文链接:http://blog.51cto.com/victorly/1845786,如需转载请自行联系原作者

上一篇:正则表达式-深入理解


下一篇:源码:JAVA在线编译器模拟