分享

广域网宽带接入技术二PPPoE原理及配置

 和合德 2023-08-06 发布于江苏

二、PPPoE原理及配置

1、PPPoE的基本原理

运营商希望把一个站点上的多台主机连接到同一台远程接入设备,并实现对用户进行认证、授权和计费、访问控制的功能,通过应用RFC2516定义的PPPoE(Point-to-Point Protcol over Ethernet)技术很好的解决了以太网接入应用中的用户认证问题。将PPP帧封装到以太帧,使用PPP协议(点到点协议)在以太网上传输PPP报文的技术称为PPPoE。

PPP是一种数据链路层协议,遵循HDLC(高级数据链路控制协议)族的一般报文格式。它使用链路控制协议(LCP)来建立和维护数据链路连接。应用网络控制协议(NCP)在一条点到点连接上使用多种网络层协议(被路由协议)。PPP协议栈只涉及到物理层和数据链路层。

链路控制协议(LCP)提供以下配置:身份验证、压缩、错误检测、多链路、PPP回拨。网络控制协议(NCP)用于标识和封装网络层协议,允许通过同一条PPP链路传输多种网络层协议,包括IPCP(因特网协议控制协议)和IPXCP(网间分组交换控制协议)。

PPPoE组网结构采用Client/Server模型,PPPoE的客户端为PPPoE Client,PPPoE的服务器端为PPPoE Server。PPPoE Client向PPPoE Server发起连接请求,PPPoE Server为PPPoE Client提供接入控制、认证等功能。
在这里插入图片描述
PPPoE Client可以是电脑主机也可以是网关设备,常见的是现在通过光猫或者路由器设置帐号和密码后,输入上网帐号和密码连接网络,然后将PPP帧封装以太帧传输到PPPoE Server上进行PPP认证。在网络运营商的宽带接入服务器(Broadband Remote Access Server,BRAS)提供接入控制、认证、动态分配IP地址等功能。

企业接入
在这里插入图片描述所有主机不用安装PPPoE Client拨号软件,同一个局域网中的所有主机共享一个账号,通过企业路由器与运营商的集中路由器建立PPPoE会话。

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

1.1、PPPoE拨号的三个阶段

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

1、discovery发现阶段
发现阶段是无状态的,目的是获得 PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个惟一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。

主机可以发现多个接入集中器,然后允许用户选择一个。

2、PPP Session会话阶段
当PPPoE进入session阶段后,PPP报文就可以作为PPPoE帧的净荷封装在以太网帧发到对端,SESSION_ID必须是Discovery阶段的确定的ID,MAC地址必须是对端的MAC地址。

进行普通的LCP、NCP、IPCP协商来进行PPP验证和IP地址分配。

3、Terminate阶段
PPP通信双方可以使用PPP协议自身来结束PPPoE会话,当无法使用PPP协议结束会话时可以使用PADT(PPPoE Active Discovery Terminate)报文。

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

1.2、PPPoE报文格式

PPPoE报文格式

字段长度含义
Destination_Address48bits以太网单播目的地址或者以太网广播地址(0xFFFFFFFF)。
Source_Address48bits源设备的以太网MAC地址。
Ethernet_Type16bits表示PPPoE拨号的阶段。·当值为0x8863时表示Discovery阶段或Terminate阶段。·当值为0x8864时表示Session阶段。
VER4bits表示PPPoE版本号,值为0x01。
Type4bits表示PPPoE类型,值为0x01。
Code8bits表示PPPoE报文类型。
Session_ID16bits用于唯一标识一个PPP Session,在discovery发现阶段被定义。值0xFFFF为将来的使用保留,不允许使用。
Length16bits表示PPPoE报文的Payload长度。它不包括以太网头部和PPPoE头部的长度。
Tag_Type16bits表示网络字节序。
Tag_Length16bits是一个网络字节序的无符号值,表示Tag_Value的字节数。
Tag_Valus可变Tag_Value的数据。
Checksum16bits表示校验和字段,用于检验报文的正确性。

Destination_Address目标地址

  • Discovery会话阶段,该域的值是单播或者广播地址,PPPoE Client寻找PPPoE Server的过程使用广播地址,确认PPPoE Server后使用单播地址。
  • PPP Session会话阶段,该域必须是Discovery阶段已确定的通信对方的单播地址。

Code表示PPPoE报文类型

  • Code域为0x09,表示PADI报文。
  • Code域为0x07,表示PADO报文。
  • Code域为0x19,表示PADR报文。
  • Code域为0x65,表示PADS报文。
  • Code域为0x00,表示会话数据。
  • Code域为0xa7,表示PADT报文。

1.3、PPPoE协商过程

PPPoE协商过程

1.3.1、discovery发现阶段:

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

PPPoE 头部:分组的目的地址为以太网的广播地址0×ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。

PPPoE Payload:TAG_Type域为0x0101(Service-Name),表明后面紧跟的是服务的名称,用于请求服务,也可以包含其他的TAG。

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

PPPoE 头部:CODE字段值为0×07,SESSION-ID字段值仍为0×0000。

PPPoE Payload:TAG_Type域为0x0101(Service-Name),表明后面紧跟的是服务的名称;为0x0102(AC-Name),表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。

3、PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。

PPPoE 头部:Code域为0x19,SESSION-ID字段值仍为0×0000。

PPPoE Payload:0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_Type为Service-Name的TAG,其他类型的TAG可选。

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

PPPoE 头部:Code域为0x65,SESSION-ID字段值为分配的数值。

1.3.2、PPP Session会话阶段:

1、PPP协商阶段
Ethernet_Type域设置为0x8864,PPPoE 头部:Code域为0x00,SESSION-ID字段值为Discovery阶段所指定的值,TAG_Type域包含一个PPP帧。PPP帧的开始字段是PPP Protocol-ID。

  • LCP阶段主要完成建立、配置和检测数据链路连接。(负责设备之间链路的创建、维护和终止。)
  • LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果(CHAP或者PAP)决定。
  • 认证成功后,PPP进入NCP阶段。NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它主要负责协商用户的IP地址和DNS服务器地址。

2、PPP数据传输阶段

1.3.3、Terminate阶段:

PPPoE头部:Code域为0xa7,SESSION-ID字段值为Discovery阶段所指定的值。

1.4、密码验证协议

PPP提供密码验证协议PAP(Password Authentication Protocol)和质询握手验证协议CHAP(Challenge-Handshake Authentication Protocol)两种验证方式。

PAP认证过程非常简单,二次握手机制。使用明文格式发送用户名和密码。

CHAP认证过程比较复杂,三次握手机制;使用密文格式发送CHAP认证信息;认证方发起CHAP认证,有效避免暴力破解。

两者的区别是CHAP认证用户使用MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发给验证方,验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败。

2、PPPoE的配置

2.1、PPPoE Server配置

在这里插入图片描述

要求:以太网内路由器设备作为PPPoE Server端,每台PC机都可通过拨号上网,接入Internet。

实现效果:PPPoE Server为主机动态分配IP地址;通过AAA本地认证认证主机用户;为主机分配DNS服务器地址。

第一步、配置全局地址池pool1

[R1] ip pool pppoe
[R1-ip-pool-pool1] network 192.168.1.0 mask 255.255.255.0
[R1-ip-pool-pool1] gateway-list 192.168.1.1
[R1-ip-pool-pool1] quit

第二步、配置域用户使用本地认证方案

[R1] aaa
[R1-aaa] authentication-scheme scheme0  //创建名为scheme0的授权方案。
[R1-aaa-authen-scheme0] authentication-mode local
[R1-aaa-authen-scheme0] quit
[R1-aaa] domain xyz                         //创建域xyz
[R1-aaa-domain-xyz] authentication-scheme scheme0
[R1-aaa-domain-xyz] authorization-scheme scheme0
[R1-aaa-domain-xyz] quit
[R1-aaa] local-user user1@xyz password
Please configure the login password (8-128)                                     
It is recommended that the password consist of at least 2 types of characters, i
ncluding lowercase letters, uppercase letters, numerals and special characters. 
Please enter password:                                                       
Please confirm password:                                                       
Info: Add a new user. 
[R1-aaa] local-user user1@xyz service-type ppp
[R1-aaa] quit

第三步、配置虚拟接口模板参数

[R1] interface virtual-template 1    //创建虚拟模板接口
[R1Virtual-Template1] ppp authentication-mode chap domain xyz  //ppp使用chap验证
[R1-Virtual-Template1] ip address 192.168.1.1 255.255.255.0
[R1-Virtual-Template1] remote address pool pppoe    //调用地址池pppoe
[R1-Virtual-Template1] ppp ipcp dns 8.8.8.8 4.4.4.4
[R1-Virtual-Template1] quit

第四步、绑定虚拟接口模板在以太网接口上。

[R1] interface gigabitethernet 1/0/0
[R1-GigabitEthernet1/0/0] pppoe-server bind virtual-template 1 //物理接口与虚拟接口进行绑定
[R1-GigabitEthernet1/0/0] quit

各主机安装PPPoE Client拨号软件后,配置好用户名(此处为user1@xyz)和密码就能使用PPPoE协议,拨号连接PPPoE Server。

显示PPPoE会话的状态信息和配置信息命令:
display pppoe-server session all

2.2、PPPoE Client配置

在这里插入图片描述

要求:以太网内路由器设备R1作为PPPoE Client端,通过这个帐号到R2作为PPPoE Server端进行认证。

实现效果:每台PC机都可通过自动拨号方式,接入Internet。

第一步、配置PPPoE Server如2.1PPPoE Server配置,此处省略。

第二步、配置拨号访问组1以及对应的拨号访问控制条件。

[R2] dialer-group 1 rule ip permit       //配置拨号访问组1
[R2] interface dialer 1      //创建拨号接口1
[R2-Dialer1] dialer bundle enable    //共享DDR
[R2-Dialer1] dialer-group 1    //将Dialer1接口与拨号访问组1关联。
[R2-Dialer1] ip address ppp-negotiate       //通过协商获取IP地址
[R2-Dialer1] ppp chap user user1@xyz    //用户帐号
[R2-Dialer1] ppp chap password cipher 12345678    //用户密码
[R2-Dialer1] quit

第三步、配置PPPoE会话

[R2] interface gigabitethernet 2/0/0
[R2-GigabitEthernet2/0/0] pppoe-client dial-bundle-number 1
[R2-GigabitEthernet2/0/0] quit

第三步、配置到PPPoE Server的静态路由

[R2] ip route-static 0.0.0.0 dialer 1
[R2] interface dialer 1
[R2-Dialer1] dialer timer idle 150     //配置空闲时间间隔为150秒
[R2-Dialer1] quit

第四步、验证配置
display pppoe-client session summary

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多