|
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
|