网络协议之LLDP

网络协议之LLDP一、协议简介为什么会出现LLDP?随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。LLDP(LinkLayerDiscoveryProtocol,链路层发…

大家好,又见面了,我是你们的朋友全栈君。

一、协议简介
为什么会出现LLDP?
随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。
LLDP(Link Layer Discovery Protocol,链路层发现协议)就是用于这个目的的协议。
它提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准MIB(Management Information Base,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。
二、基本概念
LLDP报文封装有两种格式,一是ethernet II另外一个是SNAP。
网络协议之LLDP
Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
Type:报文类型,为0x88CC。
Data:数据,为LLDPDU。
FCS:帧检验序列。

网络协议之LLDP
Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
Type:报文类型,为0xAAAA-0300-0000-88CC。
Data:数据,为LLDPDU。
FCS:帧检验序列
关于Ethernet帧格式的发展与种类之间的区别后面再细说。

LLDPDU
网络协议之LLDP
必须携带chassisID,port id,ttl,和end这四种tlv,其余为optional tlv可选的。

网络协议之LLDP

除了以上基本的TLV,还有一些为了增强网络管理功能的TLV
网络协议之LLDP
网络协议之LLDP
网络协议之LLDP
说明:LLDP-MED TLV是为VoIP(Voice over IP,在IP上传送语音)提供了许多高级的应用,包括基本配置、网络策略配置、地址信息以及目录管理等。

三、工作机制

  1. LLDP的工作模式
    LLDP有以下四种工作模式:
    TxRx:既发送也接收LLDP报文。
    Tx:只发送不接收LLDP报文。
    Rx:只接收不发送LLDP报文。
    Disable:既不发送也不接收LLDP报文。

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

  1. LLDP报文的发送机制
    当端口工作在TxRx或Tx模式时,设备会周期性地向邻居设备发送LLDP报文。如果设备的本地配置发生变化则立即发送LLDP报文,以将本地信息的变化情况尽快通知给邻居设备。但为了防止本地信息的频繁变化而引起LLDP报文的大量发送,每发送一个LLDP报文后都需延迟一段时间后再继续发送下一个报文。

当设备的工作模式由Disable/Rx切换为TxRx/Tx,或者发现了新的邻居设备(即收到一个新的LLDP报文且本地尚未保存发送该报文设备的信息)时,该设备将自动启用快速发送机制,即将LLDP报文的发送周期缩短为1秒,并连续发送指定数量的LLDP报文后再恢复为正常的发送周期。

  1. LLDP报文的接收机制
    当端口工作在TxRx或Rx模式时,设备会对收到的LLDP报文及其携带的TLV进行有效性检查,通过检查后再将邻居信息保存到本地,并根据TTL(Time To Live,生存时间) TLV中TTL的值来设置邻居信息在本地设备上的老化时间,若该值为零,则立刻老化该邻居信息。

四、配置(HCL)
有很多可以仿真网络设备的软件,如Cisco packet tracker,h3c的HCL,华为的eNSP。我这里使用的是HCL。可以去h3c官网获取现在最新的版本是v2.1.1,安装后我运行一直报错,查看log后显示“ImportError: DLL load failed: 操作系统无法运行 %1。”,后来觉得应该是之前系统升到了win10,果断右键兼容性运行win7,再运行就好了。
先部署3个交换机
网络协议之LLDP
双击设备的图标会进入命令视图的窗口。
在系统视图下全局开启lldp,然后查看,一般默认都是开启的。
网络协议之LLDP
lldp设置还有很多在具体的端口上进一步设置。
网络协议之LLDP
admin-status就是设置tx,rx,txrx的。
compliance就是与cisco CDP互通兼容的设置。
其他的内容有兴趣的可以实际操作试试。

转载于:https://blog.51cto.com/12374206/2126824

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138759.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python的input格式_javascript设计模式与开发实践 pdf

    python的input格式_javascript设计模式与开发实践 pdffileinput模块可以对一个或多个文件中的内容进行迭代、遍历等操作。该模块的input()函数有点类似文件readlines()方法,区别在于:前者是一个迭代对象,即每次只生成一行,需要用for循环迭代。后者是一次性读取所有行。在碰到大文件的读取时,前者无疑效率更高效。用fileinput对文件进行循环遍历,格式化输出,查找、替换等操作,非常方便。【典型用法】importfileinputf…

  • BeanUtils_BeanUtils

    BeanUtils_BeanUtils使用maven创建项目,pom文件<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </depende

  • LSTM 时间序列预测 matlab

    由于参加了一个小的课题,是关于时间序列预测的。平时习惯用matlab,网上这种资源就比较少。借鉴了 http://blog.csdn.net/u010540396/article/details/52797489 的内容,稍微修改了一下程序。程序说明:DATA.mat是一行时序值,numdely是用前numdely个点预测当前点,cell_num是隐含层的数目,cos

  • pycharm python interpreter_python中assertionerror解决

    pycharm python interpreter_python中assertionerror解决Python里SQLAlchemy运行时报错InvalidRequestE:VARCHAR requires a length on dialect mysql

  • Wireshark零基础使用教程(超详细)

    Wireshark零基础使用教程(超详细)Wireshark安装入门,Wireshark工具使用教程,Wireshark过滤操作

  • 学java还是python哪个就业好_JAVA和Python哪个好就业?

    学java还是python哪个就业好_JAVA和Python哪个好就业?Python和Java是现在最火的两种编程语言,Python和Java的就业前景都很好,具体选择哪一个要看你自身对哪种编程语言更感兴趣。Python的就业方向和前景学习Python以后可以从事数据分析工作,无论是什么行业,做数据分析的人似乎都离不开Python,因为Python可以帮助他们提高工作效率。也可以从事网络编程工作,Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号