PPPoE技术白皮书
Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着运营商对宽带接入技术要求的不断提高,以xDSL、CableModem和以太网为主的几种宽带接入技术在用户管理和计费等方面的不足开始显露,已无法满足运营商的需求。
在众多的接入技术中,以太网接入方式经济实惠,而PPP协议又可以提供良好的访问控制和计费功能,结合以太网的经济性及PPP良好的可扩展性与管理控制功能,于是产生了PPPoE(Point-to-Point Protocol over Ethernet,在以太网上承载PPP协议)。
PPPoE协议的提出很好地解决了用户管理和上网收费等实际应用问题,得到了运营商的认可并广为采用。
对于用户来说,PPPoE具有以下优点:
· 沿袭传统的拨号上网方式,依旧使用用户熟悉的硬件以及类似的软件进行Internet的接入。
· 兼容现有的所有xDSL Modem,不需要对客户端的xDSL Modem进行复杂的配置。
· 使用以太网网卡连接PC和xDSL Modem,允许多台PC同时共享xDSL线路,可以节约用户投资。
对于运营商来说,PPPoE具有以下优点:
· 运营商可以通过数字用户线、电缆调制解调器或无线连接等方式提供支持多用户的宽带接入服务。
· 运营商可以利用可靠和熟悉的技术来加速部署高速互联网业务,对现有网络部署影响小。
· 运营商可以通过访问控制功能对用户的身份进行确认,通过计费功能对用户进行计费,同时对用户的网络行为进行监控,保证了网络安全。
· 终端用户可同时接入多个运营商,这种动态服务选择的功能可以使运营商容易创建和提供新的业务。
PPPoE使用Client/Server模型。PPPoE Client向PPPoE Server发起连接请求,两者之间会话协商通过后,就建立PPPoE会话,此后PPPoE Server向PPPoE Client提供接入控制、认证、计费等功能。
根据PPPoE会话的起点所在位置的不同,PPPoE分为Router-Initiated和Host-Initiated两种组网结构。
如图1所示,Router-Initiated组网结构是在两台路由器之间建立PPPoE会话,所有主机通过同一个PPPoE会话传送数据,主机上不用安装PPPoE客户端拨号软件,一般是一个企业共用一个账号接入网络(图中PPPoE Client位于企业/公司内部,PPPoE Server是运营商的设备)。
图1 Router-Initiated组网结构图
如图2所示,Host-Initiated组网结构是将PPPoE会话建立在Host和运营商的路由器之间,为每一个Host建立一个PPPoE会话,每个Host都是PPPoE Client,每个Host使用一个帐号,方便运营商对用户进行计费和控制。Host上必须安装PPPoE客户端拨号软件。
图2 Host-Initiated组网结构图
如图3所示,PPPoE报文的格式是在以太网帧中携带PPP报文。
各个字段解释如下:
· 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头部的长度。
如图4所示,PADI报文的主要字段包括:
· Code域为0x09。
· Session_ID域为0x0000。
· TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。
图4 PADI数据包举例
如图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数据包举例
如图6所示,PADR报文的主要字段包括:
· Code域为0x19。
· SESSION_ID为0x0000。
· TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。
图6 PADR数据包举例
如图7所示,PADS报文的主要字段包括:
· Code域为0x65。
· SESSION_ID为Discovery阶段分配的数值。
· TAG为可选。
图7 PADS数据包举例
如图8所示,PADT报文的主要字段包括:
· Code域为0xa7。
· SESSION_ID域为Discovery阶段分配的数值。
· 无TAG。
图8 PADT数据包举例
PPPoE的协商过程如图9所示:
图9 PPPoE协商过程
PPPoE协商过程包括Discovery、Session和Terminate三个阶段。
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阶段。
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阶段所有的以太网数据包都是单播发送的。
进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT报文可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量,即使是常规的PPP结束数据包也不允许发送。
图10 利用ADSL Modem将局域网接入Internet组网图
如图10所示,企业希望使用一个公共帐号访问Internet。Router A作为PPPoE Client,通过一个帐号访问Internet(相当于整个企业的员工公用这个帐号)。Router B作为PPPoE Server连接至DSLAM,提供RADIUS认证、计费等功能,同时连接到Internet。
图11 无线PPPoE接入组网图
如图11所示,AP设备作为PPPoE Client,BRAS设备作为PPPoE Server,终端用户可以直接通过无线网络访问Internet。
· RFC1661:The Point-to-Point Protocol (PPP)
· RFC2516:A Method for Transmitting PPP Over Ethernet (PPPoE)