PPPoE原理配置

2019-10-16  本文已影响0人  稀泡泡
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
4.PPPoE报文
image.png

各个字段解释如下:

image.png
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三个阶段。

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时就说明拨号成功了。

上一篇 下一篇

猜你喜欢

热点阅读