DSL(数字用户线路)是以电话线为传输介质的传输技术。人们通常把所有的DSL技术统称为xDSL,x代表不同种类的DSL。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL,使用PPPoE(PPP over Ethernet)协议。
PPPoE报文的格式
PPPoE报文是通过Ethernet格式封装的。
Ethernet的各字段的意义如下:
DMAC:目的设备的MAC地址,通常为以太网单播目的地址或广播地址。
SMAC:源设备的MAC地址。
Type:协议类型。当值为0x8863时,表示承载的是PPPoE发现阶段的报文;当值为0x8864时,表示承载的是PPPoE回话阶段的报文。
PPPoE各字段的意义如下:
Ver:PPPoE版本好,值为0x01。
Type:类型,值为0x01。
Code:PPPoE报文类型,不同取值标识不同PPPoE报文类型。
Session ID:PPPoE会话ID,与DMAC和SMAC一起定义了一个PPPoE会话。
Length:PPPoE报文的Payload长度,不包含以太网头部和PPPoE头部的长度。
PPPoE会话的建立过程
阶段 | 描述 |
---|---|
发现阶段 | 获取对方的以太网地址以及确定唯一的PPPoE会话 |
会话阶段 | 包含两不部分:PPP协商阶段和PPP报文传输阶段 |
会话终结阶段 | 会话建立后的任意时刻,发送报文结束PPPoE会话 |
PPPoE协议报文
PPPoE通过5种报文建立和终结PPPoE会话
类型 | 描述 |
---|---|
PADI | PPPoE发现初始报文 |
PADO | PPPoE发现提供报文 |
PADR | PPPoE发现请求报文 |
PADS | PPPoE发现会话确认报文 |
PADT | PPPoE发现终止报文 |
PPPoE发现阶段
在发现阶段,PPPoE客户端在本地以太网中广播一个PADI报文,此PADI报文中包含了客户端需要的服务信息。PADI报文中,DMAC地址是一个广播地址,Code字段值为0x09,Session ID字段值为0x0000。
所有的PPPoE服务端收到PADI报文后会将报文中请求的服务与自己能提供的服务进行比较。如果可以提供服务则回复PADO报文。PADO报文中,DMAC地址是发送PADI报文的客户端的MAC地址,Code字段值为0x07,Session ID字段值为0x0000。
因为客户端是以广播的形式发送PADI,所以客户端可能会收到多个PPPoE服务端发来的PADO报文,客户端选择最先收到的PADO报文对应的服务器,单播发送一个发送PADR报文。PADR中,DMAC是选定服务器的MAC地址,Code字段值为0x19,Session ID字段值为0x0000。
PPPoE服务端收到PADR后,会生成一个唯一的Session ID来标识和PPPoE客户端的会话,并通过一个PADS报文把Session ID发送给客户端。在PADS报文中,DMAC是客户端的MAC地址,Code字段的值为0x65,Session ID字段的值是服务端产生的本次会话的Session ID。
会话建立成功后,进入PPPoE会话阶段。
PPPoE会话阶段
PPPoE会话上的PPP协商和普通的PPP协议一样,分为LCP、认证和NCP三个阶段。
客户端和服务端进行PPP的LCP协商,建立链路层通信,协议使用CHAP协商。
服务端给客户端,发送一个128位的Challenge。客户端将密码和Challenge组成一个字符做MD5运算,获得一个摘要,并把摘要放入Response报文中发给服务端。服务端比较Response报文中的摘要是否与自己的摘要相同,判断是否认证成功。
认证成功后进行NCP协商,客户端通过服务端获取到规划的IP地址等参数。
PPPoE终结阶段
PPPoE会话的任一端想要终结会话,向对端发送PADT报文,此报文用户关闭连接。在PADT报文中,DMAC为对端MAC地址,Session ID为本次会话的Session ID。
PPPoE的配置
服务端的配置
<Huawei>sys
//创建PPP认证用户“zhangsan”,密码为“hello”
[Huawei]aaa
[Huawei-aaa]local-user zhangsan password cipher hello
[Huawei-aaa]local-user zhangsan service-type ppp
//配置地址池,用于分配IP
[Huawei-aaa]q
//地址池名称为“PPPpE”
[Huawei]ip pool PPPoE
//网段为100.100.100.0/24
[Huawei-ip-pool-PPPoE]network 100.100.100.0 mask 255.255.255.0
//不分配的地址
[Huawei-ip-pool-PPPoE]excluded-ip-address 100.100.100.101 100.100.100.110
//主DNS服务器为8.8.8.8,副DNS服务器为114.114.114.114
[Huawei-ip-pool-PPPoE]dns-list 8.8.8.8 114.114.114.114
//配置虚拟模版和调用模版
[Huawei-ip-pool-PPPoE]q
[Huawei]int Virtual-Template 1
//配置认证类型为CHAP
[Huawei-Virtual-Template1]ppp authentication