LLDP 基本原理

LLDP 简介

定义

LLDP(Link Layer Discovery Protocol,链路层发现协议)是 IEEE 802.1ab 中定义的第二层发现(Layer 2 Discovery)协议。

LLDP 提供了一种标准的链路层发现方式,可以将本端设备的主要能力、管理地址、设备标识、接口标识等信息封装到 LLDP 报文中传递给邻居节点,邻居节点在收到这些信息后将其以标准 MIB(Management Information Base,管理信息库)的形式保存起来,供 NMS(Network Management System,网络管理系统)查询及判断链路的通信状况。

目的

随着网络规模越来越大,网络设备种类繁多,并且各自的配置错综复杂,对网络管理能力的要求也越来越高。传统网络管理系统多数只能分析到三层网络拓扑结构,无法确定网络设备的详细拓扑信息、是否存在配置冲突等。因此需要有一个标准的二层信息交流协议。

LLDP 提供了一种标准的链路层发现方式。通过 LLDP 获取的设备二层信息能够快速获取相连设备的拓扑状态;显示出客户端、交换机、路由器、应用服务器以及网络服务器之间的路径;检测设备间的配置冲突、查询网络失败的原因。

用户可以通过使用网管系统,对支持运行 LLDP 协议的设备进行链路状态监控,在网络发生故障的时候快速进行故障定位。
通过在网络中部署 LLDP 协议,既能掌握更详细的网络拓扑信息以及网络拓扑变化信息,还能及时发现网络中实际存在的不合理的配置,这些信息有助于用户实时监控网络状态,有效提升网络的安全性和稳定性。

LLDP 基本原理

LLDP 可以将本地设备的信息发送给远端设备,本地设备将收到的远端设备信息以标准 MIB (Management Information Base,管理信息库) 的形式保存起来。

LLDP 协议规定设备的每个接口上都有四个 MIB 库,其中最主要的两个为 LLDP Local System MIB(LLDP 本地系统 MIB)和 LLDP Remote System MIB(LLDP 远端系统 MIB),分别存储着本端设备和邻居节点的状态信息,包括设备 ID、接口 ID、系统名称、系统描述、接口描述、设备能力、网络管理地址。

LLDP 基本原理如图所示

在这里插入图片描述

LLDP 基本实现原理如下:

  1. LLDP 模块通过 LLDP 代理与设备上物理拓扑 MIB、实体 MIB、接口 MIB 以及其他 MIB 的交互,来更新自己的 LLDP 本地系统 MIB,以及本地设备自定义的 LLDP 扩展 MIB。

  2. 将本地设备信息封装成 LLDP 帧发送给远端设备。

  3. 接收远端设备发过来的 LLDP 帧,更新自己的 LLDP 远端系统 MIB,以及远端设备自定义的 LLDP 扩展 MIB。

通过 LLDP 代理收发 LLDP 帧,设备就很清楚地知道远端设备的信息,包括连接的是远端设备的哪个接口、远端设备的 MAC 地址等信息。

LLDP 代理主要完成如下工作

  • 维护 LLDP 本地系统 MIB 信息。

  • 向邻居节点发送 LLDP 帧,通告本端设备的状态信息。

  • 识别并解析收到的邻居节点发送的 LLDP 帧,维护 LLDP 远端系统 MIB 的信息。

  • LLDP 本地系统 MIB 或 LLDP 远端系统 MIB 的信息发生变化时,向网管发送 LLDP 告警。

LLDP 拓扑发现

在 DeviceA 和 DeviceB 已配置 LLDP 功能的情况下,介绍 LLDP 拓扑发现的实现过程。

LLDP 拓扑发现图
在这里插入图片描述

  1. DeviceA 将本端的状态信息封装成 LLDP 报文,发送给邻居设备 DeviceB。

  2. DeviceB 解析接收到的 LLDP 报文,并将该报文中的关于 DeviceA 的信息存储到设备上的远端系统 MIB 中,供 NMS 提取拓扑信息使用。

  3. 同样,DeviceB 也将本端的状态信息封装成 LLDP 报文发送给 DeviceA,DeviceA 解析接收到的 LLDP 报文,并将该报文中的关于 DeviceB 的信息存储到设备上的远端系统 MIB 中,供 NMS 提取拓扑信息使用。

  4. NMS 通过与 DeviceA 和 DeviceB 交互 SNMP (Simple Network Management Protocol,简单网络管理协议)
    报文,从两者的 MIB 库中提取本地信息和邻居信息并进行拓扑分析,最终发现整网的拓扑结构。

LLDP 报文格式

  • 封装了 LLDP 数据单元 LLDPDU(LLDP Data Unit)的以太网报文称为 LLDP 报文。其封装格式有两种:Ethernet II 和 SNAP(Subnetwork Access Protocol,子网访问协议),目前设备支持的封装格式为 Ethernet II。

LLDP 报文格式如图所示

在这里插入图片描述
LLDP 报文中相关字段的解释如表所示

字段说明
Destination MAC address目的 MAC 地址,为固定的组播 MAC 地址 0x0180-C200-000E。
Source MAC address源 MAC 地址,为接口 MAC 地址或设备桥 MAC 地址(如果有接口地址则使用接口 MAC 地址,否则使用设备桥 MAC 地址)。
Type报文类型,固定为 0x88CC。
LLDPDULLDP 数据单元,LLDP 信息交换的主体。
FCS(Frame Check Sequence)帧校验序列。

LLDPDU

LLDPDU 是封装在 LLDP 报文中的数据单元。

组成 LLDPDU 之前,设备先将本地信息封装成 TLV(Type-Length-Value)格式,再由若干个 TLV 组合成一个 LLDPDU,封装在 LLDP 报文的数据部分进行传送。用户可以根据需要将多种不同的 TLV 组合到 LLDPDU 中,设备根据这些不同的 TLV 来通告自己的状态信息,并且学习邻居节点的状态信息。

LLDPDU 的结构如图所示

在这里插入图片描述
LLDP 协议规定每个 LLDPDU 共可携带 28 种 TLV,且每个 LLDPDU 固定以 Chassis ID TLV、Port ID TLV 和 Time to Live TLV 开始,以 End of LLDPDU TLV 为结束。其中 Chassis ID TLV、Port ID TLV 和 Time to Live TLV 为必选的 TLV,其他则为可选 TLV,用户可以根据需要自行决定是否要组合到 LLDPDU 中发送。

TLV

TLV 是组成 LLDPDU 的最小单元,表示一个对象的类型、长度和信息。

TLV 的结构如图所示
在这里插入图片描述

  • TLV Type 表示 TLV 的类型,它占 7 个 bits。每个 TLV 的类型值不同,比如 End of LLDPDU TLV 的类型值为 0,Chassis ID TLV 的类型值为 1 等。

  • TLV information string length 表示 TLV 内容的长度,它占 9 个 bit。

  • TLV information string 表示 TLV 的内容,最大支持 511bytes 长度的内容。

每个 TLV 代表设备的一种信息,例如设备 ID、接口 ID、管理地址等都各自对应 Chassis ID TLV、Port ID TLV、Management Address TLV 等固定的 TLV。

LLDP 可以封装的 TLV 类型包括基本 TLV、802.1 组织定义的 TLV、802.3 组织定义的 TLV。

  • 基本 TLV:基本 TLV 是网络设备管理的一组基础 TLV。

  • 基本 TLV 说明

TLV 名称TLV 类型说明是否必须发布
End of LLDPDU TLV0标识 LLDPDU 结束。
Chassis ID TLV1标识发送设备的桥 MAC 地址。
Port ID TLV2标识 LLDPDU 发送端的接口。
Time To Live TLV3标识本设备信息在邻居节点上的存活时间。
Port Description TLV4标识以太网接口的描述信息。
System Name TLV5标识设备的名称。
System Description TLV6标识系统描述信息。
System Capabilities TLV7标识系统的主要功能以及有哪些主要功能被启用。
Management Address TLV8标识管理地址。
Reserved9~126保留,用作特殊用途。
  • 组织定义 TLV:组织定义 TLV 是由标准组织定义的 TLV,主要包括 IEEE 802.1 组织定义的 TLV 和 IEEE 802.3 组织定义的 TLV,用于增强对网络设备的管理,可根据实际需要配置是否在 LLDPDU 中发送。

IEEE 802.1 组织定义的 TLV 说明

TLV 名称TLV 类型说明
Reserved0保留,用作特殊用途。
Port And Protocol VLAN ID TLV1标识接口的协议 VLANID。
VLAN Name TLV3标识接口 VLAN 名称。
Protocol Identity TLV4标识接口支持的协议类型。
Reserved5~255保留,用作特殊用途。

IEEE 802.3 组织定义的 TLV 说明

TLV 名称TLV 类型说明
Reserved0保留,用作特殊用途。
MAC/PHY Configuration/Status TLV1标识接口是否支持速率自动协商、是否已启用自动协商功能以及接口当前的速率和双工状态。
Link Aggregation TLV3标识接口是否支持链路聚合以及是否已启用链路聚合。
Maximum Frame Size TLV4标识接口支持的最大帧长度,取接口的最大传输单元 MTU(Max Transmission Unit)。
Reserved5~255保留,用作特殊用途。

LLDLLDP 四种工作模式

模式工作行为
Tx只发送 LLDP 报文
Rx只接收 LLDP 报文
Tx/Rx既发送也接收 LLDP 报文
Disable既不发送也不接收 LLDP 报

LLDP 功能启用后,默认的工作模式为 Tx/Rx 模式。

说明

当接口的 LLDP 工作模式发生变化时,接口将对协议状态机进行初始化操作。为了避免接口工作模式频繁改变而导致接口不断执行初始化操作,设备支持配置接口初始化延迟时间,当接口工作模式改变时延迟一段时间再执行初始化操作。

下面介绍 LLDP 工作模式下,LLDP 报文的发送和接收机制。

  • LLDP 报文的发送机制

  • 一般情况下,启用 LLDP 功能后,设备会周期性地向邻居节点发送 LLDP 报文。如果设备的本地配置发生变化,则立即发送 LLDP 报文,将本地信息的变化情况尽快通知给邻居节点。为了防止本地信息的频繁变化而引起 LLDP 报文的大量发送,设备支持配置接口发送 LLDP 报文的延迟时间,每发送一个 LLDP 报文后都延迟一段时间后再继续发送下一个报文。

当设备发现一个新邻居(即接收到一个新的 LLDP 报文且本地没有保存该报文的发送方设备的信息),或者设备的 LLDP 功能由打开状态变为关闭,或者设备的接口状态由 Down 变为 Up 的时候,为了让其他设备尽快发现本设备,设备支持快速发送机制,即将 LLDP 报文的发送周期缩短为 1 秒,并连续发送指定数量的 LLDP 报文后再恢复为正常的发送周期。

  • LLDP 报文的接收机制

  • 设备收到 LLDP 报文时,会对报文及其携带的 TLV 信息进行有效性检查,通过有效性检查后,将邻居信息保存到本地设备,并根据 LLDPDU 中携带的 TTL(Time To Live,生存时间) TLV 值,设置邻居信息在本地设备的老化时间,如果接收到的 LLDPDU 中的 TTL 值等于零,将立刻老化掉该邻居信息。

LLDP 缺省配置

LLDP 常见参数的缺省配置如表所示

参数缺省值
LLDP 功能全局未启用
在 LLDP 报文中发布的管理 IP 地址自动获取管理 IP 地址,管理 IP 地址未绑定任何接口
LLDP 允许发布的 TLV 类型发布除 Protocol Identity TLV 外的所有类型的 TLV
设备发送 LLDP 报文的周期30 秒
设备发送 LLDP 报文的延迟时间2 秒
设备本端状态信息在邻居节点中保持的时间倍数4
接口的 LLDP 功能初始化的延迟时间2 秒
设备向邻居节点快速发送 LLDP 报文的个数4
设备发送 LLDP 邻居信息变化告警的延迟时间5 秒

via: huawei

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中,数码管被广泛应用于各种电子设备中,如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中,我们将探讨数码管的工作原理…

【详细】CNN中的卷积计算是什么-实例讲解

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、 CNN的基础卷积计算1.1.一个例子了解CNN的卷积计算是什么1.2.卷积层的生物意义 二、卷积的拓展:多输入通道与多输出通道2.1.多输入通道卷积2.2.多输出通道卷积 三、卷积的实现3.1.pytorch实现卷积…

助农扶贫网站

摘要:随着信息科技的快速发展和互联网的普及,信息技术在助力农业发展、促进农村振兴以及扶贫工作中发挥着越来越重要的作用。本文基于Spring Boot框架和Vue.js前端开发技术,设计完成了一个助农扶贫电商网站。网站提供便捷的农产品信息发布、农…

【验收支撑】项目验收计划书(Word原件)

软件验收相关的文档通常包括以下,这些文档在软件项目的不同阶段和验收过程中起着关键作用: 1、概要设计说明书: 描述了软件系统的整体架构、主要模块及其相互关系。 2、详细设计说明书: 提供了软件系统中各个模块的详细设计信息&a…

确保家电安全无忧:可燃气体报警器检验的重要性与必要性

随着家电行业的快速发展,安全问题已成为消费者关注的焦点。 可燃气体报警器作为一种重要的安全装置,在保障家庭安全中扮演着至关重要的角色。它能够实时监测室内可燃气体浓度,一旦超过预设的安全阈值,便会发出警报,提…

【Linux】服务器被work32病毒入侵CPU占用99%

文章目录 一、问题发现二、问题解决2.1 清楚病毒2.2 开启防火墙2.3 修改SSH端口2.4 仅使用凭据登录(可选) 一、问题发现 我的一台海外服务器,一直只运行一项服务(你懂的),但是前不久我发现CPU占用99%。没在…

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方

1,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方 原来是需要在配置文件里开启一下timer的中断,其他模块自动加载ioc就可以了,这个timer需要注意力,需要自己勾选一下 如下图: 看…

【嵌入式操作系统(Linux篇)】实验期末复习(1)

以下是关于嵌入式操作系统(Linux篇)的实验汇总,大概率都是会考的 特别是shell程序和文件IO的操作 嵌入式操作系统实验小结—涉及期末大题 (一)Linux操作系统的使用实验 1、认识Linux操作系统的目录结构 请进入自己…

一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好,今天给大家分享的是一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计。 Remark42是一个自托管的、轻量级的、简单的(但功能强大的)评论引擎,它不会监视用户。它可以嵌入到博客、文章或任何其他读者…

如何知道docker谁占用的显卡的显存?

文章目录 python环境安装nvidia-htop查看pid加一个追踪总结一下【找到容器创建时间】使用说明示例 再总结一下【用PID找到容器创建时间,从而找到谁创建的】使用说明示例 python环境安装nvidia-htop nvidia-htop是一个看详细的工具。 pip3 install nvidia-htop查看…

Qt:4.信号和槽

目录 1.信号源、信号和槽: 2.Qt类的继承关系: 3.自定义槽函数: 4.第一种信号和槽的连接的方法: 5.第二种信号和槽的连接的方法: 6.自定义信号: 7.发射信号: 8.信号和槽的传参:…

第7章_低成本 Modbus 传感器的实现

文章目录 第7章 低成本 Modbus 传感器的实现7.1 硬件资源介绍与接线7.2 开发环境搭建7.3 创建与体验第 1 个工程7.3.1 创建工程7.3.2 配置调试器7.3.3 配置 GPIO 操作 LED 7.4 UART 编程7.4.1 使用 STM32CubeMX 进行配置1.UART12.配置 RS485方向引脚 7.4.2 封装 UART7.4.3 上机…

已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!!

已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 1. 检查用户名和密码 用户名和密码验证 2. 验证配置文件 …

前端面试题(基础篇十二)

一、link标签定义、与import的区别 link 标签定义文档与外部资源的关系。 link 元素是空元素,它仅包含属性。 此元素只能存在于 head 部分,不过它可出现任意数。 link 标签中的 rel 属性定义了当前文档与被链接文档之间的关系。常见的 stylesheet 指的是…

ServletConfig与ServletContext详解

文章目录 概要web.xmlServletConfig介绍ServletConfig实例ServletConfig细节ServletContext介绍ServletContext实例ServletContext细节ServletContext获得服务访问次数&#xff08;可拓展&#xff09;总结 概要 web.xml <?xml version"1.0" encoding"UTF-…

使用uniapp编写微信小程序

使用uniapp编写微信小程序 文章目录 使用uniapp编写微信小程序前言一、项目搭建1.1 创建项目方式1.1.1 HBuilderX工具创建1.1.2 命令行下载1.1.3 直接Gitee下载 1.2 项目文件解构1.2.1 安装依赖1.2.2 项目启动1.2.3 文件结构释义 1.2 引入uni-ui介绍 二、拓展2.1 uni-app使用uc…

谷粒商城实战(045集群学习-elasticsearch(ES)集群)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第368p-第p369的内容 文章目录 简介集群健康分片新增节点水平扩容问题和解决集群结构测试集群信息 简介 不管用户发给哪个节点&#xff0c;都可以…

Adobe Acrobat Pro或者Adobe Acrobat Reader取消多标签页显示,设置打开一个pdf文件对应一个窗口。

Windows系统&#xff1a;Adobe Acrobat Pro或者Adobe Acrobat Reader首选项-一般-取消在同一窗口的新标签中打开文档&#xff08;需要重启&#xff09;的对勾&#xff0c;点击确定&#xff0c;彻底关闭后重启&#xff0c;这样打开的每一个PDF文件对应的是一个窗口&#xff0c;并…

vue3+ el-upload封装上传组件

组件功能介绍 上传格式限制上传大小限制上传文件数量限制自定义上传区上传成功回调禁用上传开关与点击上传自定义事件暴露所以上传文件列表&#xff08;uploadList&#xff09;与当前文件数据&#xff08;uploadLatestFile&#xff09; 组件代码Upload.vue <template>&l…

玩具租赁系统(安装+讲解+源码)

技术栈: 后端: SpringBoot Mysql MybatisPlus 前端: Vue Element 分为 管理员端 用户端 功能: 用户端 管理员端 观看地址: B站搜&#xff1a; 【毕设者】玩具租赁系统(安装讲解源码)