计算机网络:PPPoE(以太网上的PPP协议)

PPPoE(Point-to-Point Protocol over Ethernet)

PPP协议处于OSI(Open Systems Interconnection)参考模型的第二层,即TCP/IP数据链路层,主要用于全双工的异步链路上进行点到点的数据传输。PPP协议的一个重要功能便是提供了身份验证功能。但是PPP协议虽然提供了通信双方身份验证的功能,其协议中没有提供地址信息,而以太网是一个广播类型的多路访问网络,因而PPP协议是无法直接应用在以太网链路上的。它通过在以太网上提供点到点的连接,建立PPP会话,封装PPP报文为PPPoE报文。PPPoE技术可以将用户连接到远程接入设备上,并提供良好访问控制功能,提供了一种经济的用户接入技术,并实现了对用户的控制。
PPPoE利用以太网络,提供远程的多个用户主机接入功能,并且能够提供数据传输的计费数据,解决用户上网收费等实际应用问题,因而被广泛应用于接入运营商网络。

PPPoE具有以下特点:

功能上:
PPPoE由于集成了PPP协议,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。
PPPoE通过唯一的Session ID可以很好的保障用户的安全性。

应用上:
PPPoE拨号上网作为一种最常见的方式让终端设备能够连接ISP从而实现宽带接入。
PPPoE可用于缆线调制解调器(Cable Modem)数字用户线路(DSL)等以太网线,通过以太网协议向用户提供接入服务的协议体系。
总而言之,PPPoE技术将以太网技术的经济性与PPP协议的可管理控制性结合在一起,提供接入互联网的功能。对于运营商来说,它能够最大限度地利用电信接入网现有的体系结构,利用现有的拨号网络资源.

PPPoE报文

计算机网络:PPPoE(以太网上的PPP协议)_第1张图片
转自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html

报文字段 说明
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协议采用(CS)Client/Server模式,如PPPoE接入组网图所示,基本的PPPoE组网中的角色有PPPoE Client,PPPoE Server,以及RADIUS设备。

计算机网络:PPPoE(以太网上的PPP协议)_第2张图片
转自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html

PPPoE用户上线需要经过两个阶段,发现阶段PPP会话阶段。发现阶段主要是选择PPPoE服务器,并确定索要建立的会话标识符Session ID。PPP会话阶段即执行标准的PPP过程,包括LCP协商、PAP/CHAP认证、NCP协商等阶段。

计算机网络:PPPoE(以太网上的PPP协议)_第3张图片
转自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html

PPPoE工作原理实现过程
具体的PPPoE发现阶段和PPP会话阶段的时序如下图所示。

计算机网络:PPPoE(以太网上的PPP协议)_第4张图片

转自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
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协商过程如下。

  1. PPPoE Client与PPPoE Server互相发送LCP Configure-Request报文。
  2. 双方收到Configure-Request报文后,根据报文中协商选项支持情况做出适当的回应(请参见下表)。若两端都回应了Configure-ACK,则标志LCP链路建立成功,否则会继续发送Request报文:
1.如果在设定的LCP协商间隔与协商次数内,
对端回应了Configure-ACK,则LCP链路建立成功。
2.如果在超过了设定的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(以太网上的PPP协议)_第5张图片
转自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html

PPPoE的认证方式,可管理性强,本身安全性很高,其代价是限制了网络的使用范围和组播业务的开展,因此在HSI(High Speed Internet)高速上网业务和光纤宽带拨号上网业务应用比较广泛,给学校、企业、家庭用户带来了快速、方便的宽带接入方式。IPoE可以自主管理IP地址的使用期限,可以在局域网范围内进行设置,无需客户端软件,操作简单,但是需要配合其他协议来进行认证,在IPTV/VoIP业务上应用比较广泛。

IPoE的安全性方面需要家庭网关,网络接入设备,宽带网络网关协同工作。其保证策略包括:反地址欺骗,用户终端数限制,防 Dos 攻击,业务隔离,非法组播源抑制,端口隔离。IPoE在组播业务场景下,可以将组播复制下移到靠近用户的设备,因此在互联网电视和语音方面得到了广泛应用。

你可能感兴趣的:(计算机网络,经验分享)