PPP over Ethernet,数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输数字信号的技术,人们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入技术为ADSL,ADSL时非对称DSL技术,使用的时PPPoE协议。
PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使的以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有使用范围广、安全新高、计费方便等特点。
PPP为二层协议,Ethernet为二层协议,PPPoE为将Ethernet跑在PPP的协议之上,PPP报文具有认证功能,所以将PPP封装以太网包中,让PPP协议在以太网环境中对设备进行认证、计费等功能,而PPP不支持广播发送的能力,所以不能完成PPOE认证的过程,所以将PPP跑在Enternet之上,使用PPP进行认证和IP地址的分发,使用Enternet技术实现广播的发送。
(1)PPPoE应用场景:
① 主机A和主机B使用PPPoE客户端输入用户和密码进行认证
② PPPoE将用户名和密码传递到Modem上,Modem将其转换为模拟信号
③ Modem将模拟信号传输到电话线上到达DSLAN上。
④ DSLAM将模拟信号分离出数据数字信号传送到BRAS(PPPoE服务器)上进行用户和密码的认证。
2. PPPoE报文:
外层(Etnernet):
① DMAC:目标MAC地址
② SMAC:源MAC地址
③ Type:类型
③ PPPoE:增加的内层PPPoE报文
⑤ FCS:校验位
内层(PPPoE):
① Version:版本
② Type:类型
③ Code:选项值
④ Session ID:协商成功后,会一直使用该值,成功之前为0
⑤ Length:PayLoad长度
⑥ PPP:PPP报头
⑦ PayLoad:负载
报文类型分为:
① PADI—PPPoE发现初始报文
② PADO—PPPoE发现提供报文
③ PADR—PPPoE发现请求报文
④ PADS—PPPoE发现会话确认报文
⑤ PADT—PPPoE发现终止报文
(1)PADI:
PPPOE Active Discovery Initiation,PPPoE发现报文,由Clint发出,目标地址为广播地址,用于寻找当前网络中的Server服务器。
(2)PADO:
PPPOE Active Discovery Offer,PPPoE回复的单播报文,由Server回复Clint的PADI报文。
(3)PADR:
PPPOE Active Discovery Request,PPPoE请求报文,由Clint发送给Server的单播报文,用于请求Session ID
(4)PADS:
PPPOE Active Discovery Session-confirmation,Server收到Clint的PADR请求报文,会使用PADS报文分配给Clint一个Session ID
(5)PPP报文:
当PPPOE发现阶段的报文传送完毕后,会进行传统PPP的协商过程,包括LCP、认证报文和NCP报文
① LCP报文:
② LCP确认报文:
③ PPP认证报文:
④ IPCP报文:
(6)数据流量:
物理层、二层ethnet、PPPOE报文、PPP报文、IP报文、应用层报文
3. PPPoE会话建立:
PPPOE会话分为三个阶段:
① 发现阶段:
获取对方以太网地址,以及确定唯一的PPPoE会话
② 会话阶段:
第一部分:PPP协商阶段
第二部分:PPP报文传输阶段
③ 会话终结阶段:
会话建立以后的任意时刻,发送报文结束PPPoE会话
(1)发现阶段:
PPPOE发现阶段的第一步,Clint客户端寻找Server服务器,获取服务器的IP地址,建立一条PPPoE会话,并生成Session ID值,用于唯一标识一条PPPoE会话。
① 第一阶段:
Clint使用PADI报文,也就是由用户侧首先发送这样一个报文。Clint是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充Clint的MAC地址。广播包可能会被多个Server接收到。
② 第二阶段:
PPPOE发现阶段的第二步,也即是由Server回应各Clint发送的PADI报文,此时该报文所对应的以太网帧的源地址填充Server的MAC地址,而目的地址则填充从PADI中所获取的Clint的MAC地址。此阶段为Server使用PADO报文响应Clint。
③ 第三阶段:
PPPOE发现阶段的第三步,也即是由Clint向访问服务器发送单播的请求报文。当Clint收到PADO报文后,会使用PADR进行请求Session ID。
④ 第四阶段:
PPPOE发现阶段的第四步,由Server发送PADS报文用于回复Clint的PADR,报文中包含Session ID,用于标识Clint和Server之间的一条点到点回话。
(2)会话阶段:
LCP阶段:
a)工作方式是SP(Single-Link PPP,单链路连接)还是MP(Multilink PPP,多链路连接)
b)最大接收单元MRU(Maxnum Receive Unit,最大的接收数据包大小)
c)验证方式(PAP或CHAP必须一致)和魔术字(magic number)等字段
认证阶段:
开始CHAP或PAP验证,用于验证用户名和密码是否合法
NCP阶段:
PPP阶段进行NCP协商。通过NCP协商来选择和配置一个网络层协议进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文,NCP协商包括LPCP(IP Control Protocol,IP地址的获取)、MPLSCP(MPLS Control Protocol)等协商。
(3)会话终结阶段:
会话建立以后的任意时刻,发送PADT报文用于结束PPPoE的会话。
4. PPPoE配置:
(1)PPPoE客户端:
AR1:
[Huawei]inter Dialer 1-------创建拨号口1
[Huawei-Dialer1]dialer user Huawei-------配置接口名称(与数据库用户名中一致)
[Huawei-Dialer1]dialer-group 1--------配置为组1
[Huawei-Dialer1]dialer bundle 1----配置序号为1
[Huawei-Dialer1]ppp chap user wfgm11--------------配置认证用户名
[Huawei-Dialer1]ppp chap password cipher wfgm11—配置认证密码
[Huawei-Dialer1]ip address ppp-negotiate-------接口获取方式为PPP获取
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]pppoe-client dial-bundle-number 1 on-demand-------接口调用PPPoE组1
注:on-demand为按时连接,当存在按时计费时,如果没有流量,将自动断开连
接
[Huawei]dialer-rule—拨号上网功能
[Huawei-dialer-rule]dialer-rule 1 ip permit-----允许组1的流量触发拨号上网(on-demand模式,如果没有on-demand则不需要配置)
[Huawei]ip route-static 0.0.0.0 0.0.0.0 Dialer 1—配置默认路由,全部走PPPoE接口
(2)PPPoE服务器:
① 配置认证用户名和密码:
[Huawei]aaa
[Huawei-aaa]local-user wfgm11 password cipher wfgm11
[Huawei-aaa]local-user wfgm11 privilege level 10
[Huawei-aaa]local-user wfgm11 service-type ppp
② 配置AAA认证模式:
[Huawei-aaa]authentication-scheme 1------配置认证方案1
[Huawei-aaa-authen-1]authentication-mode local—认证方案为本地认证
[Huawei-aaa]authorization-scheme 1------配置授权方1
[Huawei-aaa-author-1]authorization-mode local—授权方案为本地授权
[Huawei-aaa]accounting-scheme 1---------配置计费方案1
[Huawei-aaa-accounting-1]accounting-mode none—计费模式为不计费
注:认证和授权英文相似,注意不要配置错误
③ 配置域名参数:
[Huawei-aaa]domain Huawei-------配置域名为huawei
[Huawei-aaa-domain-huawei]authentication-scheme----认证方案为1
[Huawei-aaa-domain-huawei]authorization-scheme 1—授权方案为1
[Huawei-aaa-domain-huawei]accounting-scheme 1-----计费方案为1
④ 配置Clint的地址池:
[Huawei]ip pool huawei
[Huawei-ip-pool-huawei]network 10.10.2.0 mask 24
[Huawei-ip-pool-huawei]gateway-list 10.10.2.1
[Huawei-ip-pool-huawei]dns-list 8.8.8.8
⑤ 配置虚接口参数:
[Huawei]inter Virtual-Template 1—配置虚接口1
[Huawei-Virtual-Template1]ip address 10.10.2.1 24—配置接口IP地址
[Huawei-Virtual-Template1]remote address pool Huawei—配置地址池为huawei
[Huawei-Virtual-Template1]ppp authentication-mode chap domain Huawei—认证模式为chap,AAA认证为domain
⑥ 接口下调用:
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1—绑定PPPoE服务认证虚拟接口1
注:如果使用专门的Radius服务器进行远程AAA,需要配置以下命令:
① 配置认证用户名和密码
② 配置AAA认证模式:
[Huawei]aaa
[Huawei-aaa]authentication-scheme 1—配置认证方案1
[Huawei-aaa-authen-1]authentication-mode radius-------认证模式为radius认证
[Huawei-aaa]accounting-scheme 1-----配置计费方案1
[Huawei-aaa-accounting-1]accounting-mode radius------计费模式为radius
计费
注:此处缺少授权方案
③ 配置radius模板:
[Huawei]radius-server template Huawei-----配置radius模板为huawei
[Huawei-radius-huawei]radius-server authentication 10.1.1.1 1812—配置认证服务器地址和端口
[Huawei-radius-huawei]radius-server accounting 10.1.1.1 1813—配置计费地址和端口
④ 配置域名参数:
[Huawei]aaa
[Huawei-aaa]domain Huawei
[Huawei-aaa-domain-huawei]authorization-scheme 1
[Huawei-aaa-domain-huawei]authentication-scheme 1
[Huawei-aaa-domain-huawei]radius-server Huawei-------radius服务器为
huawei
注:此处缺少绑定授权绑定
⑤ 配置地址池
⑥ 配置虚接口参数
⑦ 接口上调用虚接口