PPPoE(英语:Point-to-Point Protocol Over Ethernet),
以太网上的点对点协议,是将
点对点协议(PPP)封装在
以太网(Ethernet)框架中的一种网络
隧道协议。由于协议中集成PPP协议,所以实现出传统
以太网不能提供的
身份验证、加密以及压缩等功能,也可用于缆线
调制解调器(
cable modem)和
数字用户线路(DSL)等以
以太网协议向用户提供接入服务的协议体系。
简介
PPPoE(英语:Point-to-Point Protocol Over Ethernet),
以太网上的点对点协议,是将
点对点协议(PPP)封装在
以太网(Ethernet)框架中的一种网络
隧道协议。由于协议中集成PPP协议,所以实现出传统
以太网不能提供的
身份验证、加密以及压缩等功能,也可用于缆线
调制解调器(
cable modem)和
数字用户线路(DSL)等以
以太网协议向用户提供接入服务的协议体系。
本质上,它是一个允许在以太网
广播域中的两个
以太网接口间创建点对点隧道的协议。
以
Linux系统常用的pppd为例,支持
PPP接口上面的
IP、
IPv6和
IPX网络层协议。
它使用传统的基于PPP的软件来管理一个不是使用
串行线路而是使用类似于以太网的有向分组网络的连接。这种有登陆和口令的标准连接,方便了接入供应商的记费。并且,连接的另一端仅当PPPoE连接接通时才分配
IP地址,所以允许IP地址的
动态复用。
PPPoE是由UUNET、Redback Networks和RouterWare所开发的。发表于RFC 2516说明中。
PPPoE的阶段
PPPoE发现
由于传统的
PPP连接是创建在
串行链路或拨号时创建的ATM虚电路连接上的,所有的PPP帧都可以确保通过电缆到达对端。但是
以太网是多路访问的,每一个节点都可以相互访问。以太帧包含目的节点的
物理地址(
MAC地址),这使得该帧可以到达预期的目的节点。 因此,为了在以太网上创建连接而交换PPP控制报文之前,两个端点都必须知道对端的MAC地址,这样才可以在控制报文中携带MAC地址。PPPoE发现阶段做的就是这件事。除此之外,在此阶段还将创建一个会话ID,以供后面交换报文使用。
PPP会话
一旦连接的双方知道了对端的MAC地址,会话就创建了。
PPPoE发现阶段
尽管传统的PPP是
点对点协议,但是由于多个主机可以通过一个单独的
物理连接连接到一个
服务提供者,因此PPPoE本身就是一个客户端-服务器的关系。 发现过程包含四个步骤。主机作为客户端,ISP端的访问
集中器作为服务器。这四步在下面详述。最后一步第五步是关闭一个现存会话的方法。
1.到服务器
PADI为PPPoE Active Discovery Initiation的缩写。
如果一个用户想要使用
DSL拨号连入Internet,那么他的计算机必须首先在其
ISP的
网络服务提供点(
POP)找到DSL访问集中器(DSL-AC)。在以太网上通讯只能通过
MAC地址。由于计算机不知道DSL-AC的MAC地址,于是就在以太网上广播一个PADI报文。这个报文中包含发送者的MAC地址。
PADI报文可能被一个以上的DSL-AC接收。 只有可以提供“服务名称”(Service-Name)的DSL-AC设备才应该回复。
2.服务器到客户端
PADO为PPPoE Active Discovery Offer的缩写。
一旦用户计算机发送了PADI报文,DSL-AC就会使用PADI中提供的MAC地址回复一个PADO报文。PADO报文中包含了DSL-AC的MAC地址、名称以及服务名。如果多于一个POP的DSL-AC回复了PADO报文,用户计算机就使用提供的名称和服务来从中选择一个。
3.客户端到服务器
PADR为PPPoE Active Discovery Request的缩写。
当用户计算机收到一个来自DSL-AC的可接受的PADO报文后,就会发送一个PADR报文给DSL-AC,用来确认接受发送PADO报文的DSL-AC所提供的PPPoE连接。
4.服务器到客户端
PADS为PPPoE Active Discovery Session-confirmation的缩写。
上面的PADR报文由DSL-AC的PADS报文进行确认,并在其中携带一个会话ID。用户计算机与此DSL-AC的连接就完整创建了。
5.任何一方
PADT为PPPoE Active Discovery Termination的缩写。
这个报文终结用户计算机与POP的的连接,可由用户计算机或DSL-AC任意一方发送。
使用时的缺点
故障分析
这种情况主要针对
Windows ME和Windows98而言,解决办法是在Windows98下添加拨号适配器组件即可。对Windows ME而言,因为它没有直接添加拨号适配器的选项,所以必须在
控制面板中先删除拨号
网络组件,再添加拨号网络组件,完成适配器的添加。
(2)691/629故障描述:不能通过验证
可能的原因是用户的账户或者密码输入错误,或用户的
账户余额不足,用户在使用时未正常退出而造成
用户账号驻留,可等待几分钟或重新启动后再拨号。
(3)630故障描述:无法拨号,没有合适的网卡和驱动
可能的原因是网卡未安装好、
网卡驱动不正常或网卡损坏。检查网卡是否工作正常或更新网卡驱动。
(4)633故障描述:
调制解调器(或其它连接设备)已在使用,或没有正确配置。
如果是拨号
网络连接,则网络连接试图使用的
COM端口正在被其他活动网络连接或其他进程(例如,诸如传真程序之类的电话线路监视程序)使用。退出阻止使用COM端口的
应用程序。
如果是
虚拟专用网络(VPN),则不能打开网络连接试图使用的VPN设备。这需要您的
系统管理员才能解决。
如果这是
宽带连接,则无法打开网络连接尝试使用的宽带设备。确保要求硬件(
电缆调制解调器)运行正常。有关所需硬件的详细
信息需要您的宽带
服务提供商来解答。
(5)720故障描述:不支持PPPoE连接
它是
Windows 2000特有的故障,建议重新启动后再进行连接,如仍不能排除故障,建议重装系统。
(6)697故障描述:网卡禁用
只要在设备管理中重新启用网卡即可。
(7)769故障描述:拨号时报769错误
在
Windows XP系统中网卡被禁用、系统检测不到网卡或者
拨号软件故障,有时会报769错误。重新启用网卡、检查网卡工作是否正常或重装拨号软件即可解决。
(8)678(651)故障描述:无法建立连接
远程计算机没有响应,
windows xp 错误代码为678,windows 7错误代码为651,造成此故障的原因是基础线路问题,或者您的
互联网服务提供商设备问题。
发展前景
PPPoE是从
窄带技术演化而来,PPP最早就是专门为
电话线上网而设计的,当宽带普及后,为了兼容以前的电话线用户习惯,故在
宽带网络中继承了PPP技术。PPPoE是一种过渡技术,已经基本处于淘汰阶段。原因如下:
1、PPPoE是一种2层链路技术,正常下无法穿透
三层交换机,若要在三层交换机传输,就必须做trunk,即把三层当作
二层交换机使用。这导致不能充分发挥三层交换机的潜能,三层交换机的很多高级功能都无法使用,从而浪费了宝贵的
网络设备资源。也给整体
网络规划造成了一定的复杂性。如果一开始采用了PPPoE认证,那么以后想要使用三层交换机网络规划功能,调整整体网络,那么将是一个巨大的工作量。
2、宽带使用PPPoE方式,将造成不必要的带宽损耗,而且上网
速度比正常宽带速度要慢一个级别。原因是采用PPPoE比正常宽带包,多了2个协议层,一个是PPPoE协议层,另一个就是PPP协议层,这几个协议层头会增加到正常
数据包头部里,在传输数据过程中,多出了不少额外数据,拨号握手过程也比正常多了好几个步骤。
3、2004年开始,
ARP攻击在网络流行时,PPPoE由于自身与
ARP无关的特点,使其具有
天然免疫优势,所以,当时很多场合对PPPoE有较高的需求。
但经过近10年
网络发展,随着各种
安全软件普及,如360、
电脑管家、以及各种
杀毒软件等都早已具有防止ARP攻击功能。因此,ARP攻击已经彻底消失殆尽。PPPoE的各种缺点已经越来越
不适应宽带网络的发展。
4、PPPoE客户端一般都会采用操作系统自带的PPPoE,但设置比较麻烦,有很多步骤,普通家庭用户若不熟悉,大多数根本搞不定,此时维护人员必须挨家挨户进行上门设置,这给
网络维护带来了很大工作量。非常不利宽带
网络用户的发展和运营,将经常接到用户关于PPPoE的使用投诉。
5、PPPoE的效率比较低,从PPPoE协议模型可以看出,BAS汇聚了用户的所有
数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。
6、PPPoE由于采用了二层链路方式,所以在防止ARP三层包攻击方式具有很大安全性,但PPPoE自身却存在着协议不安全性,因为PPPoE认证是采用广播方式,在
网段内只要装个
网络嗅探器,都能截获到PPPoE包,并能做任意修改重定向。关于PPPoE
安全漏洞详细描述见最后参考资料《PPPoE验证缺陷所带来的危害》