与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式ADSL就使用了PPPoE协议。随着低成本的宽带技术变得日益流行,DSL(Digital Subscriber Line)数字用户线技术更是使得许多计算机在互联网上能够酣畅淋漓的冲浪了。但是这也增加了DSL服务提供商们对于网络安全的担心。通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。
0xC021——信息字段是链路控制数据LCP
0x8021——信息字段是网络控制数据NCP
0xC023——信息字段是安全性认证PAP
0xC025——信息字段是LQR
0xC223——信息字段是安全性认证CHAP
0x8863 | Discovery Stage |
0x8864 | PPP Session Stage |
0x00 | PPP Session Stage |
0x09 | PPPOE Active Discovery Initiation (PADI) packet |
0x07 | PPPOE Active Discovery Offer (PADO) packet |
0x19 | PPPOE Active Discovery Request (PADR) packet |
0x65 | PPPOE Active Discovery Session-confirmation (PADS) packet |
0xa7 | PPPOE Active Discovery Terminate (PADT) packet |
0x0000 End-Of-List
0x0101 Service-Name
0x0102 AC-Name
0x0103 Host-Uniq
0x0104 AC-Cookie
0x0105 Vendor-Specific
0x0110 Relay-Session-Id
0x0201 Service-Name-Error
0x0202 AC-System-Error
0x0203 Generic-Error
PPPoE在BAS上的实现
PPPoE拨号软件在应用中已经很成熟(Windows XP以上版本自带),下面重点讨论PPPoE在接入服务器BAS中的实现方式。
3.1PPPoE的效率
从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,虽然有很好的安全性,但一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。
为此,在BAS的硬件结构上可以采用分布式网络处理器(NP)和ASIC芯片设计。网络处理器是专门针对电信网络设备而开发的专用处理器,它有一套专门的指令集,用于处理电信网络的各种协议和业务,可以大大提高设备的处理能力。同时,ASIC芯片转发数据包时接近硬件的转发性能,远非CPU软件方式可比,采用这种方式将PPPoE数据流的处理与转发分开,工作效率大大提高。此外在软件系统结构上还应该与其他技术相结合,更好地发挥PPPoE的性能。
3.2PPPoE与VLAN的结合
VLAN即虚拟局域网,是一种通过将局域网内的设备逻辑地划分成一个个不同的网段,从而实现虚拟工作组的技术。划分VLAN的目的,一是提高网络安全性,不同VLAN的数据不能*交流,需要接受第三层的检验;二是隔离广播信息,划分VLAN后,广播域缩小,有利于改善网络性能,能够将广播风暴控制在一个VLAN内部。
PPPoE是一个客户端/服务器协议,客户端需要发送PADI包寻找BAS,因此它必须同BAS在同一个广播式的二层网络内,与VLAN的结合很好地解决了这方面的安全隐患。此外通过将不同业务类型的用户分配到不同的VLAN处理,可以灵活地开展业务,加快处理流程,当然VLAN的规划必须在二层设备和BAS之间统一协调。
BAS收到上行的PPPoE包后,首先判别VLAN ID的所属类别,如果是普通的拨号用户,则确定是Discovery阶段还是会话阶段的数据包,并严格按照PPPoE协议处理。在会话阶段,根据不同的用户类型从不同的地址池中向用户分配IP地址,地址池由上层网管配置。如果是已经通过认证的用户的数据包,则根据该用户的服务类型处理,比如,如果是本地认证的拨号用户,且对方也申请有同样的功能,则直接由本地转发。
如果是专线用户,则不用经过PPPoE复杂的认证过程,直接根据用户的VLAN ID便可进入专线用户处理流程,接入速度大大提高。此外为了统一网管,在BAS与其他设备之间需要通信,这些数据包是内部数据包,也可根据VLAN ID来辨别。
对于下行数据,由于BAS负责分配和解析用户的IP,兼有网关的功能,它收到数据包的目的IP是用户的,因此以IP为索引查找用户的信息比根据MAC要方便得多,这一点与普通的交换机有所不同,具体过程跟上行处理差不多。
3.3PPPoE对多业务选择的支持
多业务选择指的是用户通过一条终结到BAS的PPP连接来自主地选择后台网络运营商所提供的多种业务。之所以要支持多业务的选择,一方面是因为各种业务的具体实现在技术上的侧重点是不同的,对网络性能的要求也不尽相同,以前采取的固定分配的方式非常不便;另一方面,从网络应用的发展看,网络内容服务供应商ICP与网络接入商ISP的分离是必然趋势,在接入汇聚侧,ISP必须严格保证将用户选择的业务流转发到相应的ICP中去。
目前采用的方法是用户先在PPPoE拨号软件中选择相应的业务,然后对用户进行业务授权确认,最后激活BAS内部相应的处理模块。但是采用这种方式,用户只能知道业务的名字,无法直观地、全面地获知BAS提供的各种业务类型,特别是在新业务的开展上十分困难,有很大的局限性。
因此可以将BAS与后台业务选择网关及RADIUS服务器相配合,采取先认证后选择业务的方式,具体操作如下:
(1)主机发送PADI寻找BAS,PADI中包含一个服务名类型的TAG,它的值为空,表示该用户可以接受任何类型的服务。
(2)BAS收到包后回送PADO,PADO中包含所有可以提供的服务的TAG,同时,还包含一个服务名为General的TAG。
(3)主机发送PADR。用户选择已知的服务名,也可以选择General服务。
(4)BAS收到PADR包后为用户分配资源,并开始PPP协商过程。在PPP过程中,BAS将用户输入的账号和密码等信息送到RADIUS服务器上认证。
(5)通过认证的用户,享受BAS提供的该项服务,但如果选择的是General,则被强制访问与BAS直连的服务选择网关。后台的服务选择网关是一台具有Web Server功能的服务器,用户可以通过Web的交互式界面得到可选择业务的相关信息(包括费用、带宽等),同时显示该用户账号对应的信息。
(6)用户选择相应的业务,同时服务选择网关会定义各种用户的业务范围和操作权限。
(7)服务选择网关激活接入服务器内部相应的业务模型实现该业务。以上方式是严格按照PPPoE协议执行的,与当前流行的拨号软件完全兼容,如果用户对其他的业务根本不感兴趣而对已申请的业务非常熟悉,也不影响用户的习惯。
从BAS的角度考虑,PPPoE的操作流程也没有什么改变,只是多添了一种服务类型而已。如果运营商当前没有服务选择网关,可以通过网管配置,在对PADI包的回应时不包含General服务就可以了。