第28章-PPPoE

news2024/11/25 10:39:23

1. 以太网接入的典型应用

 1.1. IP技术的应用与发展

 1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用

2. PPPoE技术的基本原理

 2.1. 技术背景

 2.2. PPPoE工作原理

 2.3. PPPoE的两个阶段:Discovery阶段和PPPSession阶段

 2.4. PPPoE的帧结构

 2.5. PPPoE的协商过程


1. 以太网接入的典型应用

1.1. IP技术的应用与发展

        语音+数据+移动 → 统一通讯

        例子:

        以太网接入技术:适用于园区内用户密集接入,传输介质以光纤和双绞线为主;

        HG:家庭网关(HG,Home Gateway),位于用户侧的设备;

        AN:接入点(AN,Access Node),位于运营商接入网边缘的设备;

        AGG:汇聚设备(AGG,Aggregation),位于AN和运营商城域网乃至骨干网之间设备;

1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用

        设计方案:大型住宅园区

        园区内设置一台园区交换机作为AN(接入点);

        园区交换机下行以百兆或千兆光纤连接所有楼道交换机,楼道交换机再连接到各用户的HG;

        园区交换机上行则采用千兆光纤连接到AGG,实现园区网络的高速接入;

        例如:

        AN设备可进行选择为三层交换机二层交换机

        采用三层转发延伸到AN的接入方式时:

        ① AN(Access Node)上行通过路由协议实现路由转发,AN(Access Node)下行通过VLAN实现不同用户二层隔离,这样广播域被限制在AN(Access Node)下行的同一业务VLAN内,提高了接入网的带宽利用率。

        ② AN(Access Node)对用户进行高密度接入并终结二层转发,从而同一AGG可以接入更多用户终端。

        ③ AN(Access Node)和AGG(Aggregation)上无须支持和部署复杂的二层隔离和安全特性网络改造规模小,有利于采用已有设备采用较低成本的设备进行快速部署。

        采用二层交换在 AGG (Aggregation)终结:

        ① 广播域的范围扩大到一台AGG设备下的同一业务VLAN。

        ② 在二层交换终结在AGG设备的方案中,一台AGG设备最多可接入用户终端数将受限于其自身MAC地址表项数。

2. PPPoE技术的基本原理

2.1. 技术背景

        针对用户进行认证、授权和计费也是运营商需要考虑的问题之一。

        解决方案1:在以太网交换机上支持的一些认证手段如802.1X主要基于以太网交换机的上的物理端口。

        问题:部署上需要尽量靠近边缘,甚至需要在运营商管理范围之外的些接入设备上进行部署,因此在部署和管理上都不太方便,具有一定的局限性。

        解决方案2:PPPoE(Point-to-Point Protocol over Ethernet)是一种广泛应用于宽带接入领域的网络协议,常见于家庭和企业的宽带拨号接入方式。例如,公共无线热点。

2.2. PPPoE工作原理

        模式:PPPoE协议采用Client/Server方式,它将包含用户认证信息的PPP报文封装在以太网之内,在以太网上提供点对点的连接的同时,也利用PPP协议的PAP和CHAP认证方式对用户进行认证。

        PPPOE Client

        ① 可以是用户侧的HG(Home Gateway)设备,也可以是连接到网络的PC。

        ② 将以太网帧(携带PPP帧)通过以太网传送到PPPOE Server上以进行PPP认证。

        PPPOE Server:通常是位于骨千网的边缘层宽带接入服务器(Broadband Remote AccessServer,简称BRAS)。

        宽带接入服务器(BRAS)主要完成两方面功能:

        ① 网络承载功能:负责终结用户的PPPOE连接、汇聚用户的流量功能;

        ② 控制实现功能:与认证系统、计费系统和客户管理系统及服务策略控制系统相配合实现用户接入的认证、计费和管理功能。

        这两项功能都可以利用路由器设备进行实现,为方便理解,在后续的组网图和介绍中我们都以路由器来代替宽带接入服务器和模拟PPPoE Server。

2.3. PPPoE的两个阶段:Discovery阶段和PPPSession阶段

        Discovery阶段:当一个主机想开始PPPoE进程的时候,它必须先识别接入端的以太网MAC地址,建立PPPoE的SESSION ID。这也是Discovery阶段的目的。

        PPP Session阶段:当PPPoE进入Session阶段后,PPP 报文就可以作为PPPoE帧的净荷封装在以太网帧发到对端,SESSION ID必须是Discovery阶段确定的ID。MAC地址必须是对端的MAC地址,PPP报文从Protocol ID 开始。在Session阶段主机或服务器任何一方都可发PADT(PPPOEActive Discovery Terminate)报文通知对方结束本Session。

2.4. PPPoE的帧结构

        在上图所示的以太网帧的结构中:

        DESTINATION_ADDR:部分为目的MAC地址,可以是广播MAC地址(Oxffff)或者单播MAC地址。对于PPP Session数据来说,必须使用在Discovery阶段中确认的单播MAC地址。

        SOURCE_ADDR:则表示源MAC地址。

        ETHER_TYPE:为0x8863时表示该为Discovery阶段的报文,ETHER_TYPE为0x8864时则表示该帧为PPP Sssion阶段的报文。

        在上图所示的PPPoE的以太网payload中各字段的解释如下:

        VER:PPPoE的版本,根据RFC2516要求必须被设为0x1。

        TYPE:根据现存的PPPoE版本必须被设为0x1。

        CODE:用于标识Discovery阶段和PPP Session阶段的不同报文,其取值在后面进行详细介绍。

        SESSION_ID:用于唯一标识一个PPP Session,在Discovery阶段被定义,在PPPSession阶段被使用。保留值为0xffff。

        LENGTH:仅指PPPoE payload 的长度,不括以太网和PPPoE的头部。

        payload:PPPoE的 Payload 包括0或多个TAG。TAG采用上图所示的TLV(Type-Length-Value)结构:其中 TAG_TYPE 表示 TAG的类型,常用的类型在后面会进行介绍。TAG_LENGTH则表示TAG_VALUE的长度。

2.5. PPPoE的协商过程

        在如上图所示的组网中,PPPoE Client先将用户数据封装为PPP,再将PPP封装到以太网帧中,PPP中相关的验证信息将会送给PPPoE Server进行PAP或CHA验证。通过验证之后,PPPoE Client会以IPCP协商的形式从PPPoE Server获得IP地址。

        PPPoE Client和PPPoE Server之间的PPPoE协商过程分为Discovery阶段和PPP Session阶段。

        Discovery阶段

        第1步:PPPoE Client在以太网口上广播PADI(PPPoE Active Discovery lnitiation)报文该报文以以太网帧的形式被ADSL Modem桥接到运营商的集中路由器(PPPoE Server)上。

        (PPPoE头部:CODE=0x09;SESSION_ID=0x0000。PPPoEPavload: TAG_TYPE必须包括Service-Name,用于指示请求的服务:也可以包含其他的TAG)

        第2步:PPPoE Server在收到PADI之后,发送回PADO(PPPoE Active Discovery Offer)报文,其中包含了PPPoE Server的AC-name(Access Concentrator's name)信息和可以提供的服务信息Service-Name,以供 PPPoE Client 进行选择。

        (PPPoE 头部:CODE=0x07;SESSION_ID=0x0000。PPPoE Payload:必须包含至少一个Service-Name的TAG,用于指示可以提供的服务类型;必须包含AC-name的TAG)

        第3步:PPPoE Client发送一个单播的PADR(PPPoE Active Discovery Request)报文给选定的PPPOE Server。报文中包含服务信息Service-Name。

(PPPoE头部:CODE=0x19;SESSION_ID=0x0000。PPPoE Payload:TAG_TYPE必须包括Service-Name用于指示请求的服务;也可以包含其他的TAG)

        第4步:PPPoE Server发回PADS(PPPoE Active Discovery Session-Confirmation)报文,其包含session ID信息。完成Discovery阶段。

        (PPPoE 头部:CODE=0x19;SESSION_ID由PPPoE Server定义。PPPE Payload: TAG_TYPE 必须包括Service-Name,用于指示PPPOE Server同意提供的服务;也可以包含其他的TAG)

        在Discovery阶段之后,PPPoE Client已经知道了PPPoE Server的MAC地址和session ID,并可以据此来建立相应的PPP连接。接下来进入PPP session阶段。

        PPP Session阶段

        在PPP session阶段,PPPoE Client和PPPoE Server之间进行普通的LCP、NCP、IPCP协商来进行PPP验证(PAP或CHAP)和IP地址的分配。

        在PPP session阶段,以太网的ETHER_TYPE为0x8864,PPPoE头部的CODE=0x00,SESSION_ID在会话建立过程中不能发生改变,PPPOE Payload为PPP帧。

        在PPP session建立之后,PPPOE Server和Client都可以通过发送PADT(PPPOE Active Discovery Terminate)报文来终止PPP session。PPPoE头部的CODE=0xa7,不括TAG。

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

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

相关文章

如何高效封装App?小猪APP分发平台一站式解决方案

在移动应用开发领域,App封装(App Packaging)是一个至关重要的环节,它不仅关乎应用的安全性,还直接影响到最终用户体验和市场推广策略。本文旨在通过实战指南,揭示如何高效完成App封装,并介绍如何…

python爬虫(二) 之 42号网汽车文章爬虫

python爬虫(二) 之 42号网汽车文章爬虫 今天在咸鱼上有个买家找我一个42号网汽车文章的爬虫,目前需求已经做完了,现在将这部分代码开源,供大家参考。爬虫能够抓取到网站上所有文章的数据,大概一小时左右就…

buuctf[pwn]

buuctf[PWN] 题目:rip(栈对齐) 知识点:栈对齐 题目地址:BUUCTF在线评测 (buuoj.cn)知识点:64位ubuntu18以上系统调用system函数时需要栈对齐,因为64位下的system函数有个movaps指令,这个指令要求内存地址…

​《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制德国每日风能和太阳能产量3D线图

在MATLAB中,要绘制3D线图,可以使用 plot3 函数。 在《MATLAB科研绘图与学术图表绘制从入门到精通》书中通过绘制德国每日风能和太阳能产量3D线图解释了如何在MATLAB中绘制3D线图。 购书地址:https://item.jd.com/14102657.html

读天才与算法:人脑与AI的数学思维笔记20_数学图灵测试

1. 数学图灵测试 1.1. 能不能将这种计算机证明语言翻译成易于与人交流的方式呢? 1.1.1. 剑桥大学的两位数学家蒂莫西高尔斯(Timothy Gowers)和莫汉加内萨林加姆(Mohan Ganesalingam)开展了此项研究 1.1.1.1. 他们决…

已解决SyntaxError: EOL while scanning string literal 亲测有效!!!

已解决SyntaxError: EOL while scanning string literal 亲测有效!!! 亲测有效 报错问题解决思路解决方法 报错问题 SyntaxError: EOL while scanning string literal 这个错误通常发生在Python代码中,表示字符串字面量没有被正确…

撸爆公众号流量主,简单无脑,单日变现2000+

详情介绍 目前公众号流量主的收益非常的好,不管你是小白还是老鸟,都能拿到一个很好的收益,轻轻松松日入2000,接下来我给大家带来一个保姆级的教学,大家跟着操作就可以了

360手机去除广告 360手机关闭弹窗广告 360手机刷机

360手机去除广告 360手机关闭弹窗广告 360手机刷机 360手机去广告 360手机刷机 360手机弹窗广告 永久去除360手机的各种广告教程 360手机禁止更新 360手机关闭广告 360手机去除内部广告 360手机资源网 360手机刷机资源下载链接:360rom.github.io 参考:…

C语言/数据结构——每日一题(链表的中间节点)

一.前言 今天我在LeetCode刷到了一道单链表题,想着和大家分享一下这道题:https://leetcode.cn/problems/middle-of-the-linked-list。废话不多说让我们开始今天的知识分享吧。 二.正文 1.1题目描述 1.2题目分析 这道题有一个非常简便的方法——快慢指…

xx学校(微信)挖掘

挖掘目标的部署在微信的资产(减少信息的收集,毕竟一般web站点没有账号密码不好进入后台,挖掘功能点少) 1. 寻找目标的微信小程序(非原图) 1. 招生小程序打不开,只能挖掘管理系统 进入后发现存在上报安全隐患功能,可以上传图片 1. 准备上传shell 发现控制上传名字参数为name,…

mysql数据库(排序与分页)

目录 一. 排序数据 1.1 排序规则 1.2 单列排序 1.我们也可以使用列的别名,给别名进行排序 2.列的别名只能在 ODER BY 中使用, 不能在WHERE中使用。 3.强调格式:WHERE 需要在 FROM 后, ORDER BY 之前 1.3 二级排序&…

【软考高项】三十三、质量管理

一、管理基础 质量定义 国际标准:反映实体满足主体明确和隐含需求的能力的特性总和。 国家标准:一组固有特性满足要求的程度。固有特性是指在某事或某物中本来就有的,尤其是那种永久的可区分的特征。 ➢ 对产品来说,例如…

【Windows】Windows电脑如何给hosts添加解析

前言 hosts是一个没有扩展名的系统文件,在浏览器输入一个我们想要登录的网站时,电脑系统会自动帮助我们在hosts文件中寻找对应的IP地址,然后打开网站,如果找不到对应IP,电脑就需要对域名和IP地址进行解析。当对一个网…

面向新手在无人机竞速场景下的飞行辅助系统——浙大 FAST-Lab 高飞团队 ICRA 论文三项 Best Paper 入围

恭喜浙江大学 FAST-Lab 钟宇航同学的论文 A Trajectory-based Flight Assistive System for Novice Pilots in Drone Racing Scenario 顺利发表 ICRA 2024,并同时入选三项 Finalist: the IEEE ICRA Best Conference Paper Awardthe IEEE ICRA Best Pape…

人工智能_大模型049_模型微调009_llama2模型训练_代码分析和实现_代码记录---人工智能工作笔记0184

以上是项目的整体结构,其中上一节我们看了chatglm3目录下,对chatglm3模型的训练部分的代码,然后 这里的llama2目录下是对llama2模型进行训练的代码. 然后web_demo目录是,对web浏览器中,使用chatglm3,以及llama2.py进行的封装下一节我们再看这个部分 E:\2024\人工智能\fine-tun…

c++函数返回指针和引用

写一个常量字符串复制函数 我们以为的方式 写不了,我们把指针指向了这个常量区,看似拥有了,其实不属于str 我们需要把常量字符拿出来,让指针指向栈区或者堆区 #include<iostream> using namespace std; int clen(const char* str) {int len 0;for (int i 0; str[i];…

车牌号识别系统:PyQT5+QT Designe+crnn/PaddleOCR+YOLO+OpenCV矫正算法。

PyQT5&QT Designecrnn/PaddleOCRYOLO传统OpenCV矫正算法。可视化的车牌识别系统项目。 车牌号识别系统 项目绪论1.项目展示2.视频展示3.整体思路 一、PyQT5 和 QT Designer1.简介2.安装3.使用 二、YOLO检测算法三、OpenCV矫正算法四、crnn/PaddleOCR字符识别算法五、QT界面…

Linux权限控制进阶:ACL、su与sudo的完美结合

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 2、什么是ACL 3、什么是用…

C语言 | Leetcode C语言题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {int m matrixSize, n matrixColSize[0];int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 low;int x matrix[mid /…

6个月小猫成长必备!福派斯无麸质幼猫粮评测

你知道吗&#xff1f;给小猫选择适合的猫粮是一件非常不容易但很重要的事情。那么&#xff0c;对于6个月大的小猫来说&#xff0c;什么样的猫粮是最适合它们的呢&#xff1f;&#x1f431; 我们首先要考虑的是猫粮的营养成分。6个月大的小猫正处于快速生长期&#xff0c;所以需…