计算机网络-PPP与PPPoE协议

news2024/12/29 10:41:15

我们之前学习的大多是局域网LAN内常用的技术,但是我们总是需要访问Internet,需要访问百度、B站等等,那怎样让局域网访问外面的资源呢,其实我们已经学习过了NAT转换,但是那对于广域网的架构我们还是需要学习下的。

一、广域网概述

广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络。 广域网

区别
区别

早期广域网与局域网的区别在于数据链路层和物理层的差异性,在TCP/IP参考模型中,其他各层无差异。 早期广域网

广域网络设备基本角色有三种,CE(Customer Edge,用户边缘设备) 、PE (Provider Edge,服务提供商边缘设备) 和P(Provider ,服务提供商设备) 。

  • CE:用户端连接服务提供商的边缘设备。CE连接一个或多个PE,实现用户接入。
  • PE:服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。
  • P:服务提供商不连接任何CE的设备。
广域网角色
广域网角色

简单说CE就是企业出口设备,PE就相当于光猫,P就是运营商内部设备。

早期广域网应用 在CE和PE间一般使用PPP协议进行安全验证,以及现在的PPPoE协议。一般我们不需要关心运营商内部的网络。

二、PPP协议

2.1 概述

  • PPP(Point-to-Point Protocol,点到点协议)是一种常见的广域网 数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装。
  • PPP提供了安全认证协议族PAP(Password Authentication Protocol,密码验证协议)和CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议)。
  • PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  • PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。
  • PPP协议提供各种NCP(Network Control Protocol,网络控制协议),如IPCP(IP Control Protocol ,IP控制协议),用于各网络层参数的协商,更好地支持了网络层协议。

概况:PPP是数据链路层协议,提供了PAP和CHAP认证方式,可以扩展为PPPoE,使用LCP和NCP进行网络层参数协商。

2.2 协商过程

PPP链路的建立有三个阶段的协商过程,链路层协商、认证协商(可选)和网络层协商。

  • 链路层协商:通过LCP报文进行链路参数协商,建立链路层连接。
  • 认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证。使用PAP和CHAP认证
  • 网络层协商 :通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。 协商
链路协商
链路协商

链路层协商: PPP报文可由Protocol字段标识不同类型的PPP报文。例如,当Protocol字段为0xC021时,代表是LCP报文。此时又由Code字段标识不同类型LCP报文,如下表所示。 LCP报文格式 LCP协商由不同的LCP报文交互完成。协商由任意一方发送Configure-Request报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack响应协商成功。 正常协商 在LCP报文交互中出现LCP参数不匹配时,接收方回复Configure-Nak响应告知对端修改参数然后重新协商。 协商失败

认证协商: 链路协商成功后,进行认证协商(此过程可选)。认证协商有两种模式,PAP和CHAP。

  • PAP认证双方有两次握手。协商报文以明文的形式在链路上传输。
  • CHAP认证双方有三次握手。协商报文被加密后再在链路上传输。

PAP: PAP

CHAP: CHAP

网络层协商: PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型。以常见的IPCP协议为例,它分为静态IP地址协商和动态IP地址协商。

静态IP地址协商需要手动在链路两端配置IP地址。 静态IP地址协商

动态IP地址协商支持PPP链路一端为对端配置IP地址。 动态IP地址协商

协商过程概述:第一阶段协商比如请求类型、链路状态,第二阶段进行认证,第三阶段确定两端地址,保证从物理层到网络层两端参数都匹配才能开始传输数据。

配置示例:

# 配置接口封装PPP协议,需要使用S串口
[Huawei-Serial0/0/0] link-protocol ppp

# 服务器端,也就是验证端配置账号密码
# 配置验证方以PAP方式认证对端
[Huawei]aaa
[Huawei-aaa] local-user user-name  password { cipher | irreversible-cipher } password
[Huawei-aaa] local-user user-name service-type ppp

# 被验证方输入提前设置的账号密码
# 配置被验证方以PAP方式被对端认证,进入相连接口配置
[Huawei-Serial0/0/0] ppp pap local-user user-name password { cipher | simple } password

# 如果配置CHAP认证方式,两端配置稍有不同
# 配置验证方以CHAP方式认证对端
[Huawei-aaa] local-user user-name  password { cipher | irreversible-cipher } password
[Huawei-aaa] local-user user-name service-type ppp

# 修改验证方式,华为默认PAP
[Huawei-Serial0/0/0] ppp authentication-mode chap

# 配置被验证方以CHAP方式被对端认证
[Huawei-Serial0/0/0] ppp chap user user-name
[Huawei-Serial0/0/0] ppp chap password { cipher | simple } password

简单说就是一端配置账号密码,一端进行认证,方式有PAP和CHAP,要在对应的S口进行配置,验证通过才能开始传输数据。

三、PPPoE协议

3.1 PPPoE概述

PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。

PPPoE集中了PPP和Ethernet两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。 PPPoE报文

PPPoE其实就是我们现在用的拨号上网的方式,可以在以太网的基础上进行PPP认证,实现上网,运营商进行计费。

3.2 会话建立

PPPoE的会话建立有三个阶段,PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段。 会话建立

PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。 发现阶段

PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。 PPP协商

当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。 会话终结

3.3 配置示例

# 通过拨号规则来配置发起PPPoE会话的条件
[Huawei] dialer-rule

# 配置拨号接口用户名,此用户名必须与对端服务器用户名相同
[Huawei-Dialer1]dialer user username

# 将接口置于一个拨号访问组
[Huawei-Dialer1]dialer-group group-number  

# 指定当前拨号接口使用的拨号绑定
[Huawei-Dialer1]dialer-bundle number   

# 将物理端口与dialer-bundle进行绑定
[Huawei-Ethernet0/0/0]pppoe-client dial-bundle-number number

完整示例:

# 服务器端
interface Virtual-Template1
 ppp authentication-mode chap 
 remote address pool ppp
 ppp ipcp remote-address forced
 ip address 10.0.0.1 255.255.255.0 
aaa
 local-user admin password cipher %$%$A~V^OzCA%%loI4/-k+_@wG+I%$%$
 local-user admin service-type ppp
# 强制对端ip池
ip pool ppp
 gateway-list 10.0.0.1 
 network 10.0.0.0 mask 255.255.255.252 
 lease day 0 hour 2 minute 0 
 
# 绑定接口
interface GigabitEthernet0/0/0
 pppoe-server bind Virtual-Template 1
 
# 客户端
interface Dialer1
link-protocol ppp
ppp chap user admin
ppp chap password cipher %$%$hC,-2I/<$MpVSkReGa@$,.LI%$%$
ip address ppp-negotiate
dialer user admin
dialer bundle 1
dialer-group 1

# 放通规则
dialer-rule
 dialer-rule 1 ip permit
 
# 绑定端口
interface GigabitEthernet0/0/0
 pppoe-client dial-bundle-number 1 

大概就是先创建一个虚拟的拨号模板,定义了账号密码以及获取地址的方式,然后绑定到物理接口上。服务器端事先配置账号密码以及分配的地址池。

总结:广域网区别局域网,由几部分组成:CE,局域网出口,PE,运营商连接CE端,P,运营商内部,我们只关注CE-PE端即可。一般使用PPP协议和PPPoE协议进行验证。实际中就是运营商分配一个账号密码,然后分配一个光猫,输入账号密码进行上网。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1412971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法训练营Day60(单调栈)

84.柱状图的最大矩形 84. 柱状图中最大的矩形 - 力扣&#xff08;LeetCode&#xff09; 注意首尾加0的细节就可 class Solution {public int largestRectangleArea(int[] heights) {Deque<Integer> stack new LinkedList<>();int[] newHeight new int[heights.…

Pandas应用-股票分析实战

股票时间序列 时间序列&#xff1a; 金融领域最重要的数据类型之一 股价、汇率为常见的时间序列数据 趋势分析&#xff1a; 主要分析时间序列在某一方向上持续运动 在量化交易领域&#xff0c;我们通过统计手段对投资品的收益率进行时间序列建模&#xff0c;以此来预测未来的收…

【大根堆】【C++算法】871 最低加油次数

作者推荐 【动态规划】【map】【C算法】1289. 下降路径最小和 II 本文涉及知识点 大根堆 优先队列 LeetCode:871最低加油次数 汽车从起点出发驶向目的地&#xff0c;该目的地位于出发位置东面 target 英里处。 沿途有加油站&#xff0c;用数组 stations 表示。其中 statio…

Python教程48:海龟画图turtle画太极八卦阵

---------------turtle源码集合--------------- Python教程91&#xff1a;关于海龟画图&#xff0c;Turtle模块需要学习的知识点 Python源码45&#xff1a;海龟画图turtle画雪容融 Python源码44&#xff1a;海龟画图turtle&#xff0c;画2022卡塔尔世界杯吉祥物 Python教程…

【c++】什么是面向对象

面向过程和面向对象初步认识 面向过程&#xff08;C语言&#xff09; C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题 面向对象&#xff08;C&#xff09; C是基于面向对象的&#xff0c;关注的是对象&am…

短视频账号矩阵系统+无人直播系统源码技术开发

短视频账号矩阵系统无人直播系统源码技术开发涉及到多个领域&#xff0c;包括但不限于前端开发、后端开发、数据库设计、网络通信等。 以下是一些基本技术的步骤和注意事项&#xff1a; 1.技术需求分析设计&#xff1a;首先&#xff0c;需要明确开发短视频账号矩阵系统和无人直…

《ORANGE’S:一个操作系统的实现》读书笔记(三十八)尾声(三)

这篇文章是尾声的第三部分&#xff0c;也是《ORANGE’S&#xff1a;一个操作系统的实现》读书笔记的最后一篇文章&#xff0c;本篇文章记录如何将我们开发的OS安装到真实的计算机&#xff08;建议在虚拟机中进行&#xff09;。 将OS安装到真实的计算机 其实安装到真实的硬盘和…

Linux--文件链接

目录 1.建立软连接 2.建立硬链接 3.什么是软链接 Linux中软链接的应用场景 4.什么是硬链接 5.文件与目录的硬链接数 6.软链接与硬链接的区别 用户无法对目录建立硬链接&#xff0c;可以建立软连接。 在Linux中文件的链接有两种&#xff1a;1.软连接 2.硬链接 1.建立软…

3656A/B/D矢量网络分析仪

3656A/B/D矢量网络分析仪 3656A/B/D矢量网络分析仪适用于无线通信、有线电视、教育及汽车电子等领域&#xff0c;可用于对滤波器、放大器、天线、电缆、有线电视分接头等射频元件的性能测量。该产品采用WINDOWS操作系统;具有误差校准功能、时域功能、夹具仿真器功能;具有对数幅…

【Linux】Linux进度条小程序(包含色块实现)

我们再将Linux常用工具与命令都学会了之后&#xff0c; 设计进度条这个小程序可以比较好的帮助我们进行一定程度练习与巩固 目录 预备知识&#xff1a;回车换行&#xff1a;缓冲区&#xff1a; 进度条&#xff1a;准备工作&#xff1a;主题思路&#xff1a;代码实现&#xff1a…

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接&#xff1a;理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…

Open CASCADE学习|圆柱螺旋线绘制原理探究

1、圆柱螺旋线绘制原理 在OCC中&#xff0c;圆柱面的参数方程为&#xff1a; 设P为&#xff08;x0,y0,z0&#xff09;,则 xx0r*cos(u) yy0r*sin(u) zz0v 但u、v之间有关系时&#xff0c;此方程表达为圆柱螺旋线&#xff0c;u、v之间为线性关系时是等螺距螺旋线&#xff0…

unity 装饰器模式(实例详解)

文章目录 简介1. **组件装饰器&#xff08;Component Decorators&#xff09;**:2. **游戏对象特效装饰器&#xff08;GameObject Effects Decorator&#xff09;**:3. **输入处理装饰器&#xff08;Input Handling Decorators&#xff09;**:4. **性能优化装饰器&#xff08;P…

蓝牙----蓝牙协议栈Host层

蓝牙协议栈----Host层 蓝牙物理层基本信息链路层的状态机进入连接态的步骤主动扫描与被动扫描链路层通信模式 蓝牙地址蓝牙设备地址蓝牙标识地址蓝牙接入地址 蓝牙广播信道管理蓝牙数据信道跳频 蓝牙协议栈Host层包括PHY、LL、HCL层&#xff0c;注重关注PHY物理层和LL链路层。 …

微服务入门篇:Eureka注册中心(作用,搭建Eureka客户端和服务端)

目录 1.提供者与消费者2.Eureka的作用3.搭建EurekaServer1.配置服务端2.配置客户端3.复制实例操作4.服务拉取 1.提供者与消费者 ①服务提供者:一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务) ②服务消费者:一次业务中&#xff0c;调用其它微…

嵌入式学习-C++-Day3

嵌入式学习-CDay3 一、思维导图 二、作业 1.设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #inclu…

UBUNTU中NGINX的负载均衡和环境搭建

1.准备三台ubuntu版本的虚拟机 2.开始安装&#xff0c;下载&#xff0c;解压&#xff0c;以及编译nginx所需的环境依赖 这里需要注意我们创建了一个新的目录 /home/nginx,所以在编译中记得更改 然后再编译过程中我们会发现提示无法编译&#xff0c;原因是缺少c语言的插件&…

Java 字符串 06 练习-字符串拼接、反转、金额转换(黑马)

代码&#xff1a; //import java.util.Scanner; public class practice{public static void main(String[] args) {int arr [] {1,2,3,4};String str arrToString(arr);System.out.println(str);}public static String arrToString(int [] arr){if(arrnull){return "&q…

让B端管理软件既美观又实用的解决方案来了

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 让B端管理软件既美观又实用的解决方案来了 在当今数字化时代&#xff0c;B端管理软件已…

每日一题——LeetCode2859.计算K置位下标对应元素的和

方法一 枚举法&#xff1a; 通过不断地将目标数值与 1 进行按位与操作&#xff0c;并根据结果判断最低位是否为 1&#xff0c;从而统计其中包含的 1 的个数。 如果1的个数等于K就加上该值。 var sumIndicesWithKSetBits function(nums, k) {function countOnes(num) {let cou…