1、LLDP协议简介
LLDP(Link Layer Discovery Protocol,链路层发现协议)是一种网络协议,主要用于设备间的互相识别和网络拓扑的自动发现。LLDP允许设备交换其能力、管理地址、设备标识、接口标识等信息,从而帮助网络管理员更好地理解和管理网络。
LLDP的一个关键特性是其标准化,这意味着不同厂商的设备都可以通过LLDP进行互操作。此外,LLDP还支持扩展,可以通过添加新的TLV来提供更多的信息,例如VoIP(Voice over IP,在IP上传送语音)的相关信息等。
虽然LLDP可以帮助提高网络的透明度和可管理性,但也可能带来安全风险。因为LLDP可以让设备获取其他设备的信息,所以有可能被恶意利用。因此,网络管理员通常会在自己管理的网络内部接口开启LLDP协议,而在与其他设备相连的接口关闭LLDP协议,以此保护网络安全。
2、LLDP协议的应用场景
LLDP(Link Layer Discovery Protocol,链路层发现协议)在网络管理中有多种应用场景,主要包括:
1)网络拓扑发现:LLDP允许网络设备发现相邻设备,并交换有关设备的信息,用
于网络拓扑发现。通过LLDP,网络管理员可以快速掌握二层网络拓扑信息、拓扑变化信息,从而构建网络拓扑图。
2)自动配置网络设备:网络设备可以通过LLDP自动获取相邻设备的信息,并根据这些信息进行配置,如自动选择最佳路径、配置QoS参数等。
3)故障诊断和排查:LLDP提供了快速获取网络设备信息的方式,当网络发生故障时,管理员可以通过LLDP了解连接设备的状态和拓扑关系,从而快速定位和解决问题。
4)设备信息获取:LLDP提供了一种标准化的方式来获取设备的信息,如设备类型、厂商信息、端口状态等。这些信息对于网络管理和故障排查非常有用。
5)安全审计:LLDP可以提供设备和链路的详细信息,帮助安全审计人员监控网络拓扑,发现异常行为,加强网络安全。
6)数据中心网络管理:在数据中心中,LLDP对于跟踪服务器、交换机、存储设备和其他基础设施组件之间的连接至关重要。它通过提供对设备配置和功能的洞察来帮助优化数据中心运营。
7)工业网络监控:在工业环境中,LLDP在监控和数据采集(SCADA)系统以及工业物联网(IIoT)部署中发挥着重要作用。它可以在正常运行时间和可靠性至关重要的工业环境中实现快速设备发现和网络映射。
8)网络访问控制(NAC):LLDP数据可以与网络访问控制(NAC)系统集成以实施安全策略。如果设备的LLDP信息与预期配置文件不匹配或不符合安全标准,则可以限制访问,直到设备经过验证和授权。
9)端口安全:LLDP可以与网络交换机上的端口安全功能结合使用。如果LLDP帧显示设备信息不一致或不匹配,交换机可以自动禁用或限制端口,防止未经授权的访问。
LLDP协议的这些应用场景展示了它在现代网络环境中的重要性,特别是在多供应商和多样化设备网络中的管理、监控和安全方面。
3、LLDP协议工作原理
LLDP(Link Layer Discovery Protocol,链路层发现协议)的工作原理主要包括以下几个方面:
1)信息封装与发送:当网络设备启用LLDP后,它会将自己能力、管理地址、设备标识、接口标识等信息封装成LLDP帧,并定期向与其直接连接的设备发送这些帧。LLDP帧包含了一系列的TLV(Type/Length/Value,类型/长度/值)结构,每个TLV代表一种信息,例如设备的桥MAC地址、端口名称、端口MAC地址等。
2)信息接收与更新:接收设备收到LLDP帧后,会解析其中的信息并更新自身的LLDP远端系统MIB(Management Information Base,管理信息库),这些MIB信息用于保存远端设备的信息,以便本地设备可以更好地理解网络拓扑结构。
工作模式:LLDP有四种工作模式:
TxRx:既发送也接收LLDP报文;
Tx:只发送不接收LLDP报文;
Rx:只接收不发送LLDP报文;
Disable:既不发送也不接收LLDP报文。
3)报文发送机制:LLDP模块通过与设备上的物理拓扑MIB、实体MIB、接口MIB以及其他类型MIB的交互,来更新自己的LLDP本地系统MIB,以及本地设备自定义的LLDP扩展MIB。设备会周期性地向邻居设备发送LLDP报文,如果设备的本地配置发生变化则立即发送LLDP报文,以将本地信息的变化情况尽快通知给邻居设备。
4)报文接收机制:设备收到LLDP报文时,会对报文及其携带的TLV信息进行有效性检查,通过有效性检查后,将邻居信息保存到本地设备,并根据LLDPDU中携带的TTL(Time To Live,生存时间)TLV值,设置邻居信息在本地设备的老化时间。如果接收到的LLDPDU中的TTL值等于零,将立刻老化掉该邻居信息。
5)MIB库的使用:LLDP协议规定设备的每个接口上都有四个MIB库,其中最主要的两个为LLDP Local System MIB(LLDP本地系统MIB)和LLDP Remote System MIB(LLDP远端系统MIB),分别存储着本端设备和邻居节点的状态信息,包括设备ID、接口ID、系统名称、系统描述、接口描述、设备能力、网络管理地址等。
6)自动发现与拓扑管理:LLDP有助于自动发现邻近设备并管理网络拓扑。通过LLDP,网络管理员可以获取网络拓扑的详细信息,包括相连设备的类型、设备的网络策略、甚至设备的物理位置。
7)设备信息获取:LLDP提供了一种标准化的方式来获取设备的信息,如设备类型、厂商信息、端口状态等。这些信息对于网络管理和故障排查非常有用。
LLDP通过这些机制,为网络设备间的互相识别和网络拓扑的自动发现提供了一种有效的手段,帮助网络管理员更好地理解和管理网络。
4、LLDP的配置
要在Linux内核中配置LLDP协议,通常需要通过以下几个步骤:
1)安装LLDP服务:
在CentOS上,可以使用lldpad服务,通过以下命令安装:
sudo yum install -y lldpad
2)启动LLDP服务:
启动服务并设置为开机启动:
sudo systemctl start lldpd.service
sudo systemctl enable lldpd.service
3)配置LLDP:
lldptool set-lldp -i eth1 adminStatus=rxtx ;
lldptool -T -i eth1 -V sysName enableTx=yes ;
lldptool -T -i eth1 -V portDesc enableTx=yes ;
lldptool -T -i eth1 -V sysDesc enableTx=yes ;
lldptool -T -i eth1 -V sysCap enableTx=yes ;
lldptool -T -i eth1 -V mngAddr ipv4=`hostname -I` ;
lldptool -T -i eth1 -V mngAddr enableTx=yes ;
4)验证LLDP配置:
使用lldptool命令查看LLDP邻居信息:
lldptool get-tlv -n -i "eth1"