logo资料库

PPPoE数据包分析.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
一、PPPOE协议介绍
1.PPPOE的工作原理
2.PPPOE的数据报文格式
1)PPPOE数据报文中Tag(标记)的格式
2)PPPOE发现阶段的数据报文
二、PPPOE Discovery详细解码
PPPOE Discovery 协议解码详解 协议分析 - PPPOE Discovery 协议解 码详解 一、 PPPOE 协议介绍 PPPOE,全称 Point-to-Point Protocol Over Ethernet,它工作在 OSI 的数据链路层, PPPOE 协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我 们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。 1. PPPOE 的工作原理 PPPOE 协议共包括两个阶段,即 PPPOE 的发现阶段(PPPOE Discovery Stage)和 PPPOE 的会话阶段(PPPOE Session Stage)。而两者的主要区别在于只是在 PPP 的数据报文前 封装了 PPPOE 的报文头。 当一个主机希望能够开始一个 PPPOE 会话时,它首先会在广播式的网络上寻找一个访问集 中器,当然可能网络上会存在多个访问集中器时,对于主机而言则会根据各访问集中器(AC, Access Concentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。当 主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个 PPPOE 会话进程。在 这个过程中访问集中器会为每一个 PPPOE 会话分配一个唯一的进程 ID,会话建立起来后 就开始了 PPPOE 的会话阶段,在这个阶段中已建立好点对点连接的双方(这种点对点的结 构与 PPP 不一样,它是一种逻辑上的点对点关系)就采用 PPP 协议来交换数据报文,从而 完成一系列 PPP 的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。 2. PPPOE 的数据报文格式 我们简要介绍一下 PPPOE 的数据报文格式。PPPOE 的数据报文是被封装在以太网帧的数 据域内的。简单来说我们可能把 PPPOE 报文分成两大块,,一大块是 PPPOE 的数据报头, 另一块则是 PPPOE 的净载荷(数据域),对于 PPPOE 报文数据域中的内容会随着会话过程 的进行而不断改变。下图 1 为 PPPOE 的报文的格式: 版本 类型 代码 会话 ID 长度域 净载荷(或数据域) (图 1 PPPOE 数据报格式)  PPPOE 数据报文最开始的 4 位为版本域,协议中给出了明确的规定,这个域的内容填 充 0x1。 成都科来软件有限公司 http://www.colasoft.com.cn 电话:028-85120922 传真:028-85120911 1 / 5 Email:sales@colasoft.com.cn support@colasoft.com.cn
PPPOE Discovery 协议解码详解  紧接在版本域后的 4 位是类型域,协议中同样规定,这个域的内容填充为 0x1。  代码域占用 1 个字节,对于 PPPOE 的不同阶段这个域内的内容也是不一样的。  会话 ID 点用 2 个字节,当访问集中器还未分配唯一的会话 ID 给用户主机的话,则该 域内的内容必须填充为 0x0000,一旦主机获取了会话 ID 后,那么在后续的所有报文 中该域必须填充那个唯一的会话 ID 值。  长度域为 2 个字节,用来指示 PPPOE 数据报文中净载荷的长度。  数据域,有时也称之为净载荷域,在 PPPOE 的不同阶段该域内的数据内容会有很大的 不同。在 PPPOE 的发现阶段时,该域内会填充一些 Tag(标记);而在 PPPOE 的会话 阶段,该域则携带的是 PPP 的报文。 这里我们主要来介绍一下 PPPOE 发现阶段的报文格式以及它的报文: 1) PPPOE 数据报文中 Tag(标记)的格式 对于发现阶段的 PPPOE 数据报文而言,它的净载荷可能包含零个或多个 Tag(标记),实 际上这些标记的意义非常类似于 PPP 配置参数选项,它同样也是要经过协商的。对于 PPPOE 协议而言,没有像 PPP 的配置参数选项那样定义了很多细节,而只是一个初略的定义,因 此在实际当中实现这个过程会依据不同厂商的设备有不同。首先还是让我们看一下承载在 PPPOE 报文数据域中的标记封装格式,如图 2, 类型 长度 数据 (图 2 标记的封装格式) 从图 2 中可以看出,标记的封装格式采用的是大家所熟知的 TLV 结构,也即是(类型+长 度+数据)。标记的类型域为 2 个字节,下表列出了各种标记类型的含义: 标记类型 0x0000 表示PPPOE报文数据域中一串标记的结束,为了保证版本的兼 标记说明 容性而保留,在有些报文中有应用。 0x0101 服务名,主要用来表明网络侧所能提供给用户的一些服务。 0x0102 访问集中器名,当用户侧接收到了AC的回应的PADO报文时, 就可获从所携带的标记中获知访问集中器的名子,而且还可以 据此来选择相应的访问集中器。 0x0103 主机唯一标识,类似于PPP数据报文中的标识域,主要是用来 匹配发送和接收端的,因为对于广播式的网络中会同时存在很 多个PPPOE的数据报文。 0x0104 AC-Cookies,主要被用来防止恶意性DOS功击。 0x0105 销售商的标识符。 0x0110 中继会话ID,对于PPPOE的数据报文也同样可以像DHCP报文 一样被中断到另外的AC上终结,这个字段则是用来维护另一个 成都科来软件有限公司 http://www.colasoft.com.cn 电话:028-85120922 传真:028-85120911 2 / 5 Email:sales@colasoft.com.cn support@colasoft.com.cn
连接的。 0x0201 服务名错误,当请求的服务名不被对端所接受时,会在响应的 PPPOE Discovery 协议解码详解 报文中携带这个标记。 0x0202 访问集中器名出错。 0x0203 一般性错误。  标记的长度域为 2 个字节,它用来指明标记数据域的长度。  标记的数据域中用来放置不同类型标记所对应的相关数据。 2) PPPOE 发现阶段的数据报文 PPPOE 的发现阶段可分为四步,其实这个过程也是 PPPOE 四种数据报文的交换的一个过 程。当完成这四步后,用户主机与访问集中器双方就能获知对方的 MAC 地址和唯一的会话 ID 号,从而进入到下一个阶段(PPPOE 的会话阶段)。实际上双方在互相知道了对方的 MAC 地址后,就已经在广播式的网络上确定了一一的对应关系,为了保证这个连接的有效性,同 时使 PPPOE 协议能更加灵活的运用,因此还加入了会话 ID 字段,通过这两个条件就可完 成确定双方点对点的关系。 在这个阶段一开始,由于接入用户并不知道访问集中器的 MAC 地址,则使用类似于 ARP 解析的过程的机制来获取访问集中器的 MAC 地址。首先由接入用户侧发起一个初始化的广 播报文,对于访问集中器如果配置了 PPPOE 的业务时,它会时实检测网络上的数据包,当 发现以太网数据帧中所承载的是 PPPOE 报文时(通过协议域的内容来区分),就会将其交 给相应的模块去处理。当收到初始化报文后,访问集中器会向该用户回应一个报文。如果网 络上存在很多这样的访问集中器且都收到了用户侧发送的初始化报文时,它们也都会向用户 侧会送一个确认报文,如果该用户收到这个报文后,则会依据报文中所携带的内容或本端的 一些配置来选择一个唯一的访问集中器进行会话。到此时已完成了前两步了,那么剩下的两 步则是协商一些所提供的服务选项和获取 PPPOE 会话阶段所必须的会话 ID 值。 说明:在这个阶段,所有数据报文是被承载在以太网的数据域中的,而且以太网数据帧的协 议域始终为 0x8863。 在 PPPOE 发现阶段的四步的过程中,PPPOE 会遇到 PADI、PADO、PADR 和 PADS 这四 种报文。PPPOE 中的 PADT 报文是用来终止一条会话的。  PADI(PPPOE Active Discovery Initiation)报文 PPPOE 发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户主机是以广播的 方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全 1,而源地址域 填充用户主机的 MAC 地址。广播包可能会被多个访问集中器接收到。  PADO(PPPOE Active Discovery Offer)报文 PPPOE 发现阶段的第二步,也即是由访问集中器回应各用户主机发送的 PADI 报文,此时 该报文所对应的以太网帧的源地址填充访问集中器的 MAC 地址,而目的地址则填充从 成都科来软件有限公司 http://www.colasoft.com.cn 电话:028-85120922 传真:028-85120911 3 / 5 Email:sales@colasoft.com.cn support@colasoft.com.cn
PADI 中所获取的用户主机的 MAC 地址。  PADR(PPPOE Active Discovery Request)报文 PPPOE Discovery 协议解码详解 PPPOE 发现阶段的第三步,也即是由用户主机向访问服务器发送单播的请求报文。当用户 主机收到 PADO 报文后,会从这些报文中挑选一个访问集中器作为后续会话的对象。由于 用户主机在收到 PADO 报文后,就获知了访问集中器的 MAC 地址,因此 PADR 报文所以 应的以太网帧的源地址填充用户主机的 MAC 地址,而以太网的目的地址填充为访问集中器 的 MAC 地址。  PADS(PPPOE Active Discovery Session-confirmation)报文 PPPOE 发现阶段的第四步,也即是最后一步,此时访问集中器当收到 PADR 报文时,就准 备进入开始一个 PPP 的会话了,而此时访问集中器会为在这个会话分配一个唯一的会话进 程 ID,并在发送给主机的 PADS 报文中携带上这个会话 ID。当然如果访问集中器不满足 用户所申请的服务的话,则会向用户发送一个 PADS 报文,而其中携带一个服务名错误的 标记,而且此时该 PADS 报文中的会话 ID 填充 0x0000。  PADT(PPPOE Active Discovery Terminate)报文 PADT 报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个 PPPOE 会 话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的 MAC 地址 二、 PPPOE Discovery 详细解码 我们使用科来网络分析系统捕获 PPPOE 数据包,如图 3, 成都科来软件有限公司 http://www.colasoft.com.cn 电话:028-85120922 传真:028-85120911 4 / 5 Email:sales@colasoft.com.cn support@colasoft.com.cn
PPPOE Discovery 协议解码详解 (图 3 PPPOE Discovery 的详细解码) 查看科来网络分析系统中的详细解码,可以看出这是 PPPOE 发现阶段的第一步的 PADI 报 文,我们来详细说明:  版本:1,协议中给出了明确的规定,这个域的内容填充 0x1。  类型:1 协议中也给了明确的规定,这里也职能填充 0x1  代码:0x09,表示该报文是发现阶段的 PADI 报文  会话 ID:0,表示还没有会话 ID  长度:16,表示 PPPOE 数据报文中净载荷的长度  PPP 发现标记:在面我们列出的标记类型表可以看出 以上主要是对 PPPOE Discovery 协议及详细解码的介绍。 成都科来软件有限公司 www.colasoft.com.cn 2006 年 6 月 成都科来软件有限公司 http://www.colasoft.com.cn 电话:028-85120922 传真:028-85120911 5 / 5 Email:sales@colasoft.com.cn support@colasoft.com.cn
分享到:
收藏