openlldp-0.4alpha实现详解(一)

         LLDP协议由802.1ab所定义。它是一个二层协议,一般称之为数据链路发现协议。这里对于该协议的实现原理不做详细介绍。具体原理可以参见IEEE 802.1ab文档(http://www.ieee802.org/1/pages/802.1ab.html)。

         OpenLLDP为802.1ab的开源实现,号称支持Linux,macOS,FreeBSD,NetBSD等众多类unix系统。参见维基百科对于openlldp的介绍http://en.wikipedia.org/wiki/OpenLLDP。

         下面为OpenLLDP的项目主页http://openlldp.sourceforge.net/

sourceforge页面http://sourceforge.net/projects/openlldp/。

         不过好像自从2010年发布0.4alpha版本之后,后续没有再更新过了。


         这里要提前指出的是,OpenLLDP的实现的并非非常标准的lldp。可以说它只是简单的实现了最基本的lldp功能。若需要lldp功能更多的实现,恐怕还要自己进行功能的添加了。

         首先来讲:

1) 考虑linux下的情况,若运行OpenLLDP的主机的底层端口有多个,但是系统显示的网络接口只有1个,比如eth0。(这种情况多见于用linux实现的交换机)。那么OpenLLDP所能达到的效果就不如预期了。因为它只会把上层的接口索引通过lldp发送出去,而不是底层的端口。所以若要跑在交换机上,得想办法将底层端口索引获取,封装在lldp报文中发送出去。

2)OpenLLDP没有快速发送机制。也就是说当一个运行OpenLLDP的设备收到一个新邻居的lldp报文或是本地信息更改,它不会立马将自己的lldp报文发送出去。它只会以固定的30秒为周期,发送lldp报文。当然这个其实可以通过小量改动代码实现快速发送机制。

3) OpenLLDP没有实现发送shutdownlldp报文或者说它发送shutdown lldp报文错误。


本人享有博客文章的版权,转载请标明出处http://blog.csdn.net/baidu20008

你可能感兴趣的:(LLDP,实现详解)