问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

什么是 PPPoE 点对点协议?

创作时间:
作者:
@小白创作中心

什么是 PPPoE 点对点协议?

引用
1
来源
1.
https://www.ruodian360.com/tech/networking/54729.html

什么是PPPoE?

PPPoE是以太网链路层上的点对点协议,用于在以太网上建立PPPoE连接,建立PPP会话,并将PPP帧封装在PPPoE帧中。它使用户能够连接到远程接入设备,提供经济高效的用户接入和强大的访问控制。PPPoE支持通过以太网实现多用户主机的远程接入,并生成计费数据以供传输,以解决上网计费等应用问题。因此,PPPoE广泛应用于运营商网络接入。

应对 PPPoE 挑战

PPP是一种用于点对点通信的协议,允许一个节点以独占方式与另一个指定节点连接。PPP位于OSI参考模型的第二层和TCP/IP模型的数据链路层,主要用于通过全双工异步链路点对点传输数据。身份验证是PPP的一项重要功能,但它不提供地址信息。由于以太网的广播特性,PPP不能直接用于以太网链路。

以太网虽然具有简单、成本低廉等优点,但是其广播特性给通信方的身份认证带来了挑战,导致通信不安全。

为了应对这些挑战,同时在现有基础设施内保持经济高效的网络运营,PPPoE技术提供了一种解决方案。PPPoE集成了PPP的身份验证功能,用于验证通信双方的身份。利用PPP网络框架,PPP帧被封装在PPPoE帧中,以实现以太网上的点对点通信。这使以太网客户端能够无缝连接到远程宽带接入设备。

PPPoE 特性

PPPoE提供以下功能:

功能方面:

  • PPPoE结合了PPP的优点,加入了传统以太网所不支持的身份验证、加密和压缩等功能。
  • PPPoE采用不同的会话ID来保证用户的安全。

应用方面:

  • PPPoE拨号是目前终端连接到ISP网络实现宽带接入的主流方式。
  • PPPoE可以应用于以太网接口,包括电缆调制解调器、数字用户线路(DSL)等,为用户提供通过以太网协议接入服务。

简单来说,PPPoE结合了以太网的成本优势和PPP的可管理、可控制的特点,实现了Internet接入。对于运营商来说,可以充分利用现有的电信接入网架构和拨号网络资源,而不需要对运营和管理模式进行大的改变。而对于用户来说,可以享受到与传统拨号上网类似的用户体验。

PPPoE 连接是如何建立的?

PPPoE 数据包

PPPoE数据包由封装在以太网帧内的PPP数据包组成。下图说明了数据包封装结构。

PPPoE数据包的结构

以下是PPPoE数据包字段说明

    1. Ver ——表示PPPoE版本号。该字段长度为4位,必须设置为0x1。
    1. Type ——表示PPPoE类型,该字段长度为4位,必须设置为0x1。
  • 3.Code ——表示PPPoE数据包类型,该字段长度为8位,取值可以为:0x00(会话数据)、0x09(PADI数据包)、0x07(PADO或PADT数据包)、0x19(PADR数据包)、0x65(PADS数据包)。
    1. Session_ID ——表示PPP会话ID。该字段长16位。该值对于给定的PPP会话是固定的,并与以太网源地址和目标地址一起定义PPP会话。0xffff值保留供将来使用,不得使用。
    1. Length ——表示PPPoE负载的长度,该字段长16位,不包括以太网头和PPPoE头的长度。

建立 PPPoE 连接的阶段

PPPoE采用客户端/服务器模型。如下图所示,PPPoE网络中的基本角色包括PPPoE客户端、PPPoE服务器和RADIUS设备。

PPPoE接入组网图

PPPoE用户上线过程包括发现和PPP会话两个阶段。发现阶段包括选择PPPoE服务器,确定要建立的会话ID。PPP会话阶段包括标准的PPP流程,包括LCP协商、PAP/CHAP认证、NCP协商等。

PPPoE的工作流程

下图显示了PPPoE发现和PPP会话阶段的时间顺序。

探索阶段

在发现阶段,设备会为用户分配一个会话ID,这个会话ID用来标识用户和设备之间建立的一条PPPoE虚链路。

    1. PPPoE客户端通过广播PPPoE主动发现启动(PADI)数据包来启动连接过程,并指定请求的服务类型。
    1. 以太网内的所有PPPoE服务器收到PADI数据包后,会将请求的服务与自己提供的服务进行比较,能够提供所请求服务的PPPoE服务器会以PPPoE主动发现提供(PADO)数据包进行响应。
    1. PPPoE客户端可能会收到来自不同PPPoE服务器的多个PADO数据包。客户端会根据某些标准从提供PADO数据包的服务器中选择一个合适的PPPoE服务器,并向所选服务器发送PPPoE主动发现请求(PADR)数据包,其中指定所请求服务的详细信息。
    1. 收到PADR数据包后,指定的PPPoE服务器会生成一个独特的会话ID,以标识服务器与客户端之间建立的PPPoE会话。随后,PPPoE服务器会使用包含唯一会话ID的PPPoE主动发现会话确认(PADS)数据包响应PPPoE客户端。如果没有发生错误,PPPoE服务器将转换到PPP会话阶段。同样,PPPoE客户端在收到PADS数据包且没有遇到任何错误后,也会进入PPP会话阶段。

PPP 会话阶段

PPP会话阶段包括LCP协商、PAP/CHAP认证、NCP协商。

  • LCP协商

进入PPP会话阶段后,开始LCP协商,具体步骤如下:

  • 1、PPPoE客户端和PPPoE服务器双方交互LCP Configure-Request报文。

    1. 两端收到Configure-Request报文后,根据报文中包含的协商选项进行响应(具体见下表),如果两端都回复Configure-ACK报文,则表示LCP链路建立成功。在此之前,两端会继续交互LCP Configure-Request报文。
  • 如果两端在指定的LCP协商时间内,以及LCP协商定时器超时之前,都发送了Configure-ACK报文,则LCP链路建立成功。

  • 如果在LCP协商定时器超时之前没有收到Configure-ACK数据包,则LCP协商终止。

    1. LCP链路建立后,PPPoE服务器会定期向PPPoE客户端发送LCP Echo-Request报文,并等待客户端的Echo-Reply报文,以此来验证LCP链路的正常性。
  • PAP/CHAP 身份验证

LCP协商完成后,进入认证阶段,支持PAP、CHAP两种认证方式。

PAP 验证

PAP是一种双向握手协议,使用以明文传输的用户名和密码来验证用户。PPPoE服务器(或RADIUS服务器)根据本地用户表验证用户名和密码的正确性。此方法适用于对网络安全要求较低的环境。

CHAP 身份验证

CHAP认证是PPPoE服务器(或RADIUS服务器)用来验证用户名和密码与本地用户表是否正确的三次握手协议。在CHAP认证模式下,只有用户名(而不是用户密码)在网络上传输,与PAP认证相比,安全性更高。

  • NCP协商

NCP协商主要处理PPP数据包中的网络层参数,例如IPCP和IPv6CP。PPPoE客户端主要利用IPCP获取网络连接的IP地址或IP地址范围。

NCP协商过程与LCP协商过程类似,协商成功后,PPPoE客户端即可正常访问网络。

当NCP协商成功后,PPPoE客户端会自动发起在线连接,随后PPPoE服务器(一般是BRAS)会向RADIUS服务器发送计费请求报文,由RADIUS服务器对PPPoE客户端进行计费管理。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号