協議標准
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):
由順序類型、長度和值字段組成的信息元素的一種短的、可變長度的編碼,其中類型字段標識信息的類型,長度字段表示信息字段的長度,以八位元表示,值字段包含信息本身。