曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3000|回复: 0
打印 上一主题 下一主题

PPPOE接入/ADSL接入/RFC1483桥接

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-4-4 15:49:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 《PPPOE 抓包分析(Discovery 阶段)》这个帖子里,通过在 PC 上抓包,观察了 ADSL 拨号时的 Discovery 阶段的通讯情况。可能会有疑问,以太网里广播的数据,怎么会通过电话线传送出去的?这有点不可思议。在这篇帖子里,就针对这个疑问进行解析,主要涉及 3 个关键词:PPPOE 接入,ADSL 接入 以及 RFC1483 桥接。
先看标准以太网帧结构,如下图所示



1. 标准以太帧使用类型字段来表示数据部分承载何种协议数据:

0800IP 数据报
0806ARP 请求/应答数据报
8035PARP 请求/应答数据报


2. 标准以太帧最大的长度为 1518 字节 (6 + 6 + 2 + 1500 + 4 = 1518)

再看 PPP 帧的格式(RFC 1331 中有定义),如下图所示



标志:PPP 帧以标准 HDLC 标志字节(01111110) 开始和结束。

地址:默认情况下,被设为二进制数 11111111,因为点到点线路的一个方向上只有一个接收方。

控制:默认情况下,被设为二进制数 00000011。如果 PPP 帧包含了其它控制值,则会被丢弃。

协议:表示 PPP 帧中数据部分承载的协议数据包,该处默认为 2 个字节。但如果是 LCP 包,那么可以是 1 个字节,其中有代表性的值是:
c021Link Control Protocol (用以 PPP 协商)
c023Password Authentication Protocol (PPP 认证)
c025Link Quality Report
8021Network Control Protocol
c223Challenge Handshake Authentication Protocol


再考察 PPPoE 帧头格式(RFC 2516)



版本:PPPoE 数据报文最开始的 4 位为版本域,协议中给出了明确的规定,该域的内容用 0x0 来填充。

类型:进阶在版本域后的 4 位是类型域,协议中同样规定,该域的内容用 0x01 填充。

代码:对于 PPPoE 的不同阶段,该域的内容也不一样。

会话ID:当访问集中器还未分配唯一的会话 ID 给用户主机的话,那么该域值为 0x0000。一旦主机获取了会话 ID 后,那么在后续的所有报文中该域都必须填充为那个唯一的会话ID值。

长度:用来指示 PPPoE 数据报文中静载荷的长度。

上面所述的几个结构的相互位置,以及一些工作情况:



下图为 PPPoE 组网接入示意图:


注意上图中,PPPOE 是 PC 机到家用路由这一段。图中的 CPE 是 Customer Premise Equipment 的缩写,指的是用户物理层硬件,这里可以认为就是 ADSL 拨号 Modem。

首先,不能将 RFC1483 和 PPPOE 这两个概念混淆,它们不是一种东西。PPPOE 定义在 RFC2516 里,它主要给出了在以太网帧上承载 PPP 的概念。之所以在 ADSL 接入中引入一个 1483桥 的概念,主要是因为 ADSL Modem 是 ATM 接入的,因此这里就又多了个在 ATM 信元上承载以太帧的概念。

PPPOE 模式和 1483 桥接模式的最大区别在于,传统的 IP 没有被承载在以太帧,而是被承载到 PPP 帧中,然后再把 PPP 帧封装到以太帧,这样带来的好处是可以针对用户账号计费,用户主机的 IP 地址可以动态分配,既节约了 IP 地址资源,也保证了网络的安全性。PPP 的建立过程和 IP 地址的获得过程需要有个认证过程,对于没有经过 PPP 包封装的 IP 包会被全部丢掉,PPP Session_ID 号不对的 PPP 帧也会被全部丢掉。

ADSL 接入过程描述

1. 用户 PC 产生一个封装了 PPP 帧的 IP 包(所谓 PPPOE 也就是此意),PPP 帧被封装金指向 BAS (宽带接入服务器)的以太网帧。然后一个 PPPOE 的包头被添加进以太网帧的开始位置。

2. 接收到以太网帧,并将整个帧封装进 ATM 信元中去。然后一个 RFC1483 的包头被添加进信元的开始位置,指示出这个信元包含一个桥接的以太网帧。其实 1483 封装和 PPPOE 没有必然联系,只不过 CPE 是 ATM 上行的,为了在 ATM 上封装以太网包,所以采用了 1483 桥的模式。假如 PC 机直接接到一台交换机上,同样可以 PPPOE 拨号。

3. 然后信元通过 PVC 传送到 BAS 端。

4. BAS 接收到信元后,剥离 RFC1483 报头以及以太网帧,然后验证类型域是否为 PPPOE。如果类型域不是 PPPOE 的话,BAS 就会丢掉此帧;如果是 PPPOE 的话,BAS 会剥离 PPP 封装,然后对其中的 IP 地址进行寻址,从而决定 BAS 的下一跳接口。

5. 最后 BAS 封装 IP 包到合适的层二帧并发送给 Internet 。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 21:28 , Processed in 0.083797 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表