PPPoE原理配置

1.前言

数字用户线路 DSL(Digital Subscriber Line)是以电话线为传输介质的传输数字信号的技术,人们通常把所有的DSL技术统称为XDSL,X代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的是 PPPoE( PPP over Ethernet)协议。
PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器上。 PPPOE具有适用范围广安全性高、计费方便等特点。

2.简介

定义
PPP(Point-to-Point Protocol)协议是一种在点到点链路上传输、封装网络层数据包的数据链路层协议。由于它能够提供用户认证、易于扩充,并且支持同/异步通信,因而获得广泛应用。

PPPoE(PPP over Ethernet)属于链路层协议,主要功能是在以太网上提供点到点的连接,建立PPP会话,以及封装PPP数据包的方法,是PPP协议在更广范围内应用的补充性协议。

image.png

3.DSL应用场景
image.png
  • 数字用户线路DSL是以电话线为传输介质的传输技术。
  • DSLAM:DSLAM是Digital Subscriber Line Access Multiplexer的简称,中文称呼数字用户线路接入复用器。DSLAM是各种DSL系统的局端设备属于最后一公里接入设备(the last mile),其功能是接纳所有的DSL线路,汇聚流量,相当于一个二层交换机。
  • BRAS:宽带远程接入服务器(Broadband Remote Access Server,简称BRAS)是面向宽带网络应用的新型接入网关,它位于骨干网的边缘层,可以完成用户带宽的IP/ATM网的数据接入(目前接入手段主要基于xDSL/Cable Modem/高速以太网技术(LAN)/无线宽带数据接入(WLAN)等),实现商业楼宇及小区住户的宽带上网、基于IPSec(IP Security Protocol)的IP VPN服务、构建企业内部Intranet、支持ISP向用户批发业务等应用。
    PPPoE在DSL中的应用
    image.png
4.PPPoE报文
image.png

各个字段解释如下:

image.png
  • PPPoE报文是使用Etherner格式来进行封装的。
5.PPPoE会话建立过程

介绍PPPoE的实现原理。
PPPoE协议采用Client/Server方式,它将PPP报文封装在以太网帧之内,在以太网上提供点对点的连接。
PPPoE可分为三个阶段,即Discovery阶段(发现阶段)、Session阶段(会话阶段)、Terminate阶段(会话终结阶段)

image.png

image.png
image.png

Discovery阶段为PPPoE认证的PPPoE协商阶段,由四个过程组成。

image.png

image.png

PPPoE Client广播发送一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。

image.png

所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。

image.png

根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。

image.png

PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoE Client的这个会话,通过发送一个PADS(PPPoE Active Discovery Session-confirmation)报文把会话ID发送给PPPoE Client,会话建立成功后便进入PPPoE Session阶段。

完成之后通信双方都会知道PPPoE的Session_ID以及对方以太网地址,它们共同确定了唯一的PPPoE Session。

Session阶段

PPPoE Discovery阶段的工作为PPPoE Client和PPPoE Server之间建立了Session,之后PPPoE便进入到Session阶段,Session阶段可划分为两部分,一是PPPoE认证的PPP协商阶段,二是PPP报文传输阶段。

PPPoE认证过程中的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。

  • LCP协商
    LCP协商阶段主要完成建立、配置和检测数据链路连接。LCP协商的过程如下:协商双方互相发送一个Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。若两端都回应了Config-ACK,则标志LCP链路建立成功,否则双方会继续发送Config-Request报文,直到对端回应了Config-ACK报文为止。
    LCP协商的基本过程

    image.png

  • 认证阶段
    LCP协商成功后,开始进行认证工作,认证协议类型由LCP协商结果(CHAP或者PAP)决定。
    PAP验证过程
    PAP验证协议为两次握手验证,口令为明文。
    PAP验证的过程如图

    image.png

  • PPPoE Client把本地用户名和口令发送到PPPoE Server。

  • PPPoE Server根据本地用户表查看是否有PPPoE Client的用户名
    若有,则查看口令是否正确,若口令正确,则认证通过;若口令不正确,则认证失败。
    若没有,则认证失败。
    CHAP验证过程
    CHAP验证协议为三次握手验证协议,它在网络上采用加密形式传输用户密码,因此安全性要比PAP高。
    CHAP的验证过程如图

    image.png

  • PPPoE Server主动发起验证请求,PPPoE Server向PPPoE Client发送一些随机产生的报文(Challenge)。

  • PPPoE Client接到PPPoE Server的验证请求后,利用报文ID、CHAP密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发回PPPoE Server(Response)。

  • PPPoE Server用自己保存的PPPoE Client密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败。
    CHAP与PAP验证过程对比

  • PAP认证中,口令以明文方式在链路上发送,完成PPP链路建立后,PPPoE Client会不停地在链路上反复发送用户名和口令,直到身份验证过程结束,所以安全性不高。当实际应用过程中,对安全性要求不高时,可以采用PAP认证建立PPP连接。

  • CHAP认证中,验证协议为三次握手验证协议。它只在网络上传输用户名,而并不传输用户密码,因此安全性比PAP认证高。当实际应用过程中,对安全性要求较高时,可以采用CHAP认证建立PPP连接。
    NCP阶段

  • 认证成功后,PPP进入NCP阶段。NCP阶段的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINS Server IP地址等。

  • NCP协商支持多种协议,如IPCP协议、BCP协议,最为常用的是IPCP协议。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段。

  • IPCP的协商过程是基于PPP状态机进行协商的。经过双方协商,通过配置请求、配置确认、配置否认等包文交换配置信息,最终由initial (或closed)状态变为Opened状态。IPCP状态变为Opened的条件必须是发送方和接收方都发送和接收过确认包文。

  • IPCP协商过程中,协商包文可包含多个选项,即参数。各个选项的拒绝或否认都不能影响IPCP的UP,IPCP可以无选项协商,无选项协商也同样能够UP。选项有IP Address、网关、掩码等,其中IP Address是最重要的一个选项,有些厂家的实现必须这个选项得到确认,大多数厂家的实现允许这个选项为空。

  • NCP协商流程与LCP协商流程类似,协商双方互相发送NCP报文,并且互相回应Ack报文后,标志NCP己协商完,用户上线成功,可以正常访问网络了。
    NCP的基本协商流程如图

    image.png

  • PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。在PPPoE Session阶段所有的以太网数据包都是单播发送的。
    Terminate阶段

  • PPP通信双方应该使用PPP协议自身来结束PPPoE会话,但在无法使用PPP协议结束会话时可以使用PADT(PPPoE Active Discovery Terminate)报文。

  • 进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。

6.PPPoE配置

实验环境:


image.png

服务器端

[AR2]ip pool pppoe    //创建一个名为pppoe的地址池。因为服务器要分配地址,所以需要配置ip地址池
Info: It's successful to create an IP address pool. 
[AR2-ip-pool-pppoe]network 10.1.1.0 mask 24     //配置分配的ip地址的范围
[AR2-ip-pool-pppoe]gateway-list 10.1.1.2      //配置分配的网关
[AR2-ip-pool-pppoe]q
[AR2]aaa
[AR2-aaa]local-user pppoe password cipher ppp    //配置用于PPP认证的用户名密码
Info: Add a new user.
[AR2-aaa]local-user pppe service-type ppp    //配置用户用于ppp认证
Info: Add a new user.
[AR2-aaa]q
[AR2]
[AR2]interface Virtual-Template 1    //创建一个虚拟接口“1”
[AR2-Virtual-Template1]ip add 10.1.1.2 24   //本端vt接口的ip地址为10.1.1.2
[AR2-Virtual-Template1]remote address pool pppoe       //为远程pppoe客户端分配ip地址池“pppoe”中的ip地址    
[AR2-Virtual-Template1]ppp authentication-mode chap     //配置PPP认证为chap
[AR2-Virtual-Template1]dis this 
[V200R003C00]
#
interface Virtual-Template1
 ppp authentication-mode chap 
 remote address pool pppoe
 ip address 10.1.1.2 255.255.255.0 
#
return
[AR2-Virtual-Template1]q
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1  
[AR2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 pppoe-server bind Virtual-Template 1    //将物理接口与VT虚拟接口进行绑定,实现pppoe协议的封装
#
return
[AR2-GigabitEthernet0/0/0]q
[AR2]

客户端

[AR1]
[AR1]dialer-rule    
[AR1-dialer-rule]dialer-rule 10 ip permit         //配置什么样的流量才可以触发pppoe的拨号
[AR1-Dialer1]interface Dialer 1        //创建一个dialer口,实际上就是一个ppp接口
[AR1-Dialer1]link-protocol ppp    //配置dialer1口的协议为PPP
[AR1-Dialer1]ip address ppp-negotiate         //ip地址通过ppp协商阶段获得
[AR1-Dialer1]ppp chap user pppoe          //服务器会做chap认证:用户名
[AR1-Dialer1]ppp chap password simple ppp     // //服务器会做chap认证:密码
[AR1-Dialer1]dialer user pppoe      //这里的用户名“pppoe”必须和服务器配置的用户名密码数据库中的用户名保持一致   
[AR1-Dialer1]dialer-group  10        //这里“10”需要和前面“dialer-rule 10 ip permit ”中的数字保持一致
[AR1-Dialer1]dialer bundle 2      //dialer必须要和具体的一个以太口绑定,绑定的号就是bundle后面的数字
[AR1-Dialer1]q
[AR1]
[AR1]interface GigabitEthernet 0/0/0      //具体发起pppoe拨号的以太口
[AR1-GigabitEthernet0/0/0]pppoe-client dial-bundle-number 2 on-demand     //这里的"2"要和前面bundle后面的数字保持一致。on-demand 是需要通过pppoe传送数据包的时候进行拨号连接(有流量发就拨号没流量发就不拨号)
[AR1-GigabitEthernet0/0/0]q
[AR1]ip route-static 0.0.0.0 0 Dialer 1   //配置缺省路由,在数据包向外发送的时候都从 dialer 1口往出发
[AR1]interface Dialer 1
[AR1-Dialer1]dis this     //查看dialer口的配置
[V200R003C00]
#
interface Dialer1
 link-protocol ppp
 ppp chap user pppoe
 ppp chap password simple ppp
 ip address ppp-negotiate
 dialer user pppoe
 dialer bundle 2
 dialer-group 10
#
return
[AR1-Dialer1]q
[AR1]

如果不配置on-demand(有流量拨号没流量不拨号)的话直接undo掉这些命令就可以

1.pppoe-client dial-bundle-number 2 on-demand 
2.dialer-rule   
3.dialer-rule 10 ip permit 
4.dialer-group  10  

配置验证:
1.display interface Dialer 1——查看拨号接口的配置

display interface Dialer 1

image.png

当拨号成功的时候 物理层面以及协议层面都是up的,lcp和ipcp都是opened的。
2.display pppoe-client session summary——查看PPPoE客户端的PPPoE会话状态和统计信息。

display pppoe-client session summary
image.png

image.png

State是IDLE时PPPoE是没有拨号成功的,UP时就说明拨号成功了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356