PPPoE基础笔记
一、拨号原理
1.Discovery(发现阶段)
- PADI
Client 发送广播的PADI报文,报文中包含Client想要的服务信息。
- PADO
Server收到PADI后,会向Client回复一个单播的PADO报文。
- PADR
Client 收到最先收到的PADO后,会向Server发送一个单播的PADR报文。
- PADS
Server 会产生唯一的会话ID,然后发送一个PADS报文给Client,建立成功后进入Session阶段。
2.Session(会话阶段)
- PPP协商
- LCP
完成建立、配置和检测数据链路连接 - 认证
PAP(明文)和CHAP(密文) - NCP
配置不同的网络层协议,负责协商用户的IP、DNS等
- LCP
- 数据传输
承载PPP数据报文传输
3.Terminate(终止阶段)
- 单播发送PADT报文结束会话
二、PPPoE报文格式

1.Ethernet部分
- Ethernet_type: 0x8863→发现和结束阶段
0x8864→会话阶段
2.PPPoE部分
- Code:0x00→会话数据
0x09→PADI报文
0x07→PADO报文
0x19→PADR报文
0x65→PADS报文
0xa7→PADT报文
三、PPPoE配置命令

1.Server配置思路
- 1、配置虚拟模板(Virtual-Template)接口。由于以太网的封装协议已经默认,通过VT接口来模拟PPP接口,将物理接口和VT接口绑定,实现PPP和以太网协议的嵌套。
- 2、配置PPP分配的IP地址、DNS地址等。
- 3、将VT接口和PPPoE Server的物理接口绑定。实现PPPoE的封装。
- 4、配置Server到Client的默认路由。
2.Server详细配置
- 1、配置VT接口。
#interface virtual-template 模板号(1)
#ppp authentication-mode 认证方式(pap和chap)// 定义PPP的认证方式
#remote address pool 地址池(janippool)//PPPoE Client 指定的IP地址池
#ip address IP地址(1.1.1.254) 地址掩码(24)// 设置VT接口的IP地址
- 2、地址池和用户认证设置。
地址池
#ip pool 地址池名(janippool)// 创建地址池
#gateway-list 网关地址(1.1.1.254)// 指定 Client的网关
#netwrok 网段(1.1.1.0)mask 掩码(24)// 指定Client分配的网址
#dns-list DNS地址(114.114.114.114)// 指定Client的DNS地址 用户认证
#aaa #local-user 用户名(jan)password cipher 密码(huawei@123)// 创建用于PPP认证的用户 #local-user 用户名(jan) service-type ppp // 指定用户用于PPP认证
- 3、VT接口与Server物理接口绑定。
#inteface 接口号(G0/0/0)
#pppoe-server bind virtual-template 1
- 4、默认路由配置
#ip route-static 0.0.0.0 0.0.0.0 vritual-template 1
- 5、配置一个模拟的外网
#interface loopback 0 #ip address 2.2.2.2 24
3.Client配置思路
- 1、拨号控制中心(Dial Control Center)虚拟机接口配置。用于控制拨号接口,封装协议、PPP认证、IP获取、NAT等。
- 2、将DDC接口和PPPoE Client的物理接口绑定。实现PPPoE封装。
- 3、运行IPv4的数据报文通过拨号访问控制列表。
- 4、配置Server到Client的默认路由。
4.Client详细配置
- 1、配置主机边接口地址。
- 2、DDC虚拟拨号接口配置。
#interface dialer 拨号接口号(1) //进入拨号接口
#link-protocol ppp //链路封装PPP协议
#PPP 认证方式(PAP和CHAP) user 用户名(jan)//配置PPP认证的用户名和方式
#ppp 认证方式(PAP和CHAP) password simple 密码(huawei@123) //配置PPP认证的用户密码和方式
#ip address ppp-negotiate //设置PPPoE Client自动获取IP地址
#dialer user 用户名(jan) // 指定拨号使用名
#dialer bundle 拨号接口号(1) //指定虚拟的拨号接口号
#dialer-group 拨号组号(1) //设置一个拨号组
- 3、DDC虚拟拨号接口和PPPoE Client物理接口绑定。
#进入接口 #pppoe-client dial-bundle-number 拨号接口号(1)
- 4、设置拨号访问控制列表
#dialer-rule 列表号(1)
#dialer-rule 列表号(1) ip permit
- 5、配置Client到Server的默认路由。
#ip route-static 0.0.0.0 0.0.0.0 dialer 1
相关文章:
PPPoE基础笔记
一、拨号原理 1.Discovery(发现阶段) PADI Client 发送广播的PADI报文,报文中包含Client想要的服务信息。 PADO Server收到PADI后,会向Client回复一个单播的PADO报文。 PADR Client 收到最先收到的PADO…...
开发组日志记录SPEC_v0.1.0
文章目录 开发组日志记录SPEC_v0.1.0目的设计逻辑1. User日志记录器1.1 记录器标签内容介绍1.2 程序打印User日志规则 2. Dev日志记录器2.1 记录器标签内容介绍2.2 程序打印Dev日志规则 3.代码说明3.1 代码详情3.2 使用说明 更新记录 时间版本内容修订者备注2024/08/150.1.0创…...
MySQL8 innoDB引擎的精髓
[client] port 3306 socket /var/lib/mysql/mysql.sock [mysql] #prompt"\umysqldb \R:\m:\s [\d]> " #关闭自动补全sql命令功能 no-auto-rehash ########################################################################### ##服务端参数配置 ######…...
【C语言实现花屏效果并打包程序为exe可执行文件】
说明:该程序为临摹改良(😀)作品,源地址C/C屏幕恶搞程序 效果展示 上代码 #include <windows.h>#define NUM 11451LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int main() // Renamed WinMain to main {static int iKeep[NU…...
数据结构——排序(2):选择排序+交换排序
目录 一、选择排序 (1)直接选择排序 ①思路 ②过程图示 ③代码实现 ④代码解释 ⑤优化 1.代码实现 2.过程图示 3.代码解释 4.注意 ⑥直接选择排序的复杂度 (2)堆排序 ①注意 ②代码实现 二、交换排序 (…...
jenkins升级踩坑记录
1. 直接用java 1.8版本启动最新版jenkins.war,直接失败 2. 下载java 11启动,依然失败,换成java17版本可以启动,但会报错 解决报错1: java.io.IOException: Failed to load: Parameterized Remote Trigger Plugin (Pa…...
mysql笔记第二篇
平时业务开发,大部分业务逻辑是使用sql还是代码编写呢? 这个每个公司可能要求不同,其实是每个公司负责人根据公司业务制定的规定。或者根本没有规定,每个负责单个项目的人领到需求直接开整,sql一把梭导致后面其他人维护…...
Facebook的区块链技术:提升数据安全与隐私保护
去中心化的优势 随着数字化时代的快速发展,数据安全和隐私保护已成为全球范围内备受关注的话题。Facebook作为全球最大的社交平台之一,正在积极探索如何通过区块链技术来提升数据的安全性和用户的隐私保护。区块链技术以其去中心化、不可篡改和透明的特…...
⌈ 传知代码 ⌋ Visual SLAM函数
💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...
Vue组件之间的通信
一、通信方式 Props 和 Events:通过父组件传递 props 给子组件,子组件使用 $emit 发送事件到父组件。Event Bus:使用一个中央事件总线来跨组件通信。Vuex:使用 Vuex 进行全局状态管理,以便在任何组件间共享状态。Prov…...
【AI 绘画】模型转换与快速生图(基于diffusers)
AI 绘画- 模型转换与快速生图(基于diffusers) 1. 本章介绍 本次主要展示一下不同框架内文生图模型转换,以及快速生成图片的方法。 SDXL文生图 2. sdxl_lightning基本原理 模型基本原理介绍如下 利用蒸馏方法获取小参数模型。首先&#x…...
甄选范文“论软件设计方法及其应”软考高级论文系统架构设计师论文
论文真题 软件设计(Software Design,SD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决…...
leetcode线段树(2940. 找到 Alice 和 Bob 可以相遇的建筑)
前言 经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。 描述 给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i ,且存在 i < j 的建筑…...
用于不平衡医疗数据分类的主动SMOTE
一、主动学习如何应用于不平衡数据的处理 首先,主动SMOTE不是像经典的SMOTE那样从训练集中随机选择一个样本作为生成合成样本的轴心点,而是通过不确定性和多样性采样来智能地进行样本选择,这是主动学习的两种技术。 在数据不平衡的情况下&…...
linux文件更新日期与系统日期比较
项目说明: 要获取linux系统中某目录下最新文件的修改时间并与当前系统时间进行比较,可以使用以下步骤: 使用 ls 命令获取最新文件的修改时间。 使用 date 命令获取当前时间。 计算时间差并打印结果。 实例脚本如下: #!/bin/…...
leetCode - - - 哈希表
目录 1.模拟行走机器人(LeetCode 874) 2.数组的度(LeetCode 697) 3.子域名访问次数(LeetCode 811) 4.字母异位词分组(LeetCode 49) 5.小结 1.常见的哈希表实现 2.遍历Map 1.模…...
NGINX自动清理180天之前的日志
需求描述 日志每天会以天为单位产生一个日志,不清理的话会越来越多。这里写一个Lua自定定时清理日志目录下的日志文件。 依赖安装 安装 lfs 模块 yum install luarocks yum install lua-develluarocks install luafilesystem 创建模拟旧文件 创建了一个1月的旧…...
jackson 轻松搞定接口数据脱敏
一、简介 实际的业务开发过程中,我们经常需要对用户的隐私数据进行脱敏处理,所谓脱敏处理其实就是将数据进行混淆隐藏,例如下图,将用户的手机号、地址等数据信息,采用*进行隐藏,以免泄露个人隐私信息。 如…...
Nginx 正则表达式与rewrite
目录 一、正则表达式 二、rewrite 2.1 rewrite简述 2.2 rewrite 跳转 2.3 rewrite 执行顺序 2.4 rewrite 语法格式 三、location 3.1 location 类别 3.2 location常用匹配规则 3.3 location优先级 3.4 示例说明 3.5 匹配规则总结 3.6 三个匹配规则定义 四、实战…...
tekton什么情况下在Dockerfile中需要用copy
kaniko配置如下 如果docker中的workDir跟tekton中的workDir不一致需要copy。也可以通过mv,cp达到类似效果...
【Matlab】MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真)
MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真) 本教程适配MATLAB R2020a及以上版本,聚焦Simulink与MATLAB交互核心技能,以MATLAB函数模块为核心案例,详解混合编程仿真的全流程,无需深厚编程基础,纯实操导向、案例可直接复刻,适配高校课程设计、…...
基于Petals分布式网络的大语言模型聊天应用后端部署与API调用实战
1. 项目概述:一个基于分布式协作的大语言模型聊天应用后端最近在折腾大语言模型应用的时候,发现了一个挺有意思的项目:chat.petals.dev。这不仅仅是一个开源的聊天机器人Web应用,更关键的是,它背后连接着一个名为Petal…...
多源视频流时空配准,搭建跨摄像机一体化轨迹推演计算平台
多源视频流时空配准,搭建跨摄像机一体化轨迹推演计算平台在数字孪生与视频孪生全域空间智能感知的建设进程中,各类管控场景普遍部署多品牌、多焦距、多布设姿态的异构摄像设备,衍生出大量编码格式各异、传输时延参差、时钟相位错位的多源异步…...
浏览器光标锁定技术:Pointer Lock API与全屏API实战指南
1. 项目概述:一个解决浏览器光标“越狱”问题的实用工具如果你是一名前端开发者,或者经常需要制作在线演示、录屏教程,甚至是在开发一个网页端的游戏,那你一定遇到过这个让人头疼的问题:鼠标光标在网页里“不老实”。当…...
SwiftUI原生集成ChatGPT API:从架构设计到流式响应实战
1. 项目概述:一个原生的Swift版ChatGPT客户端最近在折腾iOS和macOS上的AI应用开发,发现了一个挺有意思的开源项目:alfianlosari/ChatGPTSwift。简单来说,这是一个用纯SwiftUI构建的、直接调用OpenAI官方API的ChatGPT客户端。它不是…...
深入解析Baichuan-7B:从GPT架构到LoRA微调的实践指南
1. 项目概述:从开源大模型到“百川”入海 最近在和朋友聊起国内大模型的开源生态时,总绕不开一个名字——“百川”。我说的不是地理上的河流,而是由百川智能公司开源的Baichuan系列大语言模型。今天想重点聊聊的,是它的起点&#…...
React网格布局终极指南:3步掌握拖拽式界面开发
React网格布局终极指南:3步掌握拖拽式界面开发 【免费下载链接】react-grid-layout A draggable and resizable grid layout with responsive breakpoints, for React. 项目地址: https://gitcode.com/gh_mirrors/re/react-grid-layout React网格布局&#x…...
【Prometheus】如何诊断 Prometheus 查询缓慢或超时的问题?
Prometheus 查询性能深度调优:从高基数陷阱到 TSDB 存储引擎的全链路诊断 用户问题原文:“如何诊断 Prometheus 查询缓慢或超时的问题?” 在支撑单集群500万+时间序列的生产环境中,Prometheus 查询性能是 SRE 团队的生命线。一次缓慢的查询不仅会拖垮 Grafana 面板,更可能…...
Swagger Skills:让OpenAPI文档活起来,实现自动化契约测试与场景编排
1. 项目概述:一个为Swagger API文档注入“技能”的利器如果你是一名后端开发者,或者经常需要与API打交道,那么Swagger(现在更常被称为OpenAPI)对你来说一定不陌生。它通过一个标准的YAML或JSON文件,清晰地描…...
突破性AI编程工具破解方案:cursor-free-vip技术深度解析与全栈实施指南
突破性AI编程工具破解方案:cursor-free-vip技术深度解析与全栈实施指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve …...
