文章目录
-
- 2.3 扩展PPP-PPPOE
-
- 2.3.1 DSL(Digital Subscriber Line)应用
- 2.3.2 PPPoE在DSL中的应用
- 2.3.3 PPPoE的报文格式
- 2.3.4 PPPoE协议报文类型
- 2.3.5 PPPoE的工作过程
-
- 2.3.5.1 发现过程(discovery)
- 2.3.5.2 PPP会话阶段
- 2.3.5.3 会话终结阶段
- 2.3.6 PPPoE与DHCP
2.3 扩展PPP-PPPOE
PPPoE是Point-to-Point Protocol over Ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过PPPoe协议,远端接入设备能够实现对每个接入用户的控制和计费。我们平常的拨号上网就是PPPoE,所以实际是基于PPP协议。另外PPPoA 有时也被使用(PPP over ATM)。
PPPoE服务器是一些企业级路由器提供的一项功能,能够在局域网中实现和电信营运商提供的ADSL相类似的服务。
目前流行的宽带接入方式ADSL就使用了PPPoE协议。随着低成本的宽带技术变得日益流行,DSL(Digital Subscriber Line)数字用户线技术更是使得许多计算机在互联网上连接。但是这也增加了DSL服务提供商们对于网络安全的担心。通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。
PPPoE是从窄带技术演化而来,PPP最早就是专门为电话线上网而设计的,当宽带普及后,为了兼容以前的电话线用户习惯,故在宽带网络中继承了PPP技术。PPPoE是一种过渡技术,目前已经基本处于淘汰阶段。
2.3.1 DSL(Digital Subscriber Line)应用
为解决在网络服务提供商与最终用户之间的“最后一公里”的传输瓶颈问题,使用铜缆电话线路接入因特网。在使用DSL接入网络时,用户需安装调制解调器(也就是大家熟知的“猫”),然后通过现有的电话线与DSLAM(数字用户线路接入复用器)相连。DSLAM是各种DSL系统的局端设备,属于“最后一公里”接入设备。
之后,DSLAM通过异步传输(ATM)网络或者Ethernet(以太网)网络将用户的数据转发给BRAS(宽带远程接入服务器)。BRAS是面向带宽网络应用的接入网关,位于骨干网的边缘层。
2.3.2 PPPoE在DSL中的应用
由于PPP协议可以提供良好的访问控制和计费功能,于是有PPP协议扩展而成的PPPoE协议。此协议可以在以太网络中进行传输PPP报文。此协议具有适用范围广、安全性高、计费方便等特点,深受宽带接入运营商的认可且被广泛应用。
2.3.3 PPPoE的报文格式
在了解PPPoE建立连接的阶段之前,我们先来了解下PPPoE协议的报文结构,PPPoE报文的格式就是在以太网帧中携带PPP报文,报文封装结构如下图所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQyHcOyn-1650519621115)(https://download.huawei.com/mdl/image/download?uuid=506cc4970c074dbba3a363446718014d)]
以太网帧、PPPOE和PPP直接的封装关系:
PPPoE的报文就是在PPP的报文前面再加上以太网的报头,使得PPPoE可以通过简单桥接设备连入远端接入设备。但这里我们发现PPPoE报文中的PPP内容与原始的PPP并不相同。
报文字段 | 说明 |
---|---|
Ver域 | 4bits,PPPoE版本号,值为0x1。 |
Type域 | 4bits,PPPoE类型,值为0x1。 |
Code域 | 8bits,PPPoE报文类型。 Code域为0x00,表示会话数据。 Code域为0x09,表示PADI报文; Code域为0x07,表示PADO或PADT报文; Code域为0x19,表示PADR报文; Code域为0x65,表示PADS报文。 |
Session_ID域 | 16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。 |
Length域 | 16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。 |
2.3.4 PPPoE协议报文类型
- PADI(PPPoE Active Discovery Initiation):用户主机发起的PPPoE服务器探测报文。源MAC为客户端MAC地址;目的MAC为广播地址;Code字段为0x09;Session ID字段为0x0000。
- PADO(PPPoE Active Discovery Offer):PPPoE服务器收到PADI报文后的回应报文。源MAC为PPPoE服务器MAC地址;目的MAC为客户端MAC地址;Code字段为0x07;Session ID字段为0x0000。
- PPPoE服务器回应的PADO报文后,单播发起请求报文。源MAC为客户端MAC地址;目的MAC为选定的PPPoE服务器MAC地址;Code字段为0x19;Session ID字段为0x0000。
- 分配一个唯一会话进程ID,通过此报文发送给客户端。源MAC为发出报文的PPPoE服务器MAC地址;目的MAC为客户端MAC地址;Code字段为0x09;Session ID字段为PPPoE服务器为会话而产生的Session ID。
- PADT(PPPoE Active Discovery Terminate):
2.3.5 PPPoE的工作过程
会话过程分为三个阶段
2.3.5.1 发现过程(discovery)
由于传统的PPP连接是创建在串行链路或拨号时创建的ATM虚电路连接上的,所有的PPP帧都可以确保通过电缆到达对端。但是以太网是多路访问的,每一个节点都可以相互访问。以太帧包含目的节点的物理地址(MAC地址),这使得该帧可以到达预期的目的节点。 因此,为了在以太网上创建连接而交换PPP控制报文之前,两个端点都必须知道对端的MAC地址,这样才可以在控制报文中携带MAC地址。PPPoE发现阶段做的就是这件事。除此之外,在此阶段还将创建一个会话ID,以供后面交换报文使用。
PPPoE本身就是一个客户端-服务器的关系。 发现过程(主机作为客户端,ISP端的访问集中器作为服务器):
-
客户端到服务器:用户主机广播发送PADI(PPPoE Active Discovery Initiation)包,这个报文中包含发送者的mac地址,准备去获得所有可连接的接入设备(获得其mac地址);
-
服务器到客户端:接入设备收到PADI包之后,使用PADI中提供的mac地址单播返回PADO(PPPoE Active Discovery Offer)包,作为应答。PADO报文中包含了接入设备的mac地址、名称以及服务名。
-
客户端到服务器:当用户主机从收到的多个PADO包中根据名称类型或服务名,选择一个合适的接入设备,然后单播发送PADR(PPPoE Active Discovery Request)包,用来确认接受发送PADO报文的接入设备所提供的PPPoE连接。如果用户主机发出PADI后在规定时间内没有收到PADO,则重新发送PADI。
-
服务器到客户端:接入设备收到PADR后,单播返回PADS(PPPoE Active Discovery Session-confirmation)包对其进行确认,其中包含了一个唯一session ID,双方进入PPP会话阶段。
2.3.5.2 PPP会话阶段
一旦连接的双方知道了对端的MAC地址,会话就创建了。双方使用PPP的链路控制协议(LCP)协商链路,网络控制协议(NCP)进行用户名密码检验后,双方可正常通信。
包括两部分PPP协商阶段与PPP报文传输阶段 。
- PPP协商阶段:此阶段与普通PPP协商方式一致,分为LCP、认证、NCP三个阶段。
- PPP报文传输阶段:协商成功后,就可以承载PPP数据报文,在这一阶段传输的数据包中的Session ID必须与发现阶段PPPoE服务器生成并且发送给客户端的Session ID保持一致。
2.3.5.3 会话终结阶段
会话建立之后的任意时刻,发送报文结束PPPoE会话。
当PPPoE服务器端或客户端希望关闭连接时,便会发送PADT报文(那一端希望关闭就由那一端发送),Session ID为希望关闭的连接的Session ID,另外一端一旦收到此报文,连接随即关闭。
2.3.6 PPPoE与DHCP
PPPoE(以太网点对点协议)是连接到ISP(互联网服务供应商)的常用方法,而DHCP(动态主机配置协议)是用于获取IP地址的协议。在本质上,它们都是用于获取IP的过程,不过它们之间还是存在一些差异的。
DHCP(动态主机配置协议)是一种标准化的客户端/服务器网络协议,可将IP地址和其他相关配置信息动态分配给网络设备。众所周知,TCP/IP网络中的每个设备都应具有唯一的IP地址才能访问网络。因此,如果您的网络设备没有配置DHCP,网络管理员如果要添加新计算机或将计算机从一个子网移动到另一个子网,则必须手动配置IP地址。一般情况下,DHCP体系结构由DHCP客户端,DHCP服务器和DHCP中继代理(通常是带有DHCP的路由器或交换机)组成,如下图所示:
- 定义不同:pppoe是将点对点协议封装在以太网框架中的一种网络隧道协议。而dhcp是一个局域网的网络协议。
- 分配IP方式区别:PPPOE要先认证身份,只有账号、密码正确,才分配一个有效的IP。DHCP不需要认证,是由DHCP的服务器随机分配IP给用户。
- 设备区别:PPPOE通过宽带连接,如DSL线路、无线设备或电缆调制解调器等设备,使以太网上的用户连接到互联网。DHCP通常使用路由器与DHCP服务器通讯。
- 配置不同:PPPoE在正式上网前需要配置,而DHCP不需要配置即可链接到ISP。
功能 | PPPoE | DHCP |
---|---|---|
认证效率 | 较低 | 很高 |
标准化程度 | 高 (RFC 2516) | 高(WT146) |
封装开销 | 大 (增加PPPoE 及PPP 封装) | 小(MAC+IP) |
客户端软件 | 需要 | 不需要 |
用户认证 | 通过PAP、CHAP或者EAP触发 | 通过DHCP发现包触发 |
认证服务器 | Radius | Radius |
地址分配方式 | IPCP,基于用户名和密码 | DHCP,基于线路号、MAC地址. |
Session 建立过程 | 面向连接的Session-ID | 无连接,用户通过IP地址标识 |
用户在线检测 | PPP keepalive包实现 | UC-ARP方式或者DHCP-Renew方式 |
安全性 | 高 | 高 |
防地址仿冒能力 | 高((唯一Session ID) | 高(Anti-spoofing 策略) |
控制能力 | 端口/用户数/带宽 | 端口/用户数/带宽 |
组播支持 | 组播控制点只能在业务控制层 | 组播控制点可选择在业务控制层或接入层 |
精确计费 | 支持 | 支持 |