前文我们了解了广域网中的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

  客户端配置

  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

  在客户端验证PPPoE会话信息

  在服务端验证PPPoE会话信息

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

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

HCNA Routing&Switching之PPPoE协议的更多相关文章

  1. HCNA Routing&Switching之广域网协议HDLC和PPP

    前文我们了解了地址转换技术NAT相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15168042.html:今天我们来聊一聊广域网中的两个二层封装协议H ...

  2. HCNA Routing&Switching之动态路由协议RIP

    前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...

  3. HCNA Routing&Switching之静态路由

    前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...

  4. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

  5. HCNA Routing&Switching之动态路由基本概念

    前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...

  6. HCNA Routing&Switching之动态路由协议OSPF基础(二)

    前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...

  7. HCNA Routing&Switching之动态路由协议OSPF基础(一)

    前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...

  8. HCNA Routing&Switching之动态路由协议OSPF DR和BDR

    前文我们了解了OSPF建立邻居关系的条件,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15032907.html:今天我们来聊一聊OSPF中的DR和BDR: ...

  9. HCNA Routing&Switching之交换技术基础

    什么是交换机?顾名思义,交换机就是用来数据包交换的:广泛用于终端接入:它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域:所谓冲突 ...

随机推荐

  1. Result Maps collection already contains value for cn.itcast.ssm.mapper.CompetesMapperCustom.baseMap

    在使用ssm时出现的错误: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang ...

  2. leetcode TOP100 字母异位词分组

    字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 思路: 一个map,将每个字符串字符进行记数,字符作为map的key,次数初始为零,以此来标识字 ...

  3. GO系列-ioutil包

    ioutil包提供给外部使用的一共有1个变量,7个方法. // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情 // 并且始终成功返回. var Disca ...

  4. IP数据包格式与ARP转发原理

    一.网络层简介1.网络层功能2.网络层协议字段二.ICMP与封装三.ARP协议与ARP欺骗1.ARP协议2.ARP欺骗 1.网络层功能 1. 定义了基于IP地址的逻辑地址2. 连接不同的媒介3. 选择 ...

  5. nmcli命令行修改网络连接名称

    目前在网上能找到的文章中,使用nmcli命令修改Linux系统中网卡连接的名称都是先创建新的连接,然后删除旧的连接的方式 此种方式其实完全不恰当,简直就是在浪费时间,nmcli命令本身就提供了直接修改 ...

  6. [考试总结]noip模拟12

    菜 今天总体来说 菜爆了,打了 \(3\) 个暴力,没有一个是正解,并且每一个分数都低得要命... 主要还是太菜了... 第一题开题发现和昨天 \(T3\) 一样,然而因为还没学可持久化数据结构就咕掉 ...

  7. Python如何将py文件打包成exe

    安装pyinstaller 打开cmd窗口,输入pip install pyinstaller,命令行输出successfully表示成功. 生成exe文件 一.单个py文件 在py文件目录下,打开c ...

  8. 第二十五篇 -- C++宝典中的图书管理系统

    此篇文章是基于C++宝典写的图书管理系统,本人对其中的部分做了相应修改,并且以现有格式替代原有格式,使程序更加清晰明了.此程序运行在VS2017上. 系统设计 图书管理系统分为四个模块:图书管理模块. ...

  9. HTTP协议GET方法传参最大长度理解误区

    结论 HTTP 协议未规定GET和POST的长度 GET的最大长度是因为浏览器和WEB服务器显示了URI的长度 不同浏览器和WEB服务器,限制的最大长度不同 若要支持IE,则最大长度为2083 byt ...

  10. 构建后端第6篇之---java 多态的本质 父类引用 指向子类实现

    张艳涛写于2021-2-20 今天来个破例了,不用英文写了,今天在家里电脑写的工具不行,简单的说 主题是:java多态的原理与实现 结论是:java的多态 Father father= new Son ...