深入了解 Linux 中的 LLDP 网络协议 (linux lldp)

Linux 是一款广受欢迎的开源操作系统。在 Linux 系统中,网络协议是重要的一部分。其中,LLDP 协议是一种网络层发现协议,主要用于发现和监测网络拓扑结构中的设备和链路信息。本文将,探讨它的功能、应用和实现方式。

一、LLDP 协议概述

LLDP 全称 Link Layer Discovery Protocol,是一种用于发现和监测网络拓扑结构中的设备和链路信息的协议。它是一种标准协议,由 IEEE 标准化组织(IEEE Standards Association)所制定。LLDP 协议的作用在于实现网络拓扑自动发现,为网络管理提供帮助,也可以用于安全审计和故障排除。

LLDP 协议是基于链路层(Layer 2)的协议,在 OSI 模型中,它工作在数据链路层和物理层之间。LLDP 协议通过交换 LLDP 数据单元(LLDPDU)来建立设备之间的邻居关系,相邻设备之间的网络信息包括设备类型、端口标识符、网络地址、支持的协议等。LLDP 协议可以被广泛应用于各种网络设备中,如交换机、路由器、网络适配器、服务器等。

二、LLDP 协议的功能

LLDP 协议由多个 TLV(Type-Length-Value)字段组成,每个 TLV 字段用于描述相邻设备的不同信息。常见的 TLV 字段包括:

1. Chassis ID TLV:用于描述相邻设备的 ID 信息,可以是 MAC 地址、设备名等。

2. Port ID TLV:用于描述相邻设备上的端口 ID 信息。

3. Time to Live TLV:用于描述 LLDP 数据单元在网络中的存活时间,以及数据单元在网络中的更大跳数。

4. Port Description TLV:用于描述端口的文本描述信息,如端口名称、速率、管理状态等。

5. System Name TLV:用于描述相邻设备的名称。

6. System Description TLV:用于描述相邻设备的描述信息,如设备型号、厂商等。

7. Capabilities TLV:用于描述相邻设备所支持的协议、功能等信息。

8. Management Address TLV:用于描述相邻设备的管理地址信息。

LLDP 协议的主要功能有:

1. 自动发现拓扑结构:LLDP 协议可以通过交换 LLDP 数据单元,发现相邻设备之间的连接关系和网络拓扑结构,从而构建网络拓扑图。

2. 链路状态监测:LLDP 协议可以实时监测相邻设备之间的链路状态,发现和报告故障情况,帮助运维人员更快地定位和解决问题。

3. 安全审计:LLDP 协议可以提供设备和链路的详细信息,帮助安全审计人员监控网络拓扑,发现异常行为,加强网络安全。

4. 节省运维成本:LLDP 协议可以帮助运维人员快速了解网络拓扑结构,减少手动调试和排错的时间和人力成本,提高工作效率。

三、LLDP 协议的应用

LLDP 协议可以被广泛应用于各种网络设备中,如交换机、路由器、网络适配器、服务器等。在 Linux 系统中,LLDP 协议可以辅助网络管理、故障排除和安全审计等工作。

1. 系统配置

对于一般的 Linux 系统,可以通过安装 lldpd 软件包来启用 LLDP 协议。在 Debian 和 Ubuntu 系统中,可以使用以下命令安装 lldpd:

sudo apt-get install lldpd

在 Red Hat 和 CentOS 系统中,可以使用以下命令安装 lldpd:

sudo yum install lldpd

安装完 lldpd 后,可以使用以下命令启动 LLDP 守护进程:

sudo systemctl start lldpd

如果需要在开机时自动启动 LLDP 守护进程,可以使用以下命令:

sudo systemctl enable lldpd

2. 网络管理

LLDP 协议可以帮助运维人员快速了解网络拓扑结构,识别网络设备和链路信息,方便网络管理和故障排除。通过使用 lldpcli 命令,可以查看设备和链路信息,如设备名称、端口名称、设备所在 VLAN 等。

3. 安全审计

LLDP 协议可以提供设备和链路的详细信息,帮助安全审计人员监控网络拓扑,发现异常行为,加强网络安全。与 SNMP 协议相比,LLDP 协议不需要认证和授权,因此更易于进行网络侦查和攻击。建议在使用 LLDP 协议时,加强网络安全措施,限制非授权访问。

四、LLDP 协议的实现

在 Linux 系统中,LLDP 协议的实现主要包括 lldpd 守护进程和 lldpctl 控制工具两部分。

1. lldpd 守护进程

lldpd 守护进程是 Linux 系统中使用 LLDP 协议的核心组件,它运行在后台,并通过交换 LLDP 数据单元来发现网络拓扑结构。lldpd 守护进程主要由以下几个组件组成:

1. 系统初始化:lldpd 守护进程在启动时,会读取配置文件和加载支持库文件,完成初始化工作。

2. 链路发现:lldpd 守护进程在链路状态发生变化时,会通过发送 LLDP 数据单元来发现相邻设备,建立邻居关系。

3. 数据处理:lldpd 守护进程会对收到的 LLDP 数据单元进行解析和处理,并将结果保存到本地数据库中。

4. 状态报告:lldpd 守护进程会定时向相邻设备发送 LLDP 数据单元,报告本地设备和链路信息。

5. 事件通知:lldpd 守护进程支持事件通知机制,可以向用户发送警告和通知信息,帮助用户及时发现和解决故障。

2. lldpctl 控制工具

lldpctl 控制工具是 Linux 系统中使用 LLDP 协议的辅助工具,它提供了一系列命令和参数,用于查看和配置 LLDP 守护进程。lldpctl 控制工具可以通过命令行方式操作,也可以通过编程接口与其他应用程序进行交互。

常用的 lldpctl 命令包括:

1. show:查看本地设备和链路信息。

2. add/rem/get:添加、删除和查询邻居设备信息。

3. config:修改 LLDP 守护进程的配置参数。

4. update:更新 LLDP 守护进程的链路状态。

五、

LLDP 协议是一种重要的网络层发现协议,在 Linux 系统中得到了广泛的应用。通过 LLDP 协议,可以实现网络拓扑自动发现,提高网络管理效率,加强网络安全。在使用 LLDP 协议时,需要注意控制访问权限,避免非授权访问和攻击。同时,可以使用 lldpd 守护进程和 lldpctl 控制工具,更方便地管理和配置 LLDP 协议。

相关问题拓展阅读:

Linux获取交换机端口信息

LLDP 可以让你准确的知道服务器所连接的交换机端口号。

LLDP是一种工业标准协议,用于取代EDP或CDP等专用链路层协议。LLDP的目标是提供一个inter-vendor兼容机制,向相邻网络设备发送链路层通知。

lldpd是一个LLDP协议的一种实现,给各种Unixes使用。除此之外,它还支持一些专有协议。

实现交换机端口的抓取,目前我知道的有两种工具,一种是lldpad,另一种是lldpd。

这两个工具做了一下对比,最终选择了lldpd。原因如下:

lldpad:

lldpd:

通过对比可以看到lldpad最近一次更新,已经是5年前了。而lldpd的最晌纯近一次更新在本月。

lldpd可以将输出的信息转化为json格式,非常方便使用。

需要先配置好配置好epel-release源,然后直接yum安装即可。

安装好之后,你可以修改/etc/sysconfig/lldpd文件,来配置一些参数。

lldpd有两个模块。一个是lldpd的后台程序,用于接收和发送LLDP报文;一个是lldpcli用来查询和配置后台程序的工具。

将上述命令,加上 -f json 可以转变输出结果。这个功能非常有用,有利于自动化处理这些数据。

使用x722 LOM,当lldpad启动时,lldptool -L adminStatus = rxtx -i 然后lldptool -tni 运行时,NIC端口连接到启用了LLDP的交换机,不会返回LLDP信息。 (其中LLDP =链路层发现协议)

运行commnand ” echo lldp stop > / sys / kernel / debug / i40e / / command” ;.由于LOM没有FCoE功能,没有DCBx要求,所以扒滑没有真正的功能影响。 (FCoE =以太网光纤春谨腊通道)

根据Intel设计,x722适配器默认处理所有LLDP流量,LLDP流量将不会转到主机CPU,除非使用在x722中停止LLDP功能的命令。

关于linux lldp的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 深入了解 Linux 中的 LLDP 网络协议 (linux lldp)