PPPoE(Point-to-Point Protocol over Ethernet)技术

2020-06-17 11:31:40 浏览数 (1)

概述

产生背景

随着运营商对宽带接入技术要求的不断提高,以 xDSL、CableModem以太网为主的几种宽带接入技术在用户管理和计费等方面的不足开始显露,已无法满足运营商的需求。在众多的接入技术中,以太网接入方式经济实惠,而 PPP 协议又可以提供良好的访问控制和计费功能,结合以太网的经济性及 PPP 良好的可扩展性与管理控制功能,于是产生了 PPPoEPoint-to-Point Protocol over Ethernet,在以太网上承载 PPP协议) 。PPPoE协议的提出很好地解决了用户管理和上网收费等实际应用问题,得到了运营商的认可并广为采用。

技术优点
用户角度

对于用户来说,PPPoE具有以下优点:

  • 沿袭传统的拨号上网方式,依旧使用用户熟悉的硬件以及类似的软件进行Internet的接入。
  • 兼容现有的所有xDSL Modem,不需要对客户端的 xDSL Modem进行复杂的配置。
  • 使用以太网网卡连接 PCxDSL Modem,允许多台PC同时共享 xDSL线路,可以节约用户投资。
运营商角度

对于运营商来说,PPPoE具有以下优点:

  • 运营商可以通过数字用户线、电缆调制解调器或无线连接等方式提供支持多用户的宽带接入服务。
  • 运营商可以利用可靠和熟悉的技术来加速部署高速互联网业务,对现有网络部署影响小。
  • 运营商可以通过访问控制功能对用户的身份进行确认,通过计费功能对用户进行计费,同时对 用户的网络行为进行监控,保证了网络安全。
  • 终端用户可同时接入多个运营商,这种动态服务选择的功能可以使运营商容易创建和提供新的业务。

PPPoE技术实现

PPPoE组网结构

PPPoE使用 Client/Server模型。PPPoE Client向 PPPoE Server发起连接请求,两者之间会话协 商通过后,就建立 PPPoE会话,此后 PPPoE Server向 PPPoE Client提供接入控制、认证、计费等功能。

根据PPPoE会话的起点所在位置的不同,PPPoE分为 Router-InitiatedHost-Initiated两种组网结构。

Router-Initiated组网结构

图1 所示,Router-Initiated 组网结构是在两台路由器之间建立PPPoE 会话,所有主机通过同一 个 PPPoE会话传送数据,主机上不用安装 PPPoE客户端拨号软件,一般是一个企业共用一个账号 接入网络(图中 PPPoE Client位于企业/公司内部,PPPoE Server是运营商的设备)。

图1 Router-Initiated组网结构图

Host-Initiated组网结构

图 2所示,Host-Initiated组网结构是将PPPoE会话建立在 Host和运营商的路由器之间,为每一 个 Host建立一个 PPPoE会话,每个 Host都是 PPPoE Client,每个Host使用一个帐号,方便运营商对用户进行计费和控制。Host上必须安装 PPPoE客户端拨号软件。

图2 Host-Initiated组网结构图

PPPoE报文
PPPoE报文格式

图3所示,PPPoE报文的格式是在以太网帧中携带 PPP报文。

图3 报文格式

各个字段解释如下:

  • Destination_address域:一个以太网单播目的地址或者以太网广播地址(0xffffffff)。在 Discovery阶段,该域的值可以是单播或者广播地址,PPPoE Client寻找PPPoE Server的过 程使用广播地址,确认 PPPoE Server后使用单播地址。在 Session阶段,该域的值必须是 Discovery阶段已确定的通信对方的单播地址。

-Source_address域:源设备的以太网 MAC地址。

  • Ether_type:取值为 0x8863表示 Discovery阶段或 Terminate阶段,0x8864表示 Session 阶段。
  • Ver域:4bits,PPPoE版本号,值为 0x1。• Type域:4bits,PPPoE类型,值为 0x1。
  • Code域:8bits,PPPoE报文类型,取值包括:

0x00,表示会话数据。

0x09,表示 PADI(PPPoE Active Discovery Initiation)报文。

0x07,表示 PADO(PPPoE Active Discovery Offer)或 PADT(PPPoE Active Discovery Terminate)报文。

0x19,表示 PADR(PPPoE Active Discovery Request)报文。

0x65,表示 PADS(PPPoE Active Discovery Session-confirmation)报文。

  • Session_ID域:16bits,对于一个给定的 PPP会话,该值是一个固定值,并且与以太网 Source_address和Destination_address一起实际地定义了一个 PPP会话。值 0xffff为将来 的使用保留,不允许使用。
  • Length域:16bits,定义 PPPoE的 Payload域长度。不包括以太网头部和PPPoE头部的长度。
PADI报文

图4所示,PADI报文的主要字段包括:

  • Code域为 0x09。• Session_ID域为 0x0000。
  • TAG_TYPE域为 0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个 TAG_TYPE为 Service-Name的 TAG,其他类型的 TAG 可选。

图4PADI数据包举例

PADO报文

图5所示,PADO 报文的主要字段包括:

  • Code域为 0x07。
  • SESSION_ID域为 0x0000。
  • TAG_TYPE域为 0x0101(Service-Name),表明后面紧跟的是服务的名称;为 0x0102 (AC-Name)表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。有且只有一个 TAG_TYPE为 AC-Name的 TAG,至少一个 TAG_TYPE为 Service-Name的 TAG。

图5 PADO数据包举例

PADR报文

图6所示,PADR 报文的主要字段包括:

  • Code域为 0x19。
  • SESSION_ID为 0x0000。
  • TAG_TYPE域为 0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个 TAG_TYPE为 Service-Name的 TAG,其他类型的 TAG 可选。

图6 PADR数据包举例

PADS报文

图7所示,PADS 报文的主要字段包括:

  • Code域为 0x65。
  • SESSION_ID为 Discovery阶段分配的数值。
  • TAG 为可选。

图7 PADS数据包举例

PADT报文

图8所示,PADT 报文的主要字段包括:

  • Code域为 0xa7。
  • SESSION_ID域为 Discovery阶段分配的数值。
  • 无 TAG

图8 PADT数据包举例

PPPoE工作过程

PPPoE的协商过程如图9所示:

图9 PPPoE协商过程

PPPoE协商过程包括 Discovery、Session和 Terminate三个阶段

Discovery阶段

Discovery阶段完成之后通信双方都会知道PPPoE的Session ID 以及对方以太网地址,它们共同确定了唯一的 PPPoE Session。Discovery阶段由四个过程组成,具体如下

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阶段。

Session阶段

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阶段所有的以太网数据包都是单播发送的。

Terminate阶段

进入 PPPoE Session阶段后,PPPoE ClientPPPoE Server都可以通过发送 PADT 报文的方式 来结束 PPPoE连接。PADT 报文可以在会话建立以后的任意时刻单播发送。在发送或接收到 PADT 后,就不允许再使用该会话发送 PPP流量,即使是常规的 PPP结束数据包也不允许发送。

典型组网应用

利用ADSL Modem将局域网接入Internet

图10 利用 ADSL Modem将局域网接入 Internet组网图

图10所示,企业希望使用一个公共帐号访问 Internet。Router A作为 PPPoE Client,通过一个 帐号访问 Internet(相当于整个企业的员工公用这个帐号)。Router B 作为 PPPoE Server 连接至 DSLAM,提供 RADIUS认证、计费等功能,同时连接到 Internet。

无线PPPoE接入

图11 无线 PPPoE接入组网图

图 11 所示,AP设备作为 PPPoE Client,BRAS设备作为 PPPoE Server,终端用户可以直接通 过无线网络访问 Internet。

0 人点赞