zoukankan      html  css  js  c++  java
  • HCNA Routing&Switching之PPPoE协议

      前文我们了解了广域网中的HDLC和PPP协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15174240.html;今天我们来聊一聊PPPoE协议相关话题;

      数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,我们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术;目前比较流行的宽带接入方式是ADSL,ADSL是非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议;PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器。PPPoE具有使用范围广、安全性高、计费方便等特点;

      DSL技术应用场景

      提示:BRAS是运营商的宽带接入设备;DSLAM是Digital Subscriber Line Access Multiplexer的简称,中文称呼数字用户线路接入复用器。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备(the last mile),其功能是接纳所有的DSL线路,汇聚流量,相当于一个二层交换机。

      PPPoE在DSL中的应用

      提示:在企业内部,我们通过PPPoE客户端通过网线和Modem连接;Modem的作用就是将数字信号转换为模拟信号,它有两个种接口,一种是连接PPPoE客户端的网口,一种是连接DSLAM的电话口;运营商希望通过一台接入设备来连接远程的多个主机,同时接入设备能够提供访问控制和计费功能;在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输的PPP报文技术,即PPPoE;PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连接因特网,并运用PPP协议对接入的每个主机进行控制,具有使用范围广,安全性高,计费放备案的特点;PPPoE解决了用户上网收费等实际应用问题,得到了宽带接入运营商店认可并被广泛应用;

      PPPoE报文格式

      提示:PPPoE报文是使用Ethernet格式进行封装,所以PPPoE是以太网的上层协议;在封装过程中首先要先封装以太网首部,随后才是PPPoE首部;以太网首部中的Type是用来表示上层协议的类型;当Type的值为0x8863时,就表示承载的是PPPoE发现阶段的报文;当type的值为0x8864时就表示承载的是PPPoE会话阶段的报文;

      PPPoE会话建立过程

      提示:PPPoE建立会话的过程主要要经过上述二个阶段,发现阶段和会话阶段;其中发现阶段主要是发现PPPoE服务器,获取对方以太网地址;会话阶段主要是PPP协议的各种协商;经过上述两个阶段以后,一个PPPoE会话就建立好了,后续用户就可以通过PPPoE会话进行上网,数据传输;会话终结阶段是用户侧发送PPPoE终止报文,随后PPPoE会话终止;

      PPPoE数据包类型

      提示:PPPoE会话建立和终止过程中主要有以上5中类型的报文;PADI是PPPoE发现初始报文,主要用户寻找PPPoE服务端;当PPPoE服务端收到PPPoE客户端发送的PADI报文后,对应服务端会向客户端发送PADO,该类型报文主要是告诉PPPoE客户端对应服务端能够满足客户端的请求;当客户端收到服务端发送的PADO时(可能会有多个服务端发送PADO),它会选择最早收到的PADO对应的服务端发送PADR;PADR是客户端向服务端请求建立会话,同时也拒绝其他服务端发送的PADO报文;服务端收到客户端发送的PADR后,会回复一个PADS报文,该类型报文主要作用是告诉客户端会话id等信息;当客户端或服务端需要断开连接时,客户端或服务端会向对端发送PADT,表示终止连接,该类型报文的主要作用是通知对端PPPoE会话结束;对端收到该类型报文,会话会立即断开;

      PPPoE工作流程

      提示:客户端通过广播发送PADI报文来发送接入服务器;类似DHCP中的DHCP discover包;

      提示:当服务器收到客户端发送的PADI报文后,将客户端请求的服务于自己能够提供的服务进行比较,如果可以提供,则单播恢复PADO报文;类似DHCP中的DHCP offer包;

      提示:PPPoE客户端会根据自己收到的PADO选择最优的PADO报文对应的服务器,并单播发送一个PADR报文;PADR报文有两层作用,一层是向对应服务端请求建立会话等信息,二是拒绝其他服务端的PADO;类似DHCP中的DHCP Request包;

      提示:PPPoE服务端收到客户端的PADR报文后,服务端会生成一个唯一的PPPoE session ID,并通过发送PADS报文给客户端,表示会话建立成功;类似DHCP中的DHCP ack包;

      提示:当PPPoE会话建立成功以后,后续就是PPP参数协商;ppp参数协商和串口链路上的PPP参数协商过程一样;主要分LCP和NCP协商;如果有认证,还需要进行认证;当PPP参数协商成功以后,对应客户端会通过服务端获取到一个规划的ip地址等参数,后续客户端就可以通过这个ip地址等进行上网,数据传输;

      PPPoE会话建立全过程

      提示:只有PPP中NCP协商完成以后,对应客户端才会获取到ip地址,后续的通信客户端会通过这个ip地址来进行数据传输;

      PPPoE会话终止过程

      提示:当PPPoE客户端或者服务端需要关闭连接时,可以向服务端或者客服端发送PADT报文;表示关闭连接;在PADT报文中,目的mac地址为单播地址,session id为希望关闭的session id;一旦收到一个PADT报文后,对应会话会随即关闭;

      PPPoE配置

      实验:如下拓扑,配置PPPoE客户端和服务端

      服务端配置

      1、在服务端上建立用于认证的用户名和密码

      2、创建用于分配ip地址等信息的地址池

      提示:地址池中可以添加网关、dns、排除地址等等信息;

      3、创建虚拟模板接口

      提示:虚拟模板接口里主要配置ppp认证模式,以及关联地址池,和本端的ip地址;

      4、将物理接口和虚拟模板接口关联

      服务端全部配置

    sys
    sys server
    aaa
    local-user qiuhom password cipher admin123.com
    local-user qiuhom server ppp
    q
    ip pool PPPoE
    net 100.1.1.0 mask 255.255.255.252
    q
    int virtual-template 1
    ppp authentication-mode chap
    remote address pool PPPoE
    ip add 100.1.1.1 30
    q
    int g0/0/0
    pppoe-server bind virtual-template 1
    View Code

      客户端配置

      1、创建拨号规则

      提示:上述命令表示允许所有ip协议的报文进行拨号;

      2、创建拨号接口,并在接口下配置ppp认证,并绑定拨号规则

      提示:dialer user xxx 中的用户名称它只用于标识和绑定dialer的作用,不用于ppp认证,所以这里的用户名可以是任意的;

      3、将物理接口和拨号接口做绑定

      验证:看看对应拨号接口是否获取到ip地址?

      提示:可以看到对应拨号接口已经正常获取到ip地址;说明我们的配置没有问题;

      4、配置默认路由,将出接口指向对应的拨号接口

      提示:配置好默认路由以后,对应客户端就可以通过pppoe的会话链路进行上网;

      客户端全部配置

    sys 
    sys client
    dialer-rule
    dialer-rule 1 ip permit
    q
    int dialer 1
    dialer user xxx
    dialer bundle 1
    ppp chap user qiuhom
    ppp chap password ci admin123.com
    ip add ppp-negotiate
    int g0/0/0
    pppoe-client dial-bundle-number 1
    q
    ip route-s 0.0.0.0 0 dialer 1
    View Code

      在客户端验证PPPoE会话信息

      在服务端验证PPPoE会话信息

      在客户端验证对应拨号接口

      提示:可以看到对应拨号接口使用的是PPP协议,对应LCP和IPCP都是opened,并且对应接口也通过ppp协商获取到100.1.1.2地址;

    作者:Linux-1874
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    我爱Java系列之---【SpringBoot打成war包部署】
    279. Perfect Squares
    矩阵dfs--走回路
    112. Path Sum
    542. 01 Matrix
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    Invert Binary Tree
    563 Binary Tree Tilt
    145 Binary Tree Postorder Traversal
  • 原文地址:https://www.cnblogs.com/qiuhom-1874/p/15182512.html
Copyright © 2011-2022 走看看