pppoe白皮书
转:https://blog.csdn.net/achejq/article/details/19478811
PPPoE技术白皮书
关键词:PPP,Ethernet,PPPoE
摘 要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术。本文介绍了PPPoE的产生背景、技术优点、工作过程和典型组网应用。
缩略语:
缩略语 |
英文全名 |
中文解释 |
ADSL |
Asymmetric Digital Subscriber Line |
非对称数字用户线 |
DSLAM |
Digital Subscriber Line Access Multiplexer |
数字用户线接入复用器 |
PPP |
Point to Point Protocol |
点对点协议 |
PPPoE |
PPP Over Ethernet |
在以太网上承载PPP协议 |
PADI |
PPPoE Active Discovery Initiation |
PPPoE活动发现发起报文 |
PADO |
PPPoE Active Discovery Offer |
PPPoE活动发现提供报文 |
PADR |
PPPoE Active Discovery Request |
PPPoE活动发现请求报文 |
PADS |
PPPoE Active Discovery Session-confirmation |
PPPoE活动发现会话报文 |
PADT |
PPPoE Active Discovery Terminate |
PPPoE活动发现终结报文 |
1 概述
1.1 产品背景
人们想通过相同的接入设备来连接到远程站点上的多个主机,同时接入设备能够提供与拨号上网类似的访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP的方法,即PPPoE。
PPPoE协议的提出解决了用户上网收费等实际应用问题,得到了宽带接入运营商的认可并广为采用。
1.2 技术优点
对于用户来说,PPPoE的优点如下:
l 沿袭传统的拨号上网方式,依旧使用他们熟悉的硬件以及类似的软件进行Internet的接入。
l 兼容现有的所有xDSL Modem,不需要对客户端的xDSL Modem进行复杂的配置。
l 使用以太网网卡连接PC和xDSL Modem,允许多台PC同时共享xDSL线路,可以节约用户投资。
对于运营商来说,PPPoE的优点如下:
l 运营商可以通过数字用户线、电缆调制解调器或无线连接等方式提供支持多用户的宽带接入服务。
l 运营商可以利用可靠和熟悉的技术来加速部署高速互联网业务,对现有网络部署影响小。
l 运营商可以通过访问控制功能对用户的身份进行确认,通过计费功能对用户进行计费,同时对用户的网络行为进行监控,保证了网络安全。
l 终端用户可同时接入多个运营商,这种动态服务选择的功能可以使运营商容易创建和提供新的业务。
2 PPPoE技术实现方案
2.1 PPPoE组网结构
PPPoE使用Client/Server模型,PPPoE的客户端为PPPoE Client,PPPoE的服务器端为PPPoE Server。PPPoE Client向PPPoE Server发起连接请求,两者之间会话协商通过后,PPPoE Server向PPPoE Client提供接入控制、认证等功能。
根据PPP会话的起止点所在位置的不同,有两种组网结构:
l 第一种方式在设备之间建立PPP会话,所有主机通过同一个PPP会话传送数据,主机上不用安装PPPoE客户端拨号软件,一般是一个企业(公司)共用一个账号(图中PPPoE Client位于企业/公司内部,PPPoE Server是运营商的设备)。
图1 PPPoE组网结构图1
l 第二种部署方式,PPP会话建立在Host和运营商的路由器之间,为每一个Host建立一个PPP会话,每个Host都是PPPoE Client,每个Host一个帐号,方便运营商对用户进行计费和控制。Host上必须安装PPPoE客户端拨号软件。
图2 PPPoE组网结构图2
2.2 PPPoE报文格式
PPPoE报文的格式就是在以太网帧中携带PPP报文,如图3所示。
各个字段解释如下:
l Destination_address域:一个以太网单播目的地址或者以太网广播地址(0xffffffff)。对于Discovery数据包来说,该域的值是单播或者广播地址,PPPoE Client寻找PPPoE Server的过程使用广播地址,确认PPPoE Server后使用单播地址。对于Session阶段来说,该域必须是Discovery阶段已确定的通信对方的单播地址。
l Source_address域:源设备的以太网MAC地址。
l Ether_type:设置为0x8863(Discovery阶段或拆链阶段)或者0x8864(Session阶段)。
l Ver域:4bits,PPPoE版本号,值为0x1。
l Type域:4bits,PPPoE类型,值为0x1。
l Code域:8bits,PPPoE报文类型。Code域为0x00,表示会话数据。Code域为0x09,表示PADI报文;Code域为0x07,表示PADO或PADT报文;Code域为0x19,表示PADR报文;Code域为0x65,表示PADS报文。报文的具体情况请参见附录部分。
l Session_ID域:16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。
l Length域:16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。
2.3 PPPoE工作过程
PPPoE的协商过程如图4所示:
图4 PPPoE协商过程
PPPoE可分为三个阶段,即Discovery阶段、Session阶段和Terminate阶段。
2.3.1 Discovery阶段
Discovery阶段由四个过程组成。完成之后通信双方都会知道PPPoE的Session_ID 以及对方以太网地址,它们共同确定了唯一的PPPoE Session。
(1) PPPoE Client广播发送一个PADI报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
(2) 所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO报文。
(3) 根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR报文。
(4) PPPoE Server产生一个唯一的会话ID(SESSION ID),标识和PPPoE Client的这个会话,通过发送一个PADS报文把会话ID发送给PPPoE Client,如果没有错误,会话建立后便进入PPPoE Session阶段。
2.3.2 Session阶段
PPPoE Discovery阶段的工作为PPPoE Client和PPPoE之间建立了Session,之后PPPoE便进入了Session阶段,Session阶段可划分为两部分,一是PPP协商阶段,二是PPP报文传输阶段。
PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
(1) LCP阶段主要完成建立、配置和检测数据链路连接。
(2) LCP协商成功后,开始进行认证工作,认证协议类型由LCP协商结果(CHAP或者PAP)决定。
(3) 认证成功后,PPP进入NCP阶段,NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP和DNS等工作。
PPPoE Session的PPP协商成功后,其上就可以承载PPP数据报文。
在PPPoE Session阶段所有的以太网数据包都是单播发送的。
2.3.3 Terminate阶段
PPP通信双方应该使用PPP协议自身(比如PPP终结报文)来结束PPPoE会话,但在无法使用PPP协议结束会话时可以使用PADT报文。
进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了,即使是常规的PPP结束数据包也不允许发送。
3 典型组网应用
3.1 利用ADSL Modem将局域网接入Internet
3.1.1 组网需求
企业希望使用一个公共帐号访问Internet:
l Router A作为PPPoE Client,通过一个帐号访问Internet(相当于整个企业的员工公用这个帐号)。
l Router B作为PPPoE Server连接至DSLAM,提供RADIUS认证、计费等功能,同时连接到Internet。
3.1.2 组网图
图5 利用ADSL Modem将局域网接入Internet组网图
3.2 无线PPPoE接入
3.2.1 组网需求
AP设备作为PPPoE Client,BRAS设备作为PPPoE Server,终端用户可以直接通过无线网络访问Internet。
3.2.2 组网图
图6 无线PPPoE接入组网图
4 参考文献
l RFC1661:The Point-to-Point Protocol (PPP)
l RFC2516:A Method for Transmitting PPP Over Ethernet (PPPoE)
5 附录
5.1 报文结构
1. PADI(PPPoE Active Discovery Initiation)
l Code域为0x09。
l Session_ID域为0x0000。
l TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。
图7 PADI数据包举例
2. PADO(PPPoE Active Discovery Offer)
l Code域为0x07。
l SESSION_ID域为0x0000。
l TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称;为0x0102(AC-Name)表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。有且只有一个TAG_TYPE为AC-Name的TAG,至少一个TAG_TYPE为Service-Name的TAG。
图8 PADO数据包举例
3. PADR(PPPoE Active Discovery Request)
l Code域为0x19。
l SESSION_ID为0x0000。
l TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。
图9 PADR数据包举例
4. PADS(PPPoE Active Discovery Session-confirmation)
l Code域为0x65。
l SESSION_ID为Discovery阶段分配的数值。
l TAG为可选。
图10 PADS数据包举例
5. PADT(PPPoE Active Discovery Terminate)
l Code域为0xa7。
l SESSION_ID域为Discovery阶段分配的数值。
l 无TAG。
图11 PADT数据包举例
pppoe白皮书的更多相关文章
- PPPoE技术白皮书(H3C)
PPPoE技术白皮书 关键词:PPP,Ethernet,PPPoE 摘要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术.本文介绍了PPP ...
- 树莓派pppoe
连接的网络是移动(铁通)的宽带,不同的宽带的dns需要修改. 1.首先安装pppoe包 apt-get install pppoe 2.然后,复制conf文件/etc/ppp/pppoe.conf: ...
- dd-wrt 定时重连 pppoe 更换ip地址
因为做代理,IP时常被封的原因,所以,需要每天定时重启路由器,重启路由器影响太大,所以重新拨号是一个更好的选择. 在dd-wrt里面,杀掉pppoe服务进程就可以了,这个进程会自动重新启动,然后就相当 ...
- PPPoE(以太网上的点对点协议)
协议概述 PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段.当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个 ...
- Configure PPPoE on CentOS7
Why? I prefer using ethernet to Wifi to access internet. But, I'm afraid, sometimes I have to use Wi ...
- Java白皮书的关键术语
“白皮书”可以在http://www.oracle.com/technetwork/java/langenv-140151.html上找到. 1.简单性. 2.面向对象. 3.网络技能(Network ...
- WPF路线图白皮书: 2015及未来
介绍 当2006年微软首次推出Windows Presentation Foundation(WPF)时,它代表了应用程序的设计和开发又向前跨出了巨大的一步.它简化了GUI应用程序的开发,有助于UI和 ...
- openwrt刷机后配置PPPOE上网方法
参考下帖13#的方式: 如何编辑配置openwrt,来实现pppoe拨号上网? 但其中有一句代码有错误: option 'peerdns' '0',其中需将‘0’改为‘1’
- PPPoE名词解释
PPPoE拔号的发现阶段(Discovery): PPPoE的发现阶段一共分为4步. 分别是: PADI(PPPoE Active Discovery Initiation) PADO(PPPoE A ...
随机推荐
- Android 混淆完全解析
1.http://blog.csdn.net/jddkdd2/article/details/8858909
- Spring MVC列表多选框
以下示例显示如何在使用Spring Web MVC框架的表单中使用列表框(Listbox).首先使用Eclipse IDE来创建一个WEB工程,实现一个让用户可选择自己所善长的技术(多选)的功能.并按 ...
- Eclipse Debug 调试
Debug 调试 Java 程序 我们可以在 Package Explorer 视图调试 Java 程序,操作步骤如下: 鼠标右击包含 main 函数的 java 类 选择 Debug As > ...
- 《深入浅出WPF》笔记——事件篇
如果对事件一点都不了解或者是模棱两可的话,建议先去看张子阳的委托与事件的文章(比较长,或许看完了,也忘记看这一篇了,没事,我会原谅你的)http://www.cnblogs.com/JimmyZhan ...
- caffe net 可视化工具,,层特征可视化
1.只用网络在线结构绘制可视化网络模型 http://ethereon.github.io/netscope/#/editor 将对应的网络输入到里面,然后按shift+enter即可查看对应的网络结 ...
- Caffe模型读取
caffe模型最终保存使用过的protobuf形式,将一个已经训练好的caffe模型读取出来,可以参考如下: 1,包含的头文件: #include <google/protobuf/io/cod ...
- 在DLL中动态加载其所依赖的dll
windows下LoadLibrary函数的搜索顺序是先搜索system32等系统环境变量path下注册过的路径,然后是当前路径. 这里的相对路径是指的主exe所在路径,并且相对路径在程序运行过程中可 ...
- C字符串复制
void mystrcpy(char *from, char *to) { for(; *from != '\0'; from++, to++) { *to = *from; } *to = '\0' ...
- nyoj677 谍战
本题能够说是最小割入门级题目. 假设能想到是最小割问题.那么建图思路便是水到渠成的事了. 加入一个源点S和汇点T: 把S与每一个间谍相连.容量为无穷大: 把城市N(即飞机场的位置)与汇点T相连.容量为 ...
- Java的版本历史与特性
一个比较流行的问题是,“Java下一个版本会有什么特性呢?” .这是否是个好问题却有待商榷.在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在 ...