什么是PPPoE?PPPoE解决了哪些问题?
PPPoE(Point-to-Point Protocol over Ethernet)可以称作为以太网上的PPP协议,应用在链路层。它通过在以太网上提供点到点的连接,建立PPP会话,封装PPP报文为PPPoE报文。PPPoE技术可以将用户连接到远程接入设备上,并提供良好访问控制功能,提供了一种经济的用户接入技术,并实现了对用户的控制。 PPPoE利用以太网络,提供远程的多个用户主机接入功能,并且能够提供数据传输的计费数据,解决用户上网收费等实际应用问题,因而被广泛应用于接入运营商网络。
PPPoE解决了哪些问题?
PPP协议是一种点对点协议,点对点的含义即为一个节点只能访问另一个指定的节点。PPP协议处于OSI(Open Systems Interconnection)参考模型的第二层,即TCP/IP数据链路层,主要用于全双工的异步链路上进行点到点的数据传输。PPP协议的一个重要功能便是提供了身份验证功能。但是PPP协议虽然提供了通信双方身份验证的功能,其协议中没有提供地址信息,而以太网是一个广播类型的多路访问网络,因而PPP协议是无法直接应用在以太网链路上的。
以太网技术虽然具有简单易用,成本低等特点,但是以太网广播网络的属性,使得其通信双方无法相互验证对方的身份,因而通信是不安全的。
如何解决以上问题,同时又在现有的网络结构基础上,保证网络的低成本运营?答案便是:PPPoE技术。PPPoE结合了PPP协议通信双方身份验证的功能,在PPP组网结构的基础上,将PPP报文封装成PPPoE报文,从而实现以太网上的点对点通信,使得以太网中的客户端能够连接到远端的宽带接入设备上。
PPPoE的特点
PPPoE具有以下特点:
功能上:
- PPPoE由于集成了PPP协议,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。
- PPPoE通过唯一的Session ID可以很好的保障用户的安全性。
应用上:
- PPPoE拨号上网作为一种最常见的方式让终端设备能够连接ISP从而实现宽带接入。
- PPPoE可用于缆线调制解调器(Cable Modem)和数字用户线路(DSL)等以太网线,通过以太网协议向用户提供接入服务的协议体系。
总而言之,PPPoE技术将以太网技术的经济性与PPP协议的可管理控制性结合在一起,提供接入互联网的功能。对于运营商来说,它能够最大限度地利用电信接入网现有的体系结构,利用现有的拨号网络资源,运营和管理的模式也不需要很大的改变;对于用户来说,使用感与原来的拨号上网没有太大区别,较容易接受。
PPPoE如何建立连接?
本节将介绍PPPoE的报文结构以及PPPoE建立连接的几个阶段。
PPPoE报文
在了解PPPoE建立连接的阶段之前,我们先来了解下PPPoE协议的报文结构,PPPoE报文的格式就是在以太网帧中携带PPP报文,报文封装结构如下图所示。
PPPoE协议报文结构图
表1-1 PPPoE报文字段说明
报文字段 | 说明 |
---|---|
Ver域 | 4bits,PPPoE版本号,值为0x1。 |
Type域 | 4bits,PPPoE类型,值为0x1。 |
Code域 | 8bits,PPPoE报文类型。Code域为0x00,表示会话数据。Code域为0x09,表示PADI报文;Code域为0x07,表示PADO或PADT报文;Code域为0x19,表示PADR报文;Code域为0x65,表示PADS报文。 |
Session_ID域 | 16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。 |
Length域 | 16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。 |
PPPoE建立连接的阶段
在了解PPPoE建立连接的阶段之前,先了解下PPPoE组网结构中的各种角色。
PPPoE协议采用Client/Server模式,如PPPoE接入组网图所示,基本的PPPoE组网中的角色有PPPoE Client,PPPoE Server,以及RADIUS设备。
PPPoE接入组网图
PPPoE用户上线需要经过两个阶段,发现阶段和PPP会话阶段。发现阶段主要是选择PPPoE服务器,并确定索要建立的会话标识符Session ID。PPP会话阶段即执行标准的PPP过程,包括LCP协商、PAP/CHAP认证、NCP协商等阶段。
PPPoE工作原理实现过程
具体的PPPoE发现阶段和PPP会话阶段的时序如下图所示。
PPPoE发现阶段和PPP会话阶段时序图
发现阶段
发现阶段是指设备为用户分配接入的Session ID,用来标识一条用户与设备之间的PPPoE虚拟链路。
- PPPoE Client广播一个PADI(PPPoE Active Discovery Initiation,PPPoE激活发现起始)报文,在此报文中包含用户想要得到的服务类型信息。
- 以太网内的所有PPPoE Server在收到这个初始化报文后,将其中请求的服务与自己能提供的服务进行比较,其中可以为PPPoE Client提供此服务的PPPoE Server会回应PADO(PPPoE Active Discovery Offer,PPPoE激活发现服务)报文。
- PPPoE Client可能会收到多个PPPoE Server回应的PADO报文。PPPoE Client会根据一定的条件从返回PADO报文的PPPoE Server中选定符合条件的PPPoE Server,并向它返回一个会话请求报文PADR(非广播)(PPPoE Active Discovery Request,PPPoE激活发现请求),在PADR报文中封装所需的服务信息。
- 被选定的PPPoE Server在收到PADR报文后,PPPoE Server会产生一个唯一的会话标识以标识它和PPPoE Client的这段PPPoE会话。并把这个特定的会话标识包含在会话确认报文PADS(PPPoE Active Discovery Session-confirmation,PPPoE激活发现会话确认)中回应给PPPoE Client,如果没有错误发生就进入到PPP会话阶段,而PPPoE Client在收到会话确认报文后如果没有错误发生也进入到PPP会话阶段。
PPP会话阶段
PPP会话阶段包括LCP协商、PAP/CHAP认证、NCP协商等阶段。
-
LCP协商
进入PPP会话阶段之后,首先进行LCP协商,LCP协商过程如下。
- PPPoE Client与PPPoE Server互相发送LCP Configure-Request报文。
- 双方收到Configure-Request报文后,根据报文中协商选项支持情况做出适当的回应(请参见下表)。若两端都回应了Configure-ACK,则标志LCP链路建立成功,否则会继续发送Request报文:
- 如果在设定的LCP协商间隔与协商次数内,对端回应了Configure-ACK,则LCP链路建立成功。
- 如果在超过了设定的LCP协商次数后,对端尚未回应Configure-ACK,则终止LCP协商。
- LCP链路建立成功后,PPPoE Server会周期性地向PPPoE Client发送LCP Echo-Request报文,然后接收PPPoE Client回应的Echo-Reply报文,来探测LCP链路是否正常,以维持LCP连接。
表1-2 回应报文类型列表
回应报文类型 含义 Configure-ACK 若完全支持对端的LCP选项,则回应Configure-ACK报文,报文中必须完全协带对端Request报文中的选项。 Configure-NAK 若支持对端的协商选项,但不认可该项协商的内容,则回应Configure-NAK报文,在Configure-NAK的选项中填上本端期望的内容,如:对端MRU值为1500,而本端期望MRU值为1492,则在Configure-NAK报文中填上1492。 Configure-Reject 若不能支持对端的协商选项,则回应Configure-Reject报文,报文中带上不能支持的选项 -
PAP/CHAP认证
LCP协商完成后,会进入认证阶段,该分为PAP认证和CHAP认证两种认证方式。
PAP认证
PAP为两次握手协议,是通过用户名和密码来对用户进行认证,并且是以明文的方式传递用户名和密码。PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确。适用于网络安全要求相对较低的环境。
CHAP认证
CHAP认证为三次握手协议,也是由PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确。但是CHAP认证方式只在网络上传输用户名,不传输用户密码,安全性比PAP要高。
-
NCP协商
NCP协商的主要功能是协商PPP报文的网络层参数,如IPCP、IPv6CP等。PPPoE Client主要通过IPCP协议来获取访问网络的IP地址或IP地址段。
NCP协商的流程与LCP流程类似。NCP协商成功之后,PPPoE Client可以正常访问网络。
NCP协商成功之后,即为PPPoE Client上线,此时PPPoE Server(通常为BRAS设备),会给RADIUS服务器发送计费请求报文,通过RADIUS服务器对PPPoE Client进行计费。
PPPoE与IPoE相比有哪些不同?
目前,PPPoE和IPoE作为用户接入两大最常见的接入方式,已经实现了广泛的应用。虽然两者都属于用户接入的方式,但PPPoE和IPoE之间有很大的区别。接下来对PPPoE和IPoE进行对比。
IPoE是一种在以太网络上直接封装传输IP报文的用户接入方式。IPoE技术依赖DHCP协议提供IP地址,但是DHCP协议本身并不具备建立链路、认证用户以及链路监测的功能。因而IPoE技术将DHCP协议和可扩展身份验证协议,例如Web协议,802.1x协议等,结合在一起,提供了与PPPoE相同的功能。详细对比如下图所示。
PPPoE和IPoE对比图
PPPoE的认证方式,可管理性强,本身安全性很高,其代价是限制了网络的使用范围和组播业务的开展,因此在HSI(High Speed Internet)高速上网业务和光纤宽带拨号上网业务应用比较广泛,给学校、企业、家庭用户带来了快速、方便的宽带接入方式。IPoE可以自主管理IP地址的使用期限,可以在局域网范围内进行设置,无需客户端软件,操作简单,但是需要配合其他协议来进行认证,在IPTV/VoIP业务上应用比较广泛。
IPoE的安全性方面需要家庭网关,网络接入设备,宽带网络网关协同工作。其保证策略包括:反地址欺骗,用户终端数限制,防 Dos 攻击,业务隔离,非法组播源抑制,端口隔离。IPoE在组播业务场景下,可以将组播复制下移到靠近用户的设备,因此在互联网电视和语音方面得到了广泛应用。