LLDP协议(笔记草稿)
协议标准
802.1ab
测试环境:
(1)
在centos7上默认安装了lldpap,对应工具是lldptool,命令执行帮助可以lldptool --help。
(2)
也可以安装lldpd:
yum -y install lldpd
systemctl start lldpd.service
systemctl enable lldpd.service
对应的命令行工具是lldpcli
例如:lldpcli show neighbors
代码
网络相关开源系统,例如白盒交换机系统SONiC等,都有LLDP源码,可以学些。
也可以单独下载源码学习:
https://github.com/lldpd/lldpd
https://sourceforge.net/projects/openlldp/files/
抓包
(1)抓包命令:
tcpdump -w lldp.cap ether proto 0x88cc -i eth2
(2)查看:
格式:
以太报文,根据ether proto的类型值 0x88cc 来确定以太包的payload是LLDP报文。
LLDP内容采用TLV格式,Type Length Value,最后使用End of LLDPDU结束。
================================================================================
《Link Layer Discovery Protocol (LLDP)协议规范内容,参考自802.1ab-2016》:
定义和数字表示
3.1 定义
chassis:
一种物理组件,包含一个或多个IEEE 802局域网站及其相关的应用程序功能。
chassis identifier:
由管理部门分配的名称,用于标识由一个或多个网络组成的管理域上下文中的特定机箱。
Link Layer Discovery Protocol (LLDP):
一种与媒体无关的协议,能够在所有ieee802局域网站上运行,并允许LLDP代理从相邻站了解连接和管理信息。
LLDP agent:
为与端口相关联的特定MSAP实现LLDP的协议实体。
MAC service access point (MSAP):
提供给LLC子层的MAC服务的接入点。
MSAP identifier:
MAC业务接入点的标识符。
注:机箱标识符和端口标识符的连接被LLDP用作MSAP标识符,用来标识与IEEE 802局域网站相关联的端口。
management entity:
实现特定网络管理协议的协议实体,为与该协议关联并在主机机箱上实现的MIB提供访问支持。
Management Information Base (MIB):
一个被管理实体(如系统或设备)中所有MIB模块的实例化。
Management Information Base module (MIB module):
可以用支持网络管理信息系统所需的信息填充的数据库的规范或模式。
Network Management System (NMS):
一种能够利用MIB中的信息的管理系统。
object identifier (OID):
用来命名对象的标识符。从结构上讲,OID由一个分层分配的命名空间中的节点组成,该命名空间在ISO/IEC 8824-1,抽象语法符号1 (ASN.1)中正式定义。OID用于标识MIB模块及其所包含的对象。
port:
机箱/系统中支持MSAP的实体。端口包含且仅包含一个MSAP,并标识在MSAP上提供MAC服务的可管理实体的集合。
port identifier:
管理员指定的名称,用于标识系统上下文中特定的端口,标识方便、对系统来说是本地的,并且对于系统的使用和管理是持久的(而全局标识MSAP的MAC地址则不能)。
system:
包含一个或多个机箱、站和端口的一组受管理的硬件和软件组件。
station only:
一种非转发的IEEE 802局域网工作站,如用户工作站、网络文件服务器或打印服务器。
type, length, value (TLV):
由顺序类型、长度和值字段组成的信息元素的一种短的、可变长度的编码,其中类型字段标识信息的类型,长度字段表示信息字段的长度,以八位元表示,值字段包含信息本身。