概述:


PPP相比于以太网有很多的优点,我们可以让以太网拥有以太网的功能,所以PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。(主要是可以方便计费管理,在以太网局域网中,我们更加常用802.1x进行认证计费,但是在运营商的网络环境中,更多应用的是PPPoE)。

在PC和运营商的路由器之间建立PPPoE会话,每一个PC建立一个PPPoE会话。每个PC都是一个PPPoE Client,单独使用一个帐号,方便运营商对用户进行计费和控制。PC上必须安装PPPoE客户端拨号软件。

PPPoE会话建立过程:

类比DHCP来进行记忆

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

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阶段。
  5. 完成之后通信双方都会知道PPPoE的Session_ID以及对方以太网地址,它们共同确定了唯一的PPPoE Session。

Seesion阶段:

  1. PPPoE Session上的PPP协商和普通的PPP协商方式一致。
  2. PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。
  3. 在PPPoE Session阶段所有的以太网数据包都是单播发送的。

Terminate阶段:

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

实验:


描述:R1作为server,R2作为client进行配置

在R1上:
aaa //配置chap认证
local-user admin@huawei password cipher Huawei@123
local-user admin@huawei service-type ppp
interface Virtual-Template0 //PPPoE只能在虚拟接口上创建,不能直接在以太网链路上进行操作
ppp authentication-mode chap //绑定chap模式
remote address 10.1.1.2 //给对方配置一个IP地址
ip address 10.1.1.1 255.255.255.0 //配置自己的IP地址
interface GigabitEthernet0/0/0 //进入物理接口
pppoe-server bind Virtual-Template 0 //调用虚模板

在R2上:
interface Dialer0 //服务器是虚模板,客户端是拨号器
link-protocol ppp
ppp ipcp default-route //获取默认路由
ppp chap user admin@huawei //配置chap认证的用户和密码
ppp chap password cipher Huawei@123
ip address ppp-negotiate //自动获取IP地址
dialer user admin@huawei 设置拨号器的用户名
dialer bundle 1 设备拨号器的束
dialer-rule //允许所有IP流量通过
dialer-rule 1 ip permit
interface GigabitEthernet0/0/0 //在物理接口上绑定拨号器的束
pppoe-client dial-bundle-number 1

查看信息:
配置完成后,查看接口IP地址信息:在R2上已经获取到了IP地址

然后查看抓包的信息:可以看到PPPoE连接正常建立

首先是PADI报文:

再是PADO报文:

之后是PADR报文:

最后是PADS报文:在这里确认了会话的ID建立了会话,其他报文会话的ID都为0,这里为1

然后进行了PPP会话的建立,认证,网络层的协商等,最后建立了完整的连接。

注意点:这里需要注意的是需要将PPPoE中IP报文的MTU值修改为1492,需要比1500减少8,我们从PPPoE的报文进行解释:比普通的IP报文多了2层:

这两层占据了8个字节,我们也是知道,以太网内部最多允许1500字节,如果IP报文1500字节了,再加上外面的两层新的报头,就为1508>1500。例如IP报文一共为1500个字节,这时IP报文中因为没有超过1500字节还不能进行分片,但是相对于以太网层已经超出了最大的范围,所以我们需要进行修改。

参考资料:华为数通培训资料;有错误的地方欢迎指正。

PPPoE原理和实验相关推荐

  1. 解读模拟摇杆原理及实验

    解读模拟摇杆原理及实验 Interpreting Analog Sticks 当游戏支持控制器时,玩家可能会一直使用模拟摇杆.在整个体验过程中,钉住输入处理可能会对质量产生重大影响.让来看一些核心概念 ...

  2. 编译原理:实验一练习

    编译原理:实验一练习 词法分析器 编译原理实验报告 上面的第一个链接中的词法分析器有一点问题,修改后的代码如下: #include "string.h"#include " ...

  3. c语言的适当大小的子集,编译原理上机实验报告

    编译原理上机实验报告,编制C语言子集的词法分析程序,编制递归下降法的语法分析程序 编译技术上机实验题目 实验一 一.题目 编制C语言子集的词法分析程序 二.目的 通过设计.编制.调试一个具体的词法分析 ...

  4. 《编译原理》实验报告——递归下降语法分析器的构建

    一.实验要求 运用递归下降法,针对给定的上下文无关文法,给出实验方案.预估实验中可能出现的问题. 二.实验方案 1.构造LL(1),通过设计.编制.调试递归下降语法分析程序,对输入的符号串进行分析匹配 ...

  5. 《编译原理》实验教学大纲

    <编译原理>实验教学大纲 课程编号: 773033 课程名称:编译原理 英文名称:Compiler Principle 课程类型: 模块课 学 时:5 学 分:4 适用对象: 软件开发各专 ...

  6. 【渝粤教育】国家开放大学2018年春季 0690-22T化工原理及实验 参考试题

    科目编号:0690 座位号: 2017-2018学年度第二学期期末考试 化工原理及实验试题(B) 2018年7月 一.填空题(每空2分,共30分) 塔板负荷性能图中有______________条线, ...

  7. 基于Matlab的模拟通信实验平台设计,【通信原理仿真实验】通信原理虚拟实验仿真平台的设计和实现_玛雅作文网...

    作文「通信原理虚拟实验仿真平台的设计和实现」共有 4564 个字,其中有 2704 个汉字,1316 个英文,162 个数字,382 个标点符号.作者佚名,请您欣赏.玛雅作文网荟萃众多优秀学生作文,如 ...

  8. 湘潭大学计算机组成原理试卷,湘潭大学 计算机组成与原理 控制器实验 实验报告...

    <湘潭大学 计算机组成与原理 控制器实验 实验报告>由会员分享,可在线阅读,更多相关<湘潭大学 计算机组成与原理 控制器实验 实验报告(10页珍藏版)>请在人人文库网上搜索. ...

  9. 第19节 HSRP-热备份路由协议原理及实验演示—基于Cisco Packet Tracer

    HSRP-热备份路由协议原理及实验-基于Cisco Packet Tracer 0 引言 1 HSRP协议概述 2 工作原理 2.1 核心原理 2.2 工作流程 3 相关命令 4 实验 4.1 实验要 ...

  10. 【通信原理】实验五 基于Matlab的2ASK和2FSK调制解调

    目录 一.实验目的 二.实验器材 三.实验原理 1.二进制振幅键控(2ASK) 2.二进制频移键控(2FSK) 四.示例演示 1.2ASK的模拟调制程序如下: 2.2ASK的开关键控法,调制程序如下: ...

最新文章

  1. 职场残酷!美国科技巨头 “花式劝退” 老员工,数万人丢掉饭碗
  2. 网络编程学习笔记(uname函数)
  3. xheditor的使用方法
  4. 在win8.1 64位系统+cocos2d-x2.2.3下搭建android交叉编译环境
  5. 获取元素大小和位置的方式
  6. 【AI视野·今日Robot 机器人论文速览 第三十一期】Fri, 15 Apr 2022
  7. debian下安装python虚拟环境
  8. POJ 1721 CARDS(置换群)
  9. html中div弹出显示
  10. 解决在编程方式下无法访问Spark Master问题
  11. python采集直播间数据_利用Python爬虫爬取斗鱼直播间信息,以及直播的实际人数!...
  12. 腾讯视频弹幕爬取----------之亲爱的,热爱的
  13. mac php71 php fpm,Mac PHP-fpm
  14. 残差网络ResNet到ResNeXt解读,最强ResNeXt预训练模型已开源及如何使用
  15. Arcmap制图调色
  16. ArcGIS Maps SDK for Unreal Engine通过UI方式显示地图教程
  17. 扔硬币先手获胜概率问题
  18. Vaa3D (V3D) installation procedures in Windows(VS2010) V3D安装教程
  19. CTP原生接口MACD多品种止盈止损源码
  20. 栋感光波-冲刺日志(第1次)

热门文章

  1. 最新资源《机器学习图像算法与建模优化》免费开放下载!(含代码数据)
  2. 【每日算法Day 62】LeetCode 815. 公交路线
  3. 论文赏析[COLING18]两种成分句法分析的局部特征模型
  4. 02 linux常用命令
  5. 数据分析不能落地?快来围观,学会数据分析应用,一起升职加薪
  6. 博文视点算法书单|让算法学习不再难
  7. 项目经理感悟之风险管理
  8. 《嵌入式系统Linux内核开发实战指南(ARM平台)》书评
  9. 3.4 tensorflow2实现两总体样本尺度参数的秩检验法——python实战
  10. Scala常用List列表操作方法