PPPOE 的原理与配置
DSL是一种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装调制
解调器,然后通过现有的电话线不数字用户线路接入复用器(DSLAM)相连。DSLAM是各种DSL系统的
局端设备,属于最后一公里接入设备。
然后,DSLAM通过高速ATM网络戒者以太网将用户的数据流量转发给宽带远程接入服务器(BRAS)。
BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。
PPPOE 在 DSL 中的应用
运营商希望通过同一台接入设备来连接远程的多个主机,同时接入设备能够提供访问控制和计费功
能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供
良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入
的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
PPOE 报文
• PPPoE报文是使用Ethernet格式进行封装的,Ethernet中各字段解释如下:
• DMAC:表示目的设备的MAC地址,通常为以太网单播目的地址戒者以太网广播地址(0xFFFFFFFF)。
• SMAC:表示源设备的以太网MAC地址。
• Type:表示协议类型字段,当值为0x8863时表示承载的是PPPoE发现阶段的报文。当值为0x8864
时表示承载的是PPPoE会话阶段的报文。
• PPPoE字段中的各个字段解释如下:
• VER:表示PPPoE版本号,值为0x01。
• Type:表示类型,值为0x01。
• Code:表示PPPoE报文类型,丌同取值标识丌同的PPPoE报文类型。
• PPPoE会话ID,不以太网SMAC和DMAC一起定义了一个PPPoE会话。
Length:表示PPPoE报文的Payload长度,丌包括以太网头部和PPPoE头部的长度
PPPOE 协议报文
PADI(PPPoE Active Discovery Initiation)报文:用户主机发起的PPPoE服务器探测报文,目的
MAC地址为广播地址。
PADO(PPPoE Active Discovery Offer)报文:PPPoE服务器收到PADI报文之后的回应报文,目的
MAC地址为客户端主机的MAC地址。
PADR(PPPoE Active Discovery Request)报文:用户主机收到PPPoE服务器回应的PADO报文后,
单播发起的请求报文,目的地址为此用户选定的那个PPPoE服务器的MAC地址。
PADS(PPPoE Active Discovery Session Configuration)报文:PPPoE服务器分配一个唯一的会
话进程ID,并通过PADS报文发送给主机。
PADT(PPPoE Active Discovery Terminate)报文:当用户戒者服务器需要终止会话时,可以发送
这种PADT报文
•
PPPOE 建立过程
• PPPoE可分为三个阶段,即发现阶段、会话阶段和会话终结阶段。
发现阶段:获取对方以太网地址,以及确定唯一的PPPoE会话。
会话阶段:PPP协商阶段(LCP和NCP中间插入认证)和PPP报文传输阶段。
会话终结阶段:会话建立以后的任意时刻(比如说早期我们按照时间收费),发送报文结束PPPoE会话
PPPOE 建立过程
• 用户客户端向服务器发送一个PADI报文,开始PPPOE接入。
• 服务器向客户端发送PADO报文。
• 客户端根据回应,发起PADR请求给服务器。
• 服务器产生一个Session ID,通过PADS发给客户端。
• 客户端和服务器之间进行PPP的LCP协商,建立链路层通信。同时,协商使用CHAP认证方式。
• 服务器通过Challenge报文发送给认证客户端,提供一个128bit的Challenge。
• 客户端收到Challenge报文后,并将密码和Challenge做MD5算法运算后,在Response回应报文中把结果发送给服务器。
• 服务器根据用户发送的信息判断用户是否合法,然后回应认证成功/失败报文,将认证结果返回给客户端。
进行NCP(如IPCP)协商,通过服务器获取到规划的IP地址等参数。
PPPOE 配置案例
如图所示,R2作为PPPoE Client,R1作为PPPoE Server,R2通过PPPoE方式从R1获取IP地址,使公
司内部的网段192.168.1.0和192.168.2.0能够访问Internet。
Server 端配置
Client 端配置
在 client 端配置 NAT
Access-list 1 permit 192.168.1.0
Access-list 1 permit 192.168.2.0
Ip nat inside sou list 1 interface dial 1 overload
Interface e0/1
Ip nat inside
Interface e0/2
Ip nat inside
Inter dial1
Ip nat outside
Ip route 0.0.0.0 0.0.0.0 dial 1