找回密码
 注册
查看: 415|回复: 0

Linux使用lldpd获取交换机端口信息

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-17 20:55:03 | 显示全部楼层 |阅读模式
1. 什么是lldpd?
LLDP 可以让你准确的知道服务器所连接的交换机端口号。
LLDP是一种工业标准协议,用于取代EDP或CDP等专用链路层协议。LLDP的目标是提供一个inter-vendor兼容机制,向相邻网络设备发送链路层通知。
lldpd是一个LLDP协议的一种实现,给各种Unixes使用。除此之外,它还支持一些专有协议。
1.1. lldpad与lldpd的对比
实现交换机端口的抓取,目前我知道的有两种工具,一种是lldpad,另一种是lldpd。
这两个工具做了一下对比,最终选择了lldpd。原因如下:
1.2. 安装lldpd
需要先配置好配置好epel-release源,然后直接yum安装即可。
[root@controller ~]# yum install -y epel-release , \8 o  j  u  T$ ?1 \8 q2 t) x& ]' W
Loaded plugins: fastestmirror
9 b, \5 ]5 a8 d) C* W+ P0 @2 eLoading mirror speeds from cached hostfile
/ {8 C/ G" o8 y% ? * base: ftp.sjtu.edu.cn
& Y5 `# l* x0 e# h* O2 i/ C) A * extras: ftp.sjtu.edu.cn* H8 L3 [, v4 [* S. U
* updates: ftp.sjtu.edu.cn7 I: o0 E$ |" O2 v
base                                                                                | 3.6 kB  00:00:00     1 p2 ?5 o# e5 P7 a8 S$ D
extras                                                                              | 2.9 kB  00:00:00     : |" G3 D8 Y( ?: S: u$ w  K# @
updates                                                                             | 2.9 kB  00:00:00     6 L9 }: w4 O9 y, N, j
(1/2): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     
2 q; a  o2 I7 W$ |1 |% }(2/2): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:02     
; z+ a# u+ [% z7 O. m# SResolving Dependencies
7 E/ L% g" a2 q% i* E# \! K--> Running transaction check
: y* }4 _- H6 Z; G9 O% F# h  q---> Package epel-release.noarch 0:7-11 will be installed1 i  z# @) x* |2 C8 `! I! I
--> Finished Dependency Resolution
. ]6 v/ w. C$ L& e9 J1 z- L% u' B# x* P
Dependencies Resolved
% C( I- |! c, N* o' z
3 L" U! q! O: e! E; x. m===========================================================================================================
+ L5 b# }. l; b. [) ?6 r$ c! K Package                       Arch                    Version               Repository               Size
& B2 W' F7 C. X7 M0 I% L===========================================================================================================
7 s% ]4 Q+ S& j" GInstalling:! a5 c0 P3 O  z" D* i" b, P
epel-release                  noarch                  7-11                  extras                   15 k$ y0 {$ `7 p$ ~4 K

. J7 N: L  Z- R: Y, jTransaction Summary
7 N# d4 T5 t3 q===========================================================================================================. ~' x" p! T0 j. h/ g
Install  1 Package  u0 Y3 }: R4 Y4 t* }  s8 Z8 d
6 ]5 ], v. C) V- T- V5 U5 Q0 C
Total download size: 15 k- S5 V- `- E& n! R- W
Installed size: 24 k
9 W2 P6 [1 {/ J7 y* }. qDownloading packages:0 Y4 B6 G4 f1 R
Delta RPMs disabled because /usr/bin/applydeltarpm not installed., v3 C5 A$ A4 R
epel-release-7-11.noarch.rpm                                                        |  15 kB  00:00:00     
# S  U2 \+ j8 z: sRunning transaction check0 o* x% ~4 n9 `& F2 c( \& A
Running transaction test
! m6 L2 e9 r* I2 }, FTransaction test succeeded
) w9 z6 j! Z- m4 S4 Z( TRunning transaction
1 J) Y$ p. R  E0 I  Installing : epel-release-7-11.noarch                                                                1/1 ) s4 a2 A' t! C& w0 W3 j: q1 R8 T& O4 X
  Verifying  : epel-release-7-11.noarch                                                                1/1 ' H9 J, K4 f( T4 E
; V4 f1 S: y/ t
Installed:
* Y2 [" g: w  L$ t  epel-release.noarch 0:7-11                                                                              
) l0 G/ O5 X+ F7 n
# `0 H% z; R/ H7 i3 O# _Complete!
/ _& q, b, y, S[root@controller ~]# yum install -y lldpd4 j. s- k5 V# D& K
Loaded plugins: fastestmirror
' W! i3 S" s2 p( nLoading mirror speeds from cached hostfile
7 o" x+ |( B: ]. @6 M3 J* J. ]epel/x86_64/metalink                                                                | 5.3 kB  00:00:00     * q) ?& b1 [; m( P" ]$ ^2 i5 c
* base: ftp.sjtu.edu.cn
; @- M( w9 X) R6 ?  q$ E, I * epel: ftp.iij.ad.jp
) z) u( Y  W$ G- ?* h: P8 j) u * extras: ftp.sjtu.edu.cn
: e: ]- w1 i1 X) Y* d& R5 M * updates: ftp.sjtu.edu.cn& K2 q/ o+ p( P7 b
epel                                                                                | 4.7 kB  00:00:00     0 m! Q6 S, `, S, e
(1/3): epel/x86_64/group_gz                                                         |  99 kB  00:00:00     
, W' P6 u- K" I5 U& A* `% }' S8 O(2/3): epel/x86_64/updateinfo                                                       | 1.0 MB  00:00:03     
+ v: r$ N$ R+ e(3/3): epel/x86_64/primary_db                                                       | 7.0 MB  00:00:05     
& \& z/ A3 M/ [' Z' m0 tResolving Dependencies5 ?' B1 r* _: N( B* }' u
--> Running transaction check6 i: P% W) {6 \+ `- Y# }7 O
---> Package lldpd.x86_64 0:1.0.4-1.el7 will be installed
3 ~% u/ A: R( h; b: Y1 O--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: lldpd-1.0.4-1.el7.x86_64) ~6 N3 |# g2 ~! m5 A
--> Processing Dependency: libnetsnmp.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
+ o8 d6 [! r; w. A5 a& D  ]- g2 d--> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64# H: Q0 }* Z: C2 X8 I* g7 Q% z1 D, x6 {
--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_641 p) T% l5 |! N* k; z
--> Processing Dependency: libsensors.so.4()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
' H7 X0 ]1 h  E3 ^--> Running transaction check
7 ]' M8 h, A0 J/ g. S! \0 ]) {% d---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed, W) b3 ~: d0 j9 {7 T. X3 S
---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed& R5 d3 B& G' N) z8 N2 t' w3 i5 F
---> Package net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed9 n: k4 d9 s8 U3 S' h
---> Package net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
- U! p9 J4 `8 D& s  a. z8 k--> Finished Dependency Resolution
$ E4 @6 D1 E2 p* x! J. n. x' J* @$ w% i5 W: _8 w
Dependencies Resolved
6 \7 r* Q' k$ b$ s+ _$ F) b
3 t9 {& N0 F8 q" e8 m===========================================================================================================
# ?& ^. w% e/ U6 l) D+ e. \ Package                     Arch           Version                                  Repository       Size* Q/ Q. y2 Z2 C4 W
===========================================================================================================
2 o; T8 d: t% d* ]1 ?' y7 E0 O+ ]Installing:9 U. T, o3 B; `0 r# _
lldpd                       x86_64         1.0.4-1.el7                              epel            173 k
! e9 X/ }! h& D- wInstalling for dependencies:: Z: K. b; p4 v0 [  `+ [) k
libevent                    x86_64         2.0.21-4.el7                             base            214 k2 |* C, o9 _% H& `1 x. r/ H2 U/ E
lm_sensors-libs             x86_64         3.4.0-8.20160601gitf9185e5.el7           base             42 k# T" p8 E$ L* M! ]$ R
net-snmp-agent-libs         x86_64         1:5.7.2-49.el7_9.2                       updates         707 k) T. {+ S; J) F7 ^3 }
net-snmp-libs               x86_64         1:5.7.2-49.el7_9.2                       updates         752 k$ J' K) b  w& q8 M
( X8 g* t2 a  m0 H5 v
Transaction Summary
/ C5 f0 B  f0 Q$ {1 i===========================================================================================================5 R$ I# L# y$ c2 _
Install  1 Package (+4 Dependent packages)" v# A1 W' d: W- y; m2 q8 s

3 v4 n% q+ U8 qTotal download size: 1.8 M! C# ^0 ^! A! b
Installed size: 6.2 M
( e) d( l4 U2 A( ]" e$ QDownloading packages:& H* ~* a- P7 y) `) d9 a( v7 x8 O3 U" @
(1/5): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                    |  42 kB  00:00:00     
; F( C% v" c. g7 T3 i: r% h6 v  q(2/5): libevent-2.0.21-4.el7.x86_64.rpm                                             | 214 kB  00:00:00     1 p4 R' `  z9 u4 D% e$ `1 d5 I9 \3 V# @
(3/5): net-snmp-libs-5.7.2-49.el7_9.2.x86_64.rpm                                    | 752 kB  00:00:00     
8 s$ W0 J/ R- T5 v: v) {/ ?(4/5): net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64.rpm                              | 707 kB  00:00:00     - o, d% s8 B* d2 `4 A/ {, ~: V
warning: /var/cache/yum/x86_64/7/epel/packages/lldpd-1.0.4-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
3 E& T4 _3 q9 J4 Y4 }, XPublic key for lldpd-1.0.4-1.el7.x86_64.rpm is not installed
! p4 E' c1 e6 |(5/5): lldpd-1.0.4-1.el7.x86_64.rpm                                                 | 173 kB  00:00:03     . l2 S; ^/ q" ]3 x( f
-----------------------------------------------------------------------------------------------------------
6 E! u  \6 `; D: WTotal                                                                      614 kB/s | 1.8 MB  00:00:03     
9 a' m3 I8 V6 E) H) ~Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7* `# P; y3 u2 w$ ]$ ?/ S
Importing GPG key 0x352C64E5:$ P9 A2 `" P1 j4 t
Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
% a4 w; b- i$ C& h  o/ A Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5- R; s4 _  ^/ \
Package    : epel-release-7-11.noarch (@extras)* ]! M. {5 c$ |
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7: u. d! k" e9 V  H7 z' ^" A2 I
Running transaction check
; w( P) i3 q( sRunning transaction test  R) e( ^9 h# c5 q
Transaction test succeeded2 C8 t7 r# r( b" c* m' z
Running transaction
! [* g5 y/ z1 o$ F& D  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   1/5 5 f$ }5 E  C  b# Z* U7 l4 m; v$ p( E
  Installing : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 " P1 U: V! w0 {$ f! O
  Installing : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           3/5
3 K6 |  |0 ?1 _, O1 W, x  Installing : libevent-2.0.21-4.el7.x86_64                                                            4/5
: k- m0 u0 Q9 W  Installing : lldpd-1.0.4-1.el7.x86_64                                                                5/5
  k* M- o; ^8 o. ^8 z  @/ _2 G  Verifying  : lldpd-1.0.4-1.el7.x86_64                                                                1/5
( O. w3 x# m' y1 k  Verifying  : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5
0 q8 w, y+ \- H. O1 t) x  F9 ]  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   3/5 5 O) i8 b( @  @2 f+ y1 q! u
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                            4/5 # M# p/ `9 s# y2 F
  Verifying  : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           5/5 % j4 a: L5 ], B- f; Z) ^3 o) I
8 I1 s/ |6 b, l* D  K* J
Installed:6 ?0 E/ F1 y7 L, F+ _% L
  lldpd.x86_64 0:1.0.4-1.el7                                                                              
6 E7 |  b* a. m: }; q7 \( Z. E$ X. H$ Z( ]4 [
Dependency Installed:3 L- A' s( L, b" E/ }
  libevent.x86_64 0:2.0.21-4.el7                  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7  # p+ J" r% M, g& h# ?) u
  net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2   net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2                  2 y& ~8 z7 [* }8 z
" y6 u+ e2 I) H, X2 a
Complete!, c8 I$ @+ ?" m# \, G
' |$ p- H* b* P$ C* [

1 Z9 l" l% e, Z  _% @启动服务
* r7 W4 E/ @8 O1 D4 [systemctl start lldpd.service0 z" a) b5 I& P: b# _

* ?/ m1 t6 K3 G( r" H[root@controller ~]# lldpcli show neighbors
' O1 x- m6 W1 K3 w0 k/ r) c* `-------------------------------------------------------------------------------
9 x4 g" W2 A# l9 Z, XLLDP neighbors:% a4 a( `  @- L" B" R1 }5 _0 g2 C
-------------------------------------------------------------------------------, d* }8 h0 X" G$ m! \
[root@controller ~]# lldpcli show neighbors
. Z$ i5 {* [- U7 Y7 z' a; n+ r-------------------------------------------------------------------------------9 f$ W8 Y# Q( V/ I7 |. l- C
LLDP neighbors:
* x9 B3 w* ^5 F& z-------------------------------------------------------------------------------, h* q! D' E0 ~. w

' o4 s, r( @6 V/ S0 D$ G* Y2 N3 t: O) C
6 s* t% v% s5 v% S9 v
查看所有端口的本地信息(即使未接线,也会显示)* O# D- w+ q3 k
[root@controller ~]# lldpcli show neighbors ports ens35 summary8 {! l) s$ u  @" w
-------------------------------------------------------------------------------
9 m2 A. t% e4 ~LLDP neighbors:4 N) v: ?1 U7 Q2 x+ o
-------------------------------------------------------------------------------
9 M/ b7 g9 R  _/ }! O! \
! b% ^/ B  ~3 M* C8 p. u5 g4 G% S2 ^, p
[root@controller ~]# lldpcli show interfaces6 l$ v& D$ t9 |
-------------------------------------------------------------------------------/ X" G' G* w! H, V! o5 l
LLDP interfaces:
" k" l3 I' c0 \) S. ?-------------------------------------------------------------------------------
' Y$ g( X! L# P% @. K- P! pInterface:    ens33, via: unknown, Time: 0 day, 00:04:33
7 E  o# t0 x  I9 w' P8 S. Z  Chassis:     : t$ |; D" G4 |! @
    ChassisID:    mac 00:0c:29:c2:76:a6
/ s% Y6 q, M0 i/ t$ Q7 `4 }# S) \    SysName:      controller
# b: a+ R+ y' ^" F) f( G& F4 q) a    SysDescr:     CentOS Linux 7 (Core) Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
4 O/ L! I. {, ~8 E    MgmtIP:       162.96.90.165( J2 x) M7 a) X& A4 m' c, s  |4 _
    MgmtIP:       fe80::20c:29ff:fec2:76a6
4 P; o* i) w- K& I    Capability:   Bridge, off
1 o5 [- y9 w7 W$ V    Capability:   Router, off& h$ q3 Y8 _, d9 Y' Q
    Capability:   Wlan, off
6 t+ V1 S: \9 k2 v4 o) O    Capability:   Station, on$ ^% M3 b; `8 i2 f
  Port:          K; `/ J8 d' s( D
    PortID:       mac 00:0c:29:c2:76:a6
) |* I1 r. m( \! R7 F$ v/ a1 e    PortDescr:    ens33* ^% o  D% U- a3 I) t: Z' z
  TTL:          120; a" g8 Z, }8 i# m2 R
-------------------------------------------------------------------------------# l) d6 C) M4 v% {& g8 A5 w
Interface:    ens34, via: unknown, Time: 0 day, 00:04:33
. E4 u! M3 ~* @9 U( E4 h  Chassis:     : i3 N) k9 d2 J9 N
    ChassisID:    mac 00:0c:29:c2:76:a60 y  N) m, n% h% f2 j
    SysName:      controller" ?/ V+ H: h% z# c8 R7 f
    SysDescr:     CentOS Linux 7 (Core) Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64( e$ A( E% j% x
    MgmtIP:       162.96.90.1654 \* }. N4 c+ A; }; Q
    MgmtIP:       fe80::20c:29ff:fec2:76a69 c9 a9 z( M/ ~5 f9 U" y
    Capability:   Bridge, off
+ w# a1 x) ?; _, `- F) r    Capability:   Router, off
- g0 }% G# J4 O9 q    Capability:   Wlan, off
6 E  y+ ?, @4 d& x# l3 @$ O4 d    Capability:   Station, on! z, k4 G' P1 v$ J# N
  Port:        : j$ }4 ]8 c5 n3 _) z
    PortID:       mac 00:0c:29:c2:76:b0% {4 b6 O! r. t. X0 c
    PortDescr:    ens34
& K- i  `7 K) \( T( d% y! |  TTL:          120  ?: B) U9 x* C$ |4 d7 ]
-------------------------------------------------------------------------------  D" H% {  b2 M+ j! A
Interface:    ens35, via: unknown, Time: 0 day, 00:04:33
8 c' S6 V8 j! E, y  M+ k  Chassis:     5 x; E  z. j0 I! I
    ChassisID:    mac 00:0c:29:c2:76:a66 z8 k* g) }! V* }0 F! n
    SysName:      controller/ y2 ~& E5 U1 ]  j
    SysDescr:     CentOS Linux 7 (Core) Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64/ _& n! ]' c0 u9 ^5 k' O; q
    MgmtIP:       162.96.90.165" l8 u: E& V" n9 p+ K( e
    MgmtIP:       fe80::20c:29ff:fec2:76a64 m" x0 \/ k* t, w& c6 b
    Capability:   Bridge, off( c0 K; l# W- o+ n- h5 Q4 w
    Capability:   Router, off# H7 r6 z% R9 r$ S) j, |+ ^
    Capability:   Wlan, off
, j5 c8 p, N9 m# _9 R    Capability:   Station, on, R) o5 c% ~7 L3 u& h; K
  Port:        6 M3 M3 q  k5 H' B( I- a  w% g/ P' o
    PortID:       mac 00:0c:29:c2:76:ba( V+ `' g, x; o$ c# w. N- f5 v
    PortDescr:    ens353 w8 B$ Q, \" k# V& Z
  TTL:          120
8 y$ b' v0 K* k% _-------------------------------------------------------------------------------, B( z: V  m0 f) T* e# X, P" D( m
4 S, P+ p/ ?- @9 @4 P2 `

  C3 J) Z+ F. |, h1 p! D; U% b4 H3 C, ]+ F* Q3 @8 q! U& f
. j5 g- M) q% w: _# k! p
查看ens35端口的本地信息(即使未接线,也会显示)
  D  n1 j# @2 M) ^/ P9 p( F1 p
; Y  k; d3 d) t) |9 k4 W[root@controller ~]# lldpcli show interfaces ports ens35 summary0 H& Q; c: ]+ p5 w& ?, L
-------------------------------------------------------------------------------6 H6 v. ?. W% z9 ~3 y9 D9 s8 a) }
LLDP interfaces:
/ w- e- E3 S* }  v; L. v" t-------------------------------------------------------------------------------
- r* x( g5 M3 W  [) A3 xInterface:    ens35, via: unknown
! [; |5 w/ D; X. g8 L# e1 x6 ]9 v0 M  Chassis:     
) K8 y. O8 h! M: j    ChassisID:    mac 00:0c:29:c2:76:a68 x* X1 C' V9 \* S0 ]) d: k, T
    SysName:      controller
6 S  t3 l$ ~0 y" O4 H  Port:        
3 U+ x# Y1 K- {. S; O# w! N" y& I    PortID:       mac 00:0c:29:c2:76:ba
1 I* w& W# S7 n3 M    PortDescr:    ens35
% @$ X( n! j9 w' c  TTL:          120& ~7 T9 a( r1 p; j" M" A* i* G
-------------------------------------------------------------------------------
7 w) D4 y, T0 E3 j7 K6 K9 F+ p2 c) Y
! k4 y& B5 b; s* v
7 O5 _  I! |0 h# E' w, G3 a) q$ F6 S2 p3 t6 u# t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:46 , Processed in 0.028427 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表