当前位置: 首页 > news >正文

PPP 、PPPoE 浅析和配置示例

一、名词:

        PPP: Point to Point Protocol    点到点协议
        LCP:Link Control Protocol    链路控制协议
        NCP:Network Control Protocol 网络控制协议,对于上层协议的支持,N 可以为IPv4、IPv6、MPLS 等
        MRU:Maximum Receive Unit    最大接收单元
        MTU:Maximum Transfer Unit    最大传输单元
        PAP:Password Authentication Protocol 口令认证协议
        CHAP:Chanllenge-Handshack Authentication Protocol 挑战握手协议
        DSL:Digital Subscriber Line 数字用户线路
        PPPoE:Point-to-Point Protocol over Ethernet 以太网承载 PPP 协议
        BRAS:Broadband Remote Access Server 宽带接入服务器
        PADI:PPP Active Discovery Initiation,Client 发现 BRAS
        PADO:Offer,BRAS回应
        PADR:Request,Client 请求加入 BRAS
        PADS:Session-Conform,BRAS会话确认

二、PPP:

        分为两个子层:LCP 和 NCP
        LCP:Link Control Protocol 链路控制协议,

    1、LCP 二层链路协商,建立、维护、拆除
    1)建立:

config-request----->
                <------config-ack
                <------config-nak
                <------config-reject
    维护:keepalive,保活
    echo-request------>
            <-----echo-reply
    拆除:
    termination-request------>
            <------terminattion-ack
    PPP链接建立过程:
    LCP configuration-request:
    Option:
        MRU:Maximum Receive Unit 最大接收单元
        MTU:最大传输单元 = 1500(默认),在    DC/IDC中,一般MTU默认o 9000,可直接在接口下配置,如
        int s0/0/0
          mtu 2000    双边如果配置不同,  按最小值来
    假如DF置位  dont fragment,  则使用 PMD: path mtu discovery mtu路径发现来解决 

    2)、认证:    PAP/CHAP

    认证方:
    int s0/0/0
      ppp authentication-mode chap    #必须,  认证方标志
      ppp chap user AR2        #只有被认证方没有接口密码的时候,  才有意义
      ppp chap pass simple 1234    #被认证方不看,  只有当双向认证才使用

    被认证方:
    aaa
      local-user AR2 password cipher 123    #当被认证方无密码时,  有意义
    int s0/0/0
      ppp chap user xx        #必须配置 
      ppp chap password    #建议配置,  优先看接口密码,  接口没有就在aaa找对应用户名的密码

    3)、捆绑:multilink-group,意义:冗余、负载、增加带宽
    4)、压缩:compress,QoS
    5)、防环:magic-number,魔术字

        每个设备会随机形成魔术字,  if 收到自己的魔术字,  则回复config-nak,  然后自己再生成 ,  如果再收到相同的.....则判断环路

2、NCP:PPPoE 的 NCP

IPCP:
    1、互推地址,实现不同网段的互访
    Configuration-Request
        option:  IP Address:  1.1.1.1
            Configuration-ACK
                option:  IP Address 1.1.1.1
                AR3产生一条直连路由
            Configuration-Request
                option:  IP Address 1.1.1.2
    Configuration-ACK
        option:  IP Address 2.2.2.2
        AR2产生一条直连路由
    问题:正常来说,相同公司的不同站点:IP应该在同一网段,什么场景,两端地址不在同一网段?
    答:互联网访问,上网业务
    BRAS:Broad Bandwidth Access Server:  ME60
    Client-----Server  一定不在同一网段
    2、动态获取地址

        PPPoE:  互联网接入技术
            通信技术:DSL:Digital Subscriber Line
            数通技术:PPPoE,  PON(ePon,  GPon)

        服务端:
        int virtual-template 0
          ip addr 1.2.3.4
          ppp authentication-mode pap
          remote address 4.3.2.1
        dis interface virtual-template 0
        int G1/0/1        #绑定一下
          pppoe-server bind virtual-template 0

        客户端:
        int dialer 0
          ip address ppp-negotiate
          ppp pap local-user hw password simple 123
          dialer user hw
          dialer bundle 1
        int G0/0/0
          pppoe-client dial-bundle-number 1

三、PPPoE ping 通过程

        1、查路由表:

        0.0.0.0/0----dailer 1(PPP)

        2、封装,DMAC未知,需要构建

            Bundle id    Session id    Interface    SMAC    DMAC
            1    ?    G0/0/0    自己的    ?
            PPPoE Discovery:
            1)、Client 发现 BRAS
            PPPoE Discovery    #广播,包含PADI:  PPP Active Discovery Initiation
            源MAC AR1    DMAC 全F
            2)、BRAS 回应
            PPPoE Offer    #单播,PADO,包含BRAS MAC,  如果有多个BRAS,Client会优选第一个Offer
            3)、Client 请求
            PADR:  PPP Address Request,  请求加入bras,  拒绝掉其他的 BRAS
            4)、BRAS 确认
            PADS:  session-confirm,会话确认
            完成后,获取 Session id 和 DMAC,进行封装后发出

        3、PPP 认证
        4、PPP 建链

四、PPP 配置举例

        1、PPP PAP配置举例:

        PPP 认证分为认证方和被认证方,这里 R2 为 Sever端 和认证方,R1 为被认证方:

[R2]:
aaa local-user hw password cipher %$%$+>0h@g2c(E_#xYHN=U074Ph&%$%$local-user hw privilege level 2local-user hw service-type ppp
#
interface Serial2/0/0link-protocol pppppp authentication-mode pap remote address 1.2.3.5 ip address 1.2.3.4 255.255.255.0 
#
[R1]:
interface Serial2/0/0link-protocol pppppp pap local-user hw password simple 123ip address ppp-negotiate
#

        2、PPP CHAP 配置举例:

[R2]:
aaa local-user ar1 password cipher %$%$%%qD<7,-.#>~<+5b2:;,4^3V%$%$local-user ar1 privilege level 2local-user ar1 service-type ppp
#
interface Serial2/0/0link-protocol pppppp authentication-mode chap remote address 1.2.3.5 ppp chap user ar1ip address 1.2.3.4 255.255.255.0 
#
[R1]:
interface Serial2/0/0link-protocol pppppp chap user ar1ppp chap password simple 123ip address ppp-negotiate
#

五、PPPoE 配置举例

[R2]:
aaa local-user hw password cipher %$%$+>0h@g2c(E_#xYHN=U074Ph&%$%$local-user hw privilege level 2local-user hw service-type ppp
#
interface Virtual-Template0ppp authentication-mode pap remote address 1.1.1.1 ip address 2.2.2.2 255.255.255.0 
#
interface GigabitEthernet0/0/0pppoe-server bind Virtual-Template 0
#
[R1]:
interface Dialer0link-protocol pppppp pap local-user hw password simple 123ip address ppp-negotiatedialer user hwdialer bundle 1
#
interface Serial2/0/1link-protocol ppp
#
interface GigabitEthernet0/0/0pppoe-client dial-bundle-number 1 
#


 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vim 快捷命令
  • mysql-PXC实现高可用
  • UniApp实现漂亮的音乐歌词滚动播放效果
  • 如何提升网站的收录率?
  • Linux 进程信号
  • 【JAVA基础】StringUtils.isEmpty、StringUtils.isBlank()、Objects.isNull()三者区别
  • 基因组学中的深度学习
  • C++学习笔记(8)
  • 单点登录及登录相关功能1
  • 代码随想录:279. 完全平方数
  • Qt 模仿企业微信图标实现按钮图片文字上下结构
  • MDC实现日志链路追踪
  • 高性能计算应用优化之代码实现调优(一)
  • TypeScript Agenda异常 undefined (reading ‘collection‘)
  • word中怎么快速选中光标之前或之后的全部内容?
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android 控件背景颜色处理
  • Git 使用集
  • HTTP中GET与POST的区别 99%的错误认识
  • mongodb--安装和初步使用教程
  • mongo索引构建
  • PermissionScope Swift4 兼容问题
  • Promise面试题2实现异步串行执行
  • Python_OOP
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 测试如何在敏捷团队中工作?
  • 大主子表关联的性能优化方法
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 来,膜拜下android roadmap,强大的执行力
  • 前端技术周刊 2019-02-11 Serverless
  • 前端临床手札——文件上传
  • 入手阿里云新服务器的部署NODE
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 容器镜像
  • ######## golang各章节终篇索引 ########
  • #微信小程序:微信小程序常见的配置传旨
  • $(function(){})与(function($){....})(jQuery)的区别
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (11)MATLAB PCA+SVM 人脸识别
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm高校实验室 毕业设计 800008
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)kafka实战——kafka源码编译启动
  • .Net Core 生成管理员权限的应用程序
  • .NET Core 通过 Ef Core 操作 Mysql