PPPoE简介介绍及配置

简介:

PPPoEPPP over Ethernet)协议是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。

目的:

运营商希望把一个站点上的多台主机连接到同一台远程接入设备,同时接入设备能够提供与拨号上网类似的访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE

PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。

 

PPPoE典型组网:

PPPoE组网结构采用Client/Server模型,PPPoE的客户端为PPPoE ClientPPPoE的服务器端为PPPoE ServerPPPoE ClientPPPoE Server发起连接请求,PPPoE ServerPPPoE Client提供接入控制、认证等功能。

 

常见企业或者家庭组网模式:路由器设备作为PPPoE Client

Router A作为PPPoE Client下行连接局域网用户,Router B是运营商的设备。所有主机不用安装PPPoE Client拨号软件,同一个局域网中的所有主机共享一个账号,通过Router ARouter B建立PPPoE会话。

图片.png


PPPoE拨号的工作原理:

PPPoE拨号是为了实现PPPoE ClientPPPoE Server之间的连接,建立PPPoE会话

PPPoE拨号可分为三个阶段,即Discovery阶段、Session阶段和Terminate阶段。

如下图:

图片.png

Discovery阶段由四个过程组成。
1.PPPoE Client广播发送一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
2.所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。
3.根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。
4.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 Session阶段可划分为两部分,一是PPP协商阶段,二是PPP数据传输阶段。
PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
1.LCP阶段主要完成建立、配置和检测数据链路连接。
2.LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果(CHAP或者PAP)决定。
3.认证成功后,PPP进入NCP阶段。NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它主要负责协商用户的IP地址和DNS服务器地址。
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流量了。


拓扑:

图片.png

配置:

R1(config)#host Server

Server(config)#username qytang password cisco   //设备本地用户数据库

Server(config)#ip local pool PPPOE_POOL 201.100.98.42   //设置本地地址池

Server(config)#int virtual-template 1    //设置虚拟模版

Server(config-if)#ip add 201.100.98.41 255.255.255.252   //配置IP地址,模拟公网地址

Server(config-if)#peer default ip address pool PPPOE_POOL   //调用本地地址池

Server(config-if)#ppp authentication chap   //设置CHAP认证

Server(config)#bba-group pppoe CISCO    //设置bba-group

Server(config-bba-group)#virtual-template 1   //调用虚拟模版

Server(config)#int e0/0

Server(config-if)#pppoe enable group CISCO  //接口调用bba-group

Server(config-if)#no shut

Client

R2(config)#host Client

Client(config)#int dialer 1   //拨号接口1

Client(config-if)#ip add negotiated  //地址自动协商

Client(config-if)#encapsulation ppp   //封装模式PPP

Client(config-if)#ppp chap hostname qytang   //CHAP认证用户名

Client(config-if)#ppp chap password cisco  //CHAP认证密码

Client(config)#int e0/0

Client(config-if)#pppoe-client dial-pool-number 1  //调用拨号接口1

Client(config-if)#no shut

Server#show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

Ethernet0/0                unassigned      YES unset  up                    up     

Ethernet0/1                unassigned      YES unset  administratively down down   

Ethernet0/2                unassigned      YES unset  administratively down down   

Ethernet0/3                unassigned      YES unset  administratively down down   

Virtual-Access1            unassigned      YES unset  down                  down   

Virtual-Access2            unassigned      YES unset  up                    up     

Virtual-Access2.1          201.100.98.41   YES manual up                    up     

Virtual-Template1          201.100.98.41   YES manual down                  down

Client#show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

Ethernet0/0                unassigned      YES unset  up                    up      

Ethernet0/1                unassigned      YES unset  administratively down down   

Ethernet0/2                unassigned      YES unset  administratively down down   

Ethernet0/3                unassigned      YES unset  administratively down down   

Dialer1                    201.100.98.42   YES IPCP   up                    up     

Virtual-Access1            unassigned      YES unset  up                    up 

Server#show ppp all  //查看PPP协商认证

Interface/ID OPEN+ Nego* Fail-     Stage    Peer Address    Peer Name

------------ --------------------- -------- --------------- --------------------

Vi2.1        LCP+ CHAP+ IPCP+      LocalT   201.100.98.42   qytang         

Server#


Server#show pppoe session  //查看PPPOE会话
     1 session  in LOCALLY_TERMINATED (PTA) State
     1 session  total

Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State
           SID  LocMAC                                      VA-st      Type
      2      2  aabb.cc00.2000  Et0/0                    1  Vi2.1      PTA  
                aabb.cc00.1000                              UP              
Server#

测试:

Client#ping 201.100.98.41

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 201.100.98.41, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Server#

*Dec  3 08:29:39.255: PPPoE 0: I PADI  R:aabb.cc00.2000 L:ffff.ffff.ffff Et0/0

*Dec  3 08:29:39.255:  Service tag: NULL Tag

*Dec  3 08:29:39.255: PPPoE 0: O PADO, R:aabb.cc00.1000 L:aabb.cc00.2000 Et0/0

*Dec  3 08:29:39.255:  Service tag: NULL Tag

Server#

*Dec  3 08:29:41.341: PPPoE 0: I PADR  R:aabb.cc00.2000 L:aabb.cc00.1000 Et0/0

*Dec  3 08:29:41.341:  Service tag: NULL Tag

*Dec  3 08:29:41.341: PPPoE : encap string prepared

*Dec  3 08:29:41.341: [2]PPPoE 2: Access IE handle allocated

*Dec  3 08:29:41.341: [2]PPPoE 2: AAA unique ID E allocated

*Dec  3 08:29:41.341: [2]PPPoE 2: No AAA accounting method list

*Dec  3 08:29:41.341: [2]PPPoE 2: Service request sent to SSS

*Dec  3 08:29:41.341: [2]PPPoE 2: Created, Service: None R:aabb.cc00.1000 L:aabb.cc00.2000 Et0/0

*Dec  3 08:29:41.341: [2]PPPoE 2: State NAS_PORT_POLICY_INQUIRY    Event SSS MORE KEYS

*Dec  3 08:29:41.345: [2]PPPoE 2: data path set to PPP

*Dec  3 08:29:41.346: [2]PPPoE 2: Segment (SSS class): PROVISION

*Dec  3 08:29:41.346: [2]PPPoE 2: State PROVISION_PPP    Event SSM PROVISIONED

*Dec  3 08:29:41.346: [2]PPPoE 2: O PADS  R:aabb.cc00.2000 L:aabb.cc00.1000 Et0/0

*Dec  3 08:29:41.390: [2]PPPoE 2: State LCP_NEGOTIATION    Event SSS CONNECT LOCAL

*Dec  3 08:29:41.398: [2]PPPoE 2: Segment (SSS class): UPDATED

*Dec  3 08:29:41.398: [2]PPPoE 2: Segment (SSS class): BOUND

*Dec  3 08:29:41.398: [2]PPPoE 2: data path set to Virtual Acess

*Dec  3 08:29:41.398: [2]PPPoE 2: State LCP_NEGOTIATION    Event SSM UPDATED

*Dec  3 08:29:41.398: [2]PPPoE 2: State PTA_BINDING    Event STATIC BIND RESPONSE

Server#

*Dec  3 08:29:41.398: [2]PPPoE 2: Connected PTA

*Dec  3 08:29:41.432: PPPoE : ipfib_encapstr  prepared

Server#


通过wireshark抓包显示如下:

图片.png

PPPoE优化:

二次封装耗费资源,降低了传输效能
MTU1492:
以太网最大负载1500,pppoe头为6字节,PPP协议为2字节,而整个二层帧为1518,那么PPPoE的MTU=1518-18-6-2=1492字节
MSS(Maxitum Segment Size )是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候为1460

interface Dialer1
 ip mtu 1492    //修改 MTU 为1492
 ip tcp adjust-mss 1452   //修改最大数据分段大小为1452   MSS=1500byte-IP 20byte-tcp 20byte- pppoe 6byte-ppp 2byte=1452




猜你喜欢

转载自blog.51cto.com/3965485/2325531
今日推荐