PPP与PPPoE协议

计算机网络实验2 - PPP与PPPoE协议

 

实验一: PPP与PPPoE学习

    

实验目的

    熟悉 PPP 的封装格式,了解 PPPoE 的封装格式,理解 PPP 的两种认证方式。

背景知识

    

1. PPP

    点到点协议( Point-to-Point Protocol, PPP)
    点对点链路中应用最广的一种数据链路层协议。
    PPP具有差错检测、支持多种网络层协议、允许动态协商IP地址、允许身份认证等功能。
    PPP不提供可靠传输,不提供流量控制,不支持多点链路通信,因此,协议比较简单。

PPP主要由以下三部分组成:
    ① 封装成帧,PPP提供一种封装多协议数据报的方法;
    ② 链路控制协议(Link Control Protocol, LCP), 用来建立、配置、管理和测试数据链路连接,在建立连接过程中,通信双方可以协商一些选项;
    ③ 一组网络控制协议( Network Control Protocol, NCP),如IPCP和IPXCP等,每一个NCP支持不同的网络层协议。

PPP的帧格式
在这里插入图片描述
    

2. PPP认证方式

2.1 PAP

    两次握手,发起端反复向认证端发送用户名/口令,知道认证端响应确认或拒绝。明文发送用户名和密码,且不限制尝试次数,安全性较差。

2.2 CHAP(Challenge Handshake AuthenticationProtocol)

    三次握手方法周期性地认证对端节点。

CHAP认证过程
        认证端向对端发送“挑战”信息,对端节点根据挑战信息和指定算法计算出应答信息,并回复给认证端,认证端通过验证应答信息判定认证是否成功。
        与PAP相比,CHAP通过使用唯一且不可预测的可变询问消息值提供回送攻击防护功能。
        认证端每隔一段时间就会发出-一个新的“挑战"信息,以确认对端连接是否经过授权。
    

2. PPPoE

    
    基于以太网的点对点协议,简称PPPoE协议( Point-to-Point Protocol over Ethernet)。提供方便的接入控制和计费。ADSL使用了PPPoE协议。

在这里插入图片描述
    

PPPoE的工作过程

分成两个阶段,即==发现阶段(Discorvery)PPP会话(承载阶段)==阶段。

  1. 客户端的用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的服务端的MAC地址
  2. 服务端收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 回应;
  3. 客户端从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的服务端,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个客户端在发出PADI后在规定时间内没有收到PADO,会重发PADI;
  4. 客户端收到PADR包后,返回PAS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,进入PPP会话阶段。
  5. 双方随时可以发送PADT包,停止PPP会话。

绘制示意图:

    
在这里插入图片描述

    

实验步骤

实验环境

1:拓扑图

    ISP1已经配置为PPPoE服务器,ISP1 和ISP2之间的链路使用PPP协议,ISP2对ISP1的单向PAP认证; ISP2 和ISP3之间的链路也使用PPP协议,ISP3对ISP2的单向CHAP认证。
在这里插入图片描述
    
2:IP地址
    PPPoE有类DHCP的功能,客户机可以通过拨号获取PPPoE地址池中的IP地址。
(ISP1的地址池是:220.10.0.1-220.10.0.100)

在这里插入图片描述

    

实验过程

准备阶段
交换机初始化:

    交换机端口指示灯呈橙色,则单击主窗口右下角Realtime 和Simulation模式切换按钮数次,直至交换机指示灯呈绿色。这一操作可以使交换机快速完成初始化工作。

建立PPPoE链接

PPPoE拨号连接后:

    此处有一个地方值得注意,子网掩码显示为255.255.255.255,子网掩码设置为255.255.255.255(32)的情况并不多见,于是去网上搜了一下。
    一般说来,至少有4个ip地址才能对外通信,即网关地址一个,广播地址一个,通信双方各一个地址,那么子网掩码至少是30位。
    但是PPPoE拨通之后,获取到32位地址,与此同时作为BAS的一个虚接口,也就是类似LoopBack之类的接口。无论来自何方的数据,只要被路由到BAS上即可,然后BAS通过直连路由将其发往该虚接口,实现数据通信的目的。(关于BAS和LookBack没有继续深究 (!O _ O!) )
 

在这里插入图片描述

    

任务一:观察PPPoE和PPP数据封装格式:

    从PC1发送报文到PC2,查看帧结构。
在这里插入图片描述

    
根据上述帧结构并结合资料,绘制如下示意图
在这里插入图片描述

    

Ethernet II帧:
  1. Preamble:前导码:由0、1间隔代码组成,用来通知目标站作好接收准备。以太网帧使用8个字节的0、1间隔代码作为起始符。

  2. Destination MAC:目的MAC地址,对于discovery数据包,是以太网的广播地址(0xffffffff),广播地址用于PPPoE Client寻找PPPoE Server。因为我们发送的是用户名和密码,所以应该是PAP认证,认证后发送的帧des段填写ISP的MAC地址。

  3. Source MAC:源MAC地址。

  4. Type:指定接收数据的高层协议类型。
        0x8863:Discovery Stage
        0x8864:PPP Session Stage

  5. Data段:该数据段的长度最小应当不低于46个字节,最大应不超过1500字节。如果数据段长度过小,那么将会在数据段后自动填充(Trailer)字符。相反,如果数据段长度过大,那么将会把数据段分段后传输。

  6. FCS:包含长度为4个字节的循环冗余校验值(CRC),由客户端计算产生,在服务端重新计算以确定帧在传送过程中是否被损坏。
        

PPPoE帧:
  1. Ver:4bits,PPPoE版本号,值为0x1。
  2. Type:4bits,PPPoE类型,值为0x1。
  3. Code:8bits,PPPoE报文类型。
    0x00,表示会话数据。
    0x09,表示PADI报文。
    0x07,表示PADO或PADT报文。
    0x19,表示PADR报文。
    0x65,表示PADS报文。
  4. Session_ID: 16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。
  5. Length:16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。
  6. Data或payload:PPPOE的discovery阶段时,该域内会填充一些Tag(标记);而在PPPOE的会话阶段,该域则携带的是标准的点对点协议包(PPP Packet)。
     
    在思科中发信,并查看帧内容
    在这里插入图片描述

 
    不过以上帧内容Ethernet的type字段和PPPoE的type字段不一致,可能是显示错误,这个包是discovey包,type应该是0x8863。

PPP帧:
  1. Flag:标志字节,0x7E
  2. Addres:由于 PPP协议是被运用在点对点的链路上,因为点对点的链路可以唯一标示对方,因此使用 PPP协议互连的通信设备的两端无须知道对方的数据链路层地址,按照协议的规定将该字节填充为全1,即0xFF的广播地址。
  3. Control:同地址域一样,无意义字段,按照协议,填充为0x03
  4. Protocol
        协议域可用来区分信息域的报文内容。协议域必须依据ISO 3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也即是要求低字节的最低位为“1”,高字节的最低位为“0”。
        如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,则接收端会认为此数据帧是不可识别的,那么接收端会向发送端发送一个Protocol-Reject报文,在该报文尾部将完整地填充被拒绝的报文。
        0xC021 LCP报文
        0x8021 NCP报文
        0x0021 IP数据报文
    详见数据帧格式
  5. Data:PPP协议中配置参数选项MRU(Maximum Receive Unit)的缺省值是1500,所以Data段模式情况下是0-1500bits。
  6. FCS:CRC校验字段。
  7. Flag:标志字节,0x7E

PPP报文示意

7E FF 03 C021 01 01 00 17 02 06 00 0A 00 00 05 06 00 0B 42 CB 07 02 08 02 0D 0306 7E
    
    
思科PPP报文示意
    
在这里插入图片描述

此处PPP报文显示不全或有错误,Flag字段是01111110是对的,但是address和protocol字段是错误的。
    

任务二:观察PPP的PAP认证机制

步骤一:查看PAP认证的配置信息
    命令:
    $en
    #show running-config
 
在这里插入图片描述

 

步骤二:在degub下查看PAP认证成功过程
 
在这里插入图片描述
 

步骤三:在degub下查看PAP认证失败过程
 

在这里插入图片描述

 

任务三:观察PPP的CHAP认证机制

 

步骤一:查看CHAP认证的配置信息
 
在这里插入图片描述

 

步骤二:查看CHAP认证成功
 
在这里插入图片描述

 
步骤三:查看CHAP认证失败
 
在这里插入图片描述

 

思考题

    

ADSL接入PPPoE的优点有哪些?

    

ADSL简介

    不对称数字用户线(Asymmetrical Digital Subscriber Line,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。在同一条电话铜线上产生三个信息通道:一个速率为 1.5 M b p s − 9 M b p s 1.5Mbps-9Mbps 1.5Mbps9Mbps的高速下行通道,用于用户下载信息;一个速率为 16 K b p s − 1 M b p s 16Kbps-1Mbps 16Kbps1Mbps的中速双工通道;一个普通的老式电话服务通道;且这三个通道可以同时工作。

ADSL与PPPoE的关系

    ADSL本身是端对端的宽带接入方式,为了上网,PPP是一种点对点数据传输的协议,但是在ADSL的电话线上,不只有一个用户,我们为了实现PPP的点对点数据传输,就需要用PPPoE协议来建立一个客户端到ISP服务器的点对点的连接。PPPoE使用PAP或CHAP身份认证进行拨号连接,获取唯一IP地址,之后使用PPPoE包装PPP帧,外层再套以太网帧。
    所以ADSL使用PPPoE是为了方便用户建立点对点的网络连接,方便进行身份认证、获取IP等。

PPPoE中,PPP帧和Ethernet的封装关系是什么?

封装关系可以用如下绘图表示:
在这里插入图片描述

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值