华为路由与交换之PPPoE原理

PPPoE,(Point-to-Point Protocol over Ethernet)承载在以太网上的点到点协议,换句话说就是把PPP的帧通过以太的方式去进行传输。PPP协议的帧是在广域网中传输的,那么现在通过PPPoE协议,也可以让PPP的帧在以太网中进行传输。
相对于以太协议来说,PPPoE具有适用范围广、安全性高、计费方便等特点,可以进行认证和计费,被广大运营商所喜欢。

在早期电话比较普及的时候,运营商会采用电话线去传输网络信号,实际上电话线不能直接传输数字信号,因为它传输的是语音的模拟信号),如果使用电话线来传输数字信号的时候,则会使用一个调制解调器(一般被称之为猫),那么在之前电话座机比较普及的时候,会使用电话线来达到上网的目的,如下图所示是用电话线上网的方式。
华为路由与交换之PPPoE原理_第1张图片
由于电话线传输的距离并不是特别远,so对于非运营商用户来说最后一公里采用的是电话线,电话线的一端会连上运营商的DSLAM设备,另一端会连上用户侧的分线器设备,从分线器又分出来两根线,一根用作电话机,另外一根分出来用作调制解调器(猫),从调制解调器中出来用网线连接pc,(在PC上需要设置PPPoE)从pc上发出来的信号是数字信号,通过网线经过调制解调器(猫),这个调制解调器起到一个转换的作用,把数字信号转换成模拟信号,然后通过电话线的方式传到DSLAM中,DSLAM这个设备可以区分出来这个流量是语音流量还是一个上网的流量,如果是上网的流量,再通过以太网传到BRAS设备,在BRAS设备上做一些认证(从BRAS的数据库中匹配用户名,密码等信息),认证通过之后,用户才可以访问运营商的因特网。
数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的就是PPPoE协议。DSL是一种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装调制解调器,然后通过现有的电话线与数字用户线路接入复用器(DSLAM)相连。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备。
然后,DSLAM通过高速ATM网络或者以太网将用户的数据流量转发给宽带远程接入服务器(BRAS)。BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。

PPPoE在DSL中的应用

如下图所示,在运营商侧配置了PPPoE服务器,在客户端侧配置了PPPoE客户端,主机A往外发送的是以太数据,到达PPPoE客户端之后,发送出去的就是PPPoE的帧了,从Modem(调制解调器)出来之后,传输介质就是电话线了,那么传输的信号就是模拟信号,到达DSLAM之后,会通过网线将PPPoE的帧传送到PPPoE的服务器。
华为路由与交换之PPPoE原理_第2张图片

PPPoE报文的格式

PPPoE报文是使用Ethernet格式来进行封装的。如下图所示,PPPoE是封装在DMAC,SMAC,Type后面的,
华为路由与交换之PPPoE原理_第3张图片
Ethernet中各字段解释如下表所示:

名称 作用/含义
DMAC 目的设备的MAC地址
SMAC 源设备的以太网MAC地址
Type 协议类型字段,当值为0x8863时表示承载的是PPPoE发现阶段的报文。当值为0x8864时表示承载的是PPPoE会话阶段的报文

PPPoE字段中的各个字段解释如下表所示:

名称 作用/含义
VER PPPoE版本号,值为0x01
Type 表示类型,值为0x01
Code 表示PPPoE报文类型,不同取值标识不同的PPPoE报文类型
Session ID(PPPoE会话ID) 与以太网SMAC和DMAC一起定义了一个PPPoE会话
Length 表示PPPoE报文的Payload长度,不包括以太网头部和PPPoE头部的长度

PPPoE建立会话过程

PPPoE可分为三个阶段,即发现阶段、会话阶段和会话终结阶段,如下表所示:

阶段 描述
发现阶段 获取对方以太网地址,以及确定唯一的PPPoE会话
会话阶段 包含两部分:PPP协商阶段和PPP报文传输阶段
会话终结阶段 会话建立以后的任意时刻,发送报文结束PPPoE会话

发现阶段,会获取以太网地址,一个PPPoE服务器下面可能会有很多PPPoe客户端,那么这个服务器需要通过mac地址和pppoe报文里面的session id去区分每一个客户端所对应的PPPoE会话。
会话阶段就是之前博客里提到的PPP协商阶段(LCP的参数协商,认证阶段,NCP的网络协议协商)和PPPoE报文传输阶段,
如果现在要断开PPPoE拨号,就会进入会话终结阶段,断开PPPoE会话。在PPPoE建立会话的过程中会涉及到很多的消息,这些消息会承载在PPPoE协议的报文中。

PPPoE协议报文

PPPoE通过五种类型的报文来建立和终结PPPoE会话,如下表所示

类型 描述 作用
PADI(PPPoE Active Discovery Initiation) PPPoE发现初始报文 用户主机发起的PPPoE服务器探测报文,目的MAC地址为广播地址。
PADO(PPPoE Active Discovery Offer) PPPoE发现提供报文 PPPoE服务器收到PADI报文之后的回应报文,目的MAC地址为客户端主机的MAC地址。
PADR(PPPoE Active Discovery Request) PPPoE发现请求报文 用户主机收到PPPoE服务器回应的PADO报文后,单播发起的请求报文,目的地址为此用户选定的那个PPPoE服务器的MAC地址。
PADS(PPPoE Active Discovery Session Configuration) PPPoE发现会话确认报文 PPPoE服务器分配一个唯一的会话进程ID,并通过PADS报文发送给主机。
PADT(PPPoE Active Discovery Terminate) PPPoE发现终止报文 当用户或者服务器需要终止会话时,可以发送这种PADT报文。

PPPoE发现阶段

如下图所示,在这一个网络中有3个PPPoE服务器(一个运营商可能会在网络中部署多个PPPoE服务器,用于冗余备份),首先PPPoE客户端(RTA)并不了解网络中哪里有PPPoE服务器,所以会通过广播发送一个PADI报文,用于发现网络中的PPPoE服务器,这个报文中包含了客户端需要的服务信息。
华为路由与交换之PPPoE原理_第4张图片
服务器收到PADI报文之后,会对比自己能够提供的服务,如果能够提供服务,就会通过单播回复一个PADO报文,如下图所示,PPPoE服务器A和服务器B是可以提供客户端(RTA)所需要的服务的,而服务器C提供不了,就会保持沉默,不回复报文。
华为路由与交换之PPPoE原理_第5张图片
当PPPoE客户端收到多个PADO报文,会采用最先收到的PADO报文,并通过单播的方式给对应的PPPoE服务器回复PADR报文,告诉对方,我选择了你,如下图所示,PPPoE客户端在三个服务器之间选择了服务器A,就给PPPoE服务器A发送了PADR报文。

华为路由与交换之PPPoE原理_第6张图片
当PPPoE服务器收到了客户端发送的PADR之后,会生成唯一的PPPoE Session ID,并发送PADS报文给客户端,会话建立成功,如下图所示。
华为路由与交换之PPPoE原理_第7张图片
会话建立成功之后,PPPoE服务器和客户端会进入PPPOE会话阶段。

PPPoE会话阶段

PPPoE会话上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。LCP阶段主要完成建立、配置和检测数据链路连接。LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果决定。认证成功后,PPP进入NCP阶段,NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP地址和DNS服务器地址等。PPPoE会话的PPP协商成功后,就可以传输PPP数据。
注:PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。在这一阶段传输的数据包中必须包含在发现阶段确定的Session ID并保持不变。

PPPOE会话终结

当PPPoE客户端希望关闭连接时,可以向PPPoE服务器端发送一个PADT报文。同样,如果PPPoE服务器端希望关闭连接时,也可以向PPPoE客户端发送一个PADT报文,此报文用于关闭连接。
在PADT报文中,目的MAC地址为单播地址,Session ID是希望关闭的连接的Session ID。一旦收到一个PADT报文之后,连接随即关闭。
总的来说,PPPoE会话建立过程,如下图所示,PPPoE用户客户端向服务器发送一个PADI报文,开始PPPoE接入,服务器向客户端发送PADO报文,客户端根据自身的情况去回应,发起PADR请求给服务器。可以提供相应要求的服务器会产生一个Session ID,通过PADS发给客户端。客户端和服务器之间进行PPP的LCP协商,建立链路层通信。同时,协商使用认证方式,下图使用的是CHAP认证,服务器通过Challenge报文发送给认证客户端,客户端收到Challenge报文后,并将密码和Challenge做运算后,在Response回应报文中把结果发送给服务器。服务器根据用户发送的信息判断用户是否合法,然后回应认证成功/失败报文,将认证结果返回给客户端。认证成功之后,进行NCP(如IPCP)协商,通过服务器获取到规划的IP地址等参数。
华为路由与交换之PPPoE原理_第8张图片
OVER!

你可能感兴趣的:(运维)