一、简述PPPoE
PPP over Ethernet,数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输数字信号的技术,人们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入技术为ADSL,ADSL是非对称DSL技术,使用是PPPoE协议。
PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使的以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有使用范围广、安全性高、计费方便等特点。
PPP为二层协议,Ethernet为二层协议,PPPoE为将Ethernet跑在PPP的协议之上,PPP报文具有认证功能,所以将PPP封装以太网包中,让PPP协议在以太网环境中对设备进行认证、计费等功能,而PPP不支持广播发送的能力,所以不能完成PPOE认证的过程,所以将PPP跑在Enternet之上,使用PPP进行认证和IP地址的分发,使用Enternet技术实现广播的发送。
二、PPPoE拨号过程
PADI(初始化):由客户端广播发送,用于发现ISP的网络服务提供点(POP)找到DSL访问集中器(DSL-AC),这个报文中包含发送者的MAC地址。
PADO(Offer):由服务器单播发送给客户端。一旦用户计算机发送了PADI报文,DSL-AC就会使用PADI中提供的MAC地址回复一个PADO报文。PADO报文中包含了DSL-AC的MAC地址、名称以及服务名。//如果多于一个POP的DSL-AC回复了PADO报文,客户端就使用提供的名称和服务来从中选择一个。
PADR(Request):由客户端单播发送到服务器,当客户端收到一个来自DSL-AC的可接受的PADO报文后,就会发送一个PADR报文给DSL-AC,用来确认接受发送PADO报文的DSL-AC所提供的PPPoE连接。
PADS(会话确认):由服务器单播发送给客户端,对PADR进行确认,并在其中携带一个会话ID。计算机与此DSL-AC的连接就完整创建了。
PADT(终止):可由任意一方发送,用于终止连接。
PPPOE会话阶段主要分为LCP协商阶段、认证阶段、IPCP阶段(分配IP)等,在这些阶段顺利完成后,就可以进行数据传输。
三、PPPOE会话分为三个阶段:
① 发现阶段:
获取对方以太网地址,以及确定唯一的PPPoE会话
② 会话阶段:
第一部分:PPP协商阶段
第二部分:PPP报文传输阶段
③ 会话终结阶段:
会话建立以后的任意时刻,发送报文结束PPPoE会话
(1)发现阶段:
PPPOE发现阶段的第一步,Clint客户端寻找Server服务器,获取服务器的IP地址,建立一条PPPoE会话,并生成Session ID值,用于唯一标识一条PPPoE会话。
① 第一阶段:
Clint使用PADI报文,也就是由用户侧首先发送这样一个报文。Clint是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充Clint的MAC地址。广播包可能会被多个Server接收到。
② 第二阶段:
PPPOE发现阶段的第二步,也即是由Server回应各Clint发送的PADI报文,此时该报文所对应的以太网帧的源地址填充Server的MAC地址,而目的地址则填充从PADI中所获取的Clint的MAC地址。此阶段为Server使用PADO报文响应Clint。
③ 第三阶段:
PPPOE发现阶段的第三步,也即是由Clint向访问服务器发送单播的请求报文。当Clint收到PADO报文后,会使用PADR进行请求Session ID。
④ 第四阶段:
PPPOE发现阶段的第四步,由Server发送PADS报文用于回复Clint的PADR,报文中包含Session ID,用于标识Clint和Server之间的一条点到点回话。
(2)会话阶段:
LCP阶段:
a)工作方式是SP(Single-Link PPP,单链路连接)还是MP(Multilink PPP,多链路连接)
b)最大接收单元MRU(Maxnum Receive Unit,最大的接收数据包大小)
c)验证方式(PAP或CHAP必须一致)和魔术字(magic number)等字段
认证阶段:
开始CHAP或PAP验证,用于验证用户名和密码是否合法
NCP阶段:
PPP阶段进行NCP协商。通过NCP协商来选择和配置一个网络层协议进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文,NCP协商包括LPCP(IP Control Protocol,IP地址的获取)、MPLSCP(MPLS Control Protocol)等协商。
(3)会话终结阶段:
会话建立以后的任意时刻,发送PADT报文用于结束PPPoE的会话。