
remote----远端negotiate---协商PPP概述一种常见的广域网数据链路层协议主要用于在全双工链路上进行点到点的数据传输封装。PPP链路的建立有三个阶段的协商过程链路层协商认证协商可选网络层协商。LCPLink Control Protocol链路控制协议是 PPP 协议族的第一层控制子协议负责物理链路建立、参数协商、链路检测、链路拆除只有 LCP 协商完成PPP 才会继续进行认证PAP/CHAP与 NCP网络层协议协商。PPP的链路层协商链路层通过LCP报文进行 链路参数协商建立链路层连接。如下图R1和R2通过串线连接运行PPP当物理层链路变为可用状态后R1和R2使用LCP协商链路参数。1R1首先发送一个Configure-Request报文此报文中包含R1上配置的参数。2当R2收到此报文后如果R2也能识别并接收此报文中的所有参数则向R1回应一个Configure-ACK报文如果LCP参数不匹配则回复Configure-Nak响应告知对端修改参数然后重新协商。3同样的R2也需向R1发送Configure-Request报文使R1检测R2上的参数是不是可接收的。4R1在没有收到ACK报文的情况下会每隔3s重传Request报文如果连续10次发送该报文仍没有收到对应的ACK报文则认为对端不可用将停止发送Request报文。5当出现LCP参数不能识别时接收方回复Configure-Reject响应告知对端删除不能识别的参数然后重新协商。reject---拒绝正常协商过程参数不匹配时的协商过程参数不能识别时的协商过程认证协商在链路层协商成功后进行认证协商可选认证协商有两种模式PAP 、CHAPPAPPAP认证协商为两次握手认证协商密码以明文的形式在链路上发送。1被认证方将配置的用户名和密码信息用Authenticate-Request报文以明文方式发送给认证方2认证方接收到被认证方发送的用户名和密码信息后根据本地配置的数据库用户名和密码检查用户名和密码信息是否匹配。如果匹配则返回Authenticate-Ack报文表示认证成功否则返回Authenticate-Nak报文表示认证失败。CHAPCHAP认证双方有三次握手协商报文被加密后再链路上传输。1认证方主动发起认证请求认证方向被认证方发送Challenge报文报文内包含随机数Random和ID。challenge---盘查查问质疑2被认证方收到Challenge报文后进行一次加密运算公式 为MD5{ID随机数密码}表示将ID随机数密码三部分串成一个字符串再对此字符串做MD5运算得到一个16字节的摘要。然后将此摘要信息与端口上配置的CHAP用户名一起封装在Response报文中发回认证方。response---响应3认证方接收到被认证方发送的Response报文后根据其中的用户名查找本地的密码信息对密码进行一次相同的加密运算。然后将加密运算得到的摘要信息与response报文中封装的摘要信息进行比较相同则认证成功不同 则认证失败。网络层协商---NCPPPP认证协商完成后双方进入NCP协商阶段协商在数据链路层上所传输的数据包的格式与类型。作用协商三层网络协议相关参数让两端可以正常转发三层报文。以常见的IPCP协议为例分为静态IP地址协商和动态IP地址协商静态IP地址协商静态IP地址协商需手动在链路两端配置IP地址。1每一端都要发送Configure-Request报文在此报文中包含本地配置的ip地址2每一端接收到Configure-Request报文后检查其中的Ip地址如果IP地址是一个合法的单播IP地址而且和本地配置的IP地址不同不冲突则认为对端可用使用该地址回应一个Configure-Ack报文。动态IP地址协商动态IP地址协商支持PPP链路一端为另一端配置IP地址1R1向R2发送一个Configure-Request报文此报文中会包含一个IP地址0.0.0.0表示向对端申请IP地址。2R2接收到该Request报文后认为其中的地址0.0.0.0不合法则使用Configure--Nak回应一个新的IP地址10.1.1.13R1收到该Nak报文后更新本地IP地址并重新发送一个Configure-Request报文包含新的IP地址10.1.1.14R2收到该Request报文后认为其中包含的IP地址合法回应一个Configure-Ack报文5同时R2也要向R1发送Configure-Request报文请求使用地址10.1.1.2R1认为此地址合法回应Configure--Acknowledge报文PPPoE协议特性差异PPP 是点到点协议自带身份验证能力以太网属于广播型网络本身没有地址认证、身份核验的机制直接通信不安全没法做用户鉴权。PPPoE 的作用把 PPP 报文封装在以太网帧里面融合了两种技术的优点保留以太网低成本、易部署的组网特点同时借用 PPP 的身份验证功能。最终实现效果在现有的以太网宽带环境下完成客户端和运营商接入设备之间的点到点通信解决宽带接入的账号认证问题。PPPoE 报文PPPoE会话的建立通过不同的PPPoE 报文交互实现。结构如下其中code的代码不同代表的报文类型也不同报文名称Code 字段值使用阶段PADIPPPoE Active Discovery InitiationPPPoE激活发现起始报文0x09发现阶段 DiscoveryPADOPPPoE Active Discovery OfferPPPoE激活发现服务报文0x07发现阶段 DiscoveryPADRPPPoE Active Discovery RequestPPPoE激活发现请求报文0x19发现阶段 DiscoveryPADSPPPoE Active Discovery Session-confirmationPPPoE激活发现会话确认报文0x65发现阶段 DiscoveryPADTPPPoE Active Discovery TerminatePPPoE激活发现终止报文0xA7会话终止任意阶段会话数据帧PPP 数据报文0x00会话阶段 SessionPPPoE会话的建立PPPoE的会话建立有三个阶段PPPoE发现阶段、PPPoE会话阶段、PPPoE终结阶段。PPPoE发现阶段PPPoE协议发现阶段有四个步骤客户端发送请求、服务端响应请求、客户端确认响应、建立会话。1客户端发送请求。PPPoE客户端在本地以太网中广播一个PADI报文此报文中包含客户端需要的服务信息。所有的PPPoE服务器端接收到PADI报文后会将报文中请求的服务与自己能够提供的服务进行比较。2服务端响应请求。如果服务端可用提供客户端请求的服务就回复一个PADO报文。3客户端确认响应。客户端可能会收到多个PADO报文此时将选择最先收到的PADO报文对应的PPPoE服务器端并发送一个PADR报文给这个服务器。4建立会话。PPPoE服务器端收到PADR报文后会生成一个唯一的Session ID来标识和PPPoE客户端的会话并发送PADS报文。PPPoE会话阶段PPPoE会话阶段进行PPP协商分为LCP协商、认证协商、NCP协商。1LCP协商阶段主要完成建立、配置、检测数据链路连接2认证协商阶段LCP协商成功后开始进行认证。认证协议类型由LCP协商的结果决定。3NCP协商阶段认证成功后PPP进入NCP阶段NCP是一个协议簇用来配置不同的网络层协议。常见的是IP控制协议IPCP,负责配置用户的IP地址和DNS服务器地址等PPPoE Session协商成功后就能承载PPP数据报文。在这一阶段传输的数据报文中必须包含在发现阶段确定的Session ID并保持不变。PPPoE终结阶段当客户端希望关闭连接时会向PPPoE服务器端发送一个PADT报文用于关闭连接。当PPPoE服务器端想关闭连接时向客户端发送PADT报文。配置PPP获取IP地址配置R1接口IP地址并配置ppp协议配置对端客户端从本地地址池获取 IP 地址R2设置接口链路层协议获取ip地址方式获得IP为什么PPP链路上可以通过PPP协商获得IP地址ppp协商阶段分为LCP写和NCP协商。LCP协商阶段主要用于链路的建立NCP协商阶段R1R2会协商双方地址的合法性。此时因为R2没有配置IP地址因此发送NCP协商报文Configure-Request中携带的IP地址为0.0.0.0R1则认为这是一个非法的IP地址并回复Configure-Nak报文此报文中携带为R2分配的IP地址。R2获取新IP地址后在下次NCP协商阶段才能通过。PAP/CHAP认证--单向R1作为认证方R2作为被认证方R1 作为认证服务器当 R2 通过串口接入时强制 R2 发起 PAP 认证R1 会用 AAA 内创建的本地用户库校验账号密码。定义本端R2向对端设备发送的认证用户名是test当对端设备发起 PAP 认证请求时本端会使用test/123456这套凭据发送给认证方完成校验。pap认证时CHAP认证时PPPoE配置1.配置PPPoE 服务器端的地址池2.配置PPPoE客户端使用的用户名密码3.配置VT接口用于PPPoE认证并分配地址以太网接口不支持ppp因此需要配置虚拟接口VT端口4.在以太网接口绑定虚拟端口并启动PPPoE5.配置客户端的拨号功能命令功能详细解释interface Dialer 0进入编号为 0 的 Dialer 虚拟拨号接口视图PPPoE 客户端所有拨号逻辑均在此接口配置dialer user test-name开启 RS-DCC 拨号控制指定 PPPoE 拨号认证用户名test-name需与对端 BRAS 设备 AAA 内 PPP 用户匹配dialer bundle 1绑定 Bundle 组号 1后续物理以太网接口需配置相同 bundle 编号实现物理口与 Dialer 虚拟口流量关联承载 PPPoE 报文ppp chap user test配置 CHAP 认证对外发送的用户名test用于 PPP 协商时提交身份给运营商 BRAS 校验ppp chap password cipher 123456配置 CHAP 认证共享密码123456cipher代表密码加密存入配置文件不加 cipher 直接写密码会报命令不识别图中报错根源ip address ppp-negotiate开启 IP 地址自动协商拨号成功后从运营商 BRAS 自动获取公网 IP、子网掩码、网关Dialer拨号是华为 DCCDial-up Control Center拨号控制中心技术里的虚拟逻辑接口专门用来承载 PPPoE、ISDN、拨号链路等按需拨号业务。DCC全称Dial-up Control Center中文叫拨号控制中心是华为 VRP 系统里一套统一管理所有拨号业务的控制框架。 作用统一管理 PPPoE 等各类按需拨号链路提供拨号触发等功能。Bundle 捆绑组是用来建立「Dialer 虚拟拨号接口」和「物理以太网接口」关联的匹配编号相当于二者配对的唯一钥匙。RS-DCC共享 DCC全称 Resource-Shared DCC资源共享 DCC也是 PPPoE 实验最常用模式。核心特点1 个 Dialer 虚拟接口 对应 1 个拨号用户用dialer user 用户名指定逻辑分离Dialer 接口存放三层拨号 / PPP 认证配置物理以太网口只做二层转发通过dialer bundle X把 Dialer 虚拟口和物理口绑定相同 Bundle 号才能配对适合单线路家庭宽带、企业单条 PPPoE 上网。dialer user 用户名CS-DCC循环 DCC全称 Circular DCC循环 DCC多用于多链路冗余备份。核心特点一个 Dialer 接口可以绑定多个物理接口多条线路互为备份一条断了自动切换另一条拨号不需要配置dialer user靠dialer number拨号号区分链路场景企业双宽带、4G 无线备份专线基础 PPPoE 实验几乎不用。6.建立PPPoE会话成功获取到IP地址配置easy-ip让私网能访问到公网