找回密码
 注册
查看: 413|回复: 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
, d8 o& x& w6 T, N9 D9 JLoaded plugins: fastestmirror" X3 M$ @! X4 Z' b# t" Z! K. |
Loading mirror speeds from cached hostfile. E2 K2 s, X/ y8 |5 c
* base: ftp.sjtu.edu.cn
0 ]% l" t3 _  I& }% d& n * extras: ftp.sjtu.edu.cn
: D' I7 }9 _1 Y' r5 n/ m * updates: ftp.sjtu.edu.cn' |$ R: M4 t+ G2 Z9 H4 P
base                                                                                | 3.6 kB  00:00:00     
$ o0 D1 J- X1 xextras                                                                              | 2.9 kB  00:00:00     ; v! ^( u. K0 v  S
updates                                                                             | 2.9 kB  00:00:00     . w: d2 `2 C0 W8 @5 P# I
(1/2): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     ! \' b' |( u* Y4 U3 }- o
(2/2): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:02     6 k* q% ~9 B9 O4 ^
Resolving Dependencies
# }4 M; Z* U; K6 I--> Running transaction check
) s" n- Y. i# y' y: j) g4 L. X---> Package epel-release.noarch 0:7-11 will be installed& g, O: d* z" C9 B( W
--> Finished Dependency Resolution
+ _) Y$ R+ Z& I0 h5 g3 `  I/ n( }1 J( y- B3 R6 j* N/ T
Dependencies Resolved
( `0 k: ~3 L/ a, N. }- p& H. _2 p5 T3 k3 E
===========================================================================================================0 ~8 }4 v2 ?& j% C7 v- N0 j
Package                       Arch                    Version               Repository               Size  z- h% J1 q& l% C3 I0 S$ y3 a
===========================================================================================================
, ?, c! g5 ]# k, O% k6 z; L) Z6 [8 VInstalling:
" I) U' {8 |( W6 e epel-release                  noarch                  7-11                  extras                   15 k1 u/ x& b. [. I- r3 @4 W* V
* X5 L8 ]* }) Y; [) C
Transaction Summary! l( ]: N% |7 J2 w+ T/ B
===========================================================================================================3 s/ @$ n  L. i
Install  1 Package; W" M) s; g% ?* a2 t! Q
9 Z9 B0 n, W0 y1 ~  L2 ?
Total download size: 15 k
1 Q8 i3 L# D: B3 i$ gInstalled size: 24 k* A9 d$ K! W9 w0 d3 S9 s
Downloading packages:/ r3 p+ t# f" Z, g7 V0 [; U
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
/ f. z& W5 ?7 v; D0 @5 Q5 O: gepel-release-7-11.noarch.rpm                                                        |  15 kB  00:00:00     ' ]1 ^( ^) }+ |) K% h
Running transaction check
! V+ w6 x& K; x7 x& ^Running transaction test' I: n) S0 U; R% }! J% c9 a& J
Transaction test succeeded: E' p0 X9 B4 j+ N* |6 P: G+ [
Running transaction
; L) z7 t5 x5 K+ R2 u  Installing : epel-release-7-11.noarch                                                                1/1 3 ]* S. I" v( ]: O4 q
  Verifying  : epel-release-7-11.noarch                                                                1/1 # X# k. V- h  O9 w# @- `2 G% G
8 i" z$ s; g# I) W6 Z
Installed:
5 [3 W; o7 X$ H# `& k; j  epel-release.noarch 0:7-11                                                                              
5 a. b1 U4 G! J- z7 O% O7 d8 H7 E4 U5 }, L
Complete!6 G# O  S' ]* j: |9 F4 }
[root@controller ~]# yum install -y lldpd9 u8 g1 v7 X" p. Y
Loaded plugins: fastestmirror7 m! N4 F! m0 o- R
Loading mirror speeds from cached hostfile
) |' n" h; E, C+ Mepel/x86_64/metalink                                                                | 5.3 kB  00:00:00     9 X( ?' M& |2 t+ m. }
* base: ftp.sjtu.edu.cn- i( w9 P3 _3 z" I
* epel: ftp.iij.ad.jp4 Q9 u4 R0 y# I1 m
* extras: ftp.sjtu.edu.cn  U% c# j* w8 W/ Y1 X( \: ?
* updates: ftp.sjtu.edu.cn
+ N) P2 E: M$ fepel                                                                                | 4.7 kB  00:00:00     : X9 P1 Z) d5 l
(1/3): epel/x86_64/group_gz                                                         |  99 kB  00:00:00     $ `' j4 V, c) O- E5 U
(2/3): epel/x86_64/updateinfo                                                       | 1.0 MB  00:00:03     ) P" W# S1 G' _& E0 ^+ p2 l/ f
(3/3): epel/x86_64/primary_db                                                       | 7.0 MB  00:00:05     $ k) R" @6 W- V) ~0 r. c$ m1 ^
Resolving Dependencies
9 i0 U' l( Q. A: d7 K, H* |--> Running transaction check3 f: n- R, p% x
---> Package lldpd.x86_64 0:1.0.4-1.el7 will be installed
0 {# A* m% X3 f" K--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: lldpd-1.0.4-1.el7.x86_648 T' D  E4 G/ K( A: Q, `( b
--> Processing Dependency: libnetsnmp.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_644 B" k7 z" J' S3 A; L5 E
--> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_644 W7 J5 u& Z0 z$ u) m
--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
$ n3 P+ V7 z* E  G5 Y2 C/ x4 m* w--> Processing Dependency: libsensors.so.4()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
; K0 A$ n  r* U- M--> Running transaction check
+ q9 N5 e7 ~/ z$ Y( _---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed! J# h& B. f5 Z/ B; ?
---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed
. B2 u0 Z1 X4 M' z9 C; m7 l6 M8 A---> Package net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
7 L2 z2 t* Z! J---> Package net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
- f: h0 X: Z# @5 Z+ V' k--> Finished Dependency Resolution/ F9 m8 ]7 t. p6 ~
4 `/ w+ X- e/ H, ]
Dependencies Resolved
, {5 `; @# A2 c& ]. G2 m0 K. O) I- {% {
===========================================================================================================
4 {, E: w0 d& X/ z6 s' }6 F Package                     Arch           Version                                  Repository       Size
  h( h$ f, }8 \2 p===========================================================================================================
: {& ]: O; X+ A( N* oInstalling:( j/ w- L# D+ c2 B
lldpd                       x86_64         1.0.4-1.el7                              epel            173 k8 b  ~0 S% A2 W; A3 f
Installing for dependencies:
% N* x6 f8 X4 v: t4 f8 @& p libevent                    x86_64         2.0.21-4.el7                             base            214 k
& m( F( g1 C4 `/ T8 p6 }, u* h lm_sensors-libs             x86_64         3.4.0-8.20160601gitf9185e5.el7           base             42 k8 M9 w3 R9 x# a0 Y
net-snmp-agent-libs         x86_64         1:5.7.2-49.el7_9.2                       updates         707 k
- U: M& B. N( D! n' Z& a( k) i, P/ H net-snmp-libs               x86_64         1:5.7.2-49.el7_9.2                       updates         752 k' F+ y; q1 g' g, w9 |

4 Y9 F+ ~- B4 m2 o' l: ~Transaction Summary: f% ]* K1 b- Q1 {! S7 j! b: Z
===========================================================================================================2 @( y) p( J& c
Install  1 Package (+4 Dependent packages)
) |, ?, z/ j5 G
) J1 _0 V" F  ^Total download size: 1.8 M9 R. f) s7 _' m" `" ^4 v
Installed size: 6.2 M
3 K9 C! d, v  }# B! f6 S$ rDownloading packages:
  l5 y" W+ t9 J, I! L4 s(1/5): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                    |  42 kB  00:00:00     9 m' \" r% w: D$ A' W( G2 x# i
(2/5): libevent-2.0.21-4.el7.x86_64.rpm                                             | 214 kB  00:00:00     0 v: g# O% S: w) N* p4 x4 P+ T
(3/5): net-snmp-libs-5.7.2-49.el7_9.2.x86_64.rpm                                    | 752 kB  00:00:00     . \7 V; ~4 b* \- Q; p; x* V. G
(4/5): net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64.rpm                              | 707 kB  00:00:00     " S/ |) X# B. W, |: ?
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 {& F) Q# f+ K5 O# k: a% b! MPublic key for lldpd-1.0.4-1.el7.x86_64.rpm is not installed8 D, i2 L( P/ Z3 W4 |  c
(5/5): lldpd-1.0.4-1.el7.x86_64.rpm                                                 | 173 kB  00:00:03     " t- B" i, v  Z+ f7 I* Y
-----------------------------------------------------------------------------------------------------------) ?; e* |' _8 }! h; f
Total                                                                      614 kB/s | 1.8 MB  00:00:03     
$ Z: Q3 S( Q  @. c7 J- cRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
9 V6 [' ^2 X4 p0 @) i1 TImporting GPG key 0x352C64E5:: U) ]; Z/ ?6 G& P+ N& [+ i$ h7 i
Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
1 B  K2 v/ G, O" a: j Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
5 ^, _  z/ U0 S  X! y Package    : epel-release-7-11.noarch (@extras)( |4 F  U9 \6 A- x! z! a5 |
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
3 A- k2 g7 S0 }% |  PRunning transaction check% c* A# q9 V6 \# m* w" I+ L9 t
Running transaction test! `' p6 v, v: d- H4 N$ c+ U
Transaction test succeeded+ O5 [6 o$ Z; o, ~+ H
Running transaction
$ R  ~; G% p) }' ?- m  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   1/5 , k) ~" V5 ^$ d2 A4 C
  Installing : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 ; B$ X$ v) @# B$ Q9 d
  Installing : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           3/5 - ?; Q# D5 Y. A5 k9 V! b
  Installing : libevent-2.0.21-4.el7.x86_64                                                            4/5 9 b* z! m# D: Z" M4 m
  Installing : lldpd-1.0.4-1.el7.x86_64                                                                5/5
$ n' {7 {4 S- Y$ B& ?  Verifying  : lldpd-1.0.4-1.el7.x86_64                                                                1/5 ( X5 u' G9 z3 G' I" x
  Verifying  : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 : J/ U9 x3 Z6 F0 O# r( \: s2 ^* o
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   3/5 . o+ x8 Y; m2 Z. W# I* W4 U" ?1 G6 }
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                            4/5 . k7 I6 H$ V5 @1 N$ h, _
  Verifying  : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           5/5
  ~  n7 [. m' M; Q, ?1 c# ]( k( M
Installed:
' Y3 e( ~6 [4 Z3 c6 ~, K2 i7 P  lldpd.x86_64 0:1.0.4-1.el7                                                                              
3 t' C6 ?: Q5 {8 ~4 A5 j  D; O# Y( I' ^/ X
Dependency Installed:( o+ X; f5 G0 B4 q$ Q
  libevent.x86_64 0:2.0.21-4.el7                  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7  
$ a% d7 v4 H; g5 E; w+ P  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                  $ w% n0 V2 C5 l4 Z! H2 w
; E; h4 i; ~+ {
Complete!
  H) Z- z. b  J# K1 B
7 D* T; @5 m; ^
. S& q! J+ o& m/ r5 `. |启动服务
2 y; Z$ B. z$ g( ~# msystemctl start lldpd.service
5 ^8 @% _. L! ?- H7 s5 P$ x; ?% y
2 C+ r, d9 b% P" F1 b[root@controller ~]# lldpcli show neighbors# g  W2 A( p2 c/ R9 _) V7 J( l' J# A
-------------------------------------------------------------------------------$ f" a2 \. y3 d6 G8 {+ e
LLDP neighbors:$ N! l" B+ y1 x
-------------------------------------------------------------------------------- W* H5 a7 B- h9 D7 @* d
[root@controller ~]# lldpcli show neighbors
3 Y6 n& J* p- W9 ?5 f-------------------------------------------------------------------------------3 M, J3 M0 Q, ~+ i
LLDP neighbors:
. z7 j# `# c# [9 \4 G-------------------------------------------------------------------------------
' X5 g, Z. g# B# V  ^2 i. i4 U7 \" Y1 {$ D! p" ^
, y/ R* p( i. k+ b' p

) t0 e+ s9 U8 J; ^5 {4 Q6 ]6 l查看所有端口的本地信息(即使未接线,也会显示)$ z: T6 }/ j, F3 f3 a! B
[root@controller ~]# lldpcli show neighbors ports ens35 summary
; I7 `- l1 @/ a9 K8 U' w: }2 z-------------------------------------------------------------------------------
; H5 ]6 e: P, U; PLLDP neighbors:2 v+ I" ], x3 N5 Q6 \, Z, Y( y
-------------------------------------------------------------------------------$ g  c! y' ^5 Q4 l) b- e
8 O) u. }* I! r

& r) ~, n5 H0 Z# l, H5 B6 J+ o[root@controller ~]# lldpcli show interfaces
' ^( U  }5 x8 p' x( D-------------------------------------------------------------------------------
& M" o8 T% I, {; A* W4 S/ z; ~LLDP interfaces:! L) ~$ {) t3 V, ^5 C# g- X1 g, X
-------------------------------------------------------------------------------. w/ [: {+ q7 o% }7 Z$ N
Interface:    ens33, via: unknown, Time: 0 day, 00:04:33& v- T1 f- r( Z) o, ~
  Chassis:     0 `0 o& |$ C+ f7 j5 p, I) q. Z
    ChassisID:    mac 00:0c:29:c2:76:a6) |5 \- J, w$ R) g! }0 Q3 a. J4 x
    SysName:      controller$ k6 l8 O- W( f( m: y  E+ z
    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) O4 Z7 _' w' b" q/ W7 r' N( m
    MgmtIP:       162.96.90.165! p1 ~7 C0 _$ s( t; N
    MgmtIP:       fe80::20c:29ff:fec2:76a6
( j2 }1 L3 M# `, c9 D3 b5 `8 ^    Capability:   Bridge, off% I3 x, D. e& C# Q3 u0 z" V2 k
    Capability:   Router, off/ i! b" t& `7 f8 ]% {; n
    Capability:   Wlan, off) L9 P1 N5 r! |6 c5 H$ q% u. X
    Capability:   Station, on$ ~% d1 B) x) p4 U% g6 l% t4 Y" h
  Port:        
9 l9 |* |( V/ q3 ^# y4 h$ H) q    PortID:       mac 00:0c:29:c2:76:a61 R6 r! W1 f8 c* T- J! p/ n
    PortDescr:    ens33  p/ A( |, H2 R# K
  TTL:          120
$ I/ B+ Y1 I; D8 J  R-------------------------------------------------------------------------------
4 G5 M! Q. N4 w5 G& t/ aInterface:    ens34, via: unknown, Time: 0 day, 00:04:33
; w% m" _* t% w0 R/ [4 k; |% `- f  Chassis:     
% X' k, |( d5 M, k/ ^    ChassisID:    mac 00:0c:29:c2:76:a6
& }6 W" ~. p9 a' M% |0 F1 ?    SysName:      controller" ^+ V' P+ R1 Z$ R7 `  _
    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
; W  N4 A$ [! K* H    MgmtIP:       162.96.90.165
7 e2 R, P3 Y% ]% W* }: y    MgmtIP:       fe80::20c:29ff:fec2:76a6
: I9 h3 t% x4 F( i# P    Capability:   Bridge, off
. X* Y7 n2 `0 k: K7 f' h) o4 g    Capability:   Router, off4 Z2 z: ?0 S8 B2 y6 Y" o# o
    Capability:   Wlan, off
  A* F) k* o  B' ~    Capability:   Station, on
+ o" i+ e* x: @; A7 Z+ }8 h! A; s  Port:        
4 Y1 I$ _5 Z% ?9 h, Y    PortID:       mac 00:0c:29:c2:76:b0
) m, X- I" t4 {4 }0 S# |$ X    PortDescr:    ens349 ], J: ^* g; k' I
  TTL:          120
) {5 B4 I- f% ?; Q1 H-------------------------------------------------------------------------------
5 w$ g3 S, b3 d  l. g5 nInterface:    ens35, via: unknown, Time: 0 day, 00:04:33
/ y: V' K. N7 a5 ]) d2 o  u- Z  Chassis:     5 j0 ~3 _  O7 b+ {
    ChassisID:    mac 00:0c:29:c2:76:a67 v* v4 w/ @( C/ E* T
    SysName:      controller$ j0 w+ Y. Y- S. O, d) P
    SysDescr:     CentOS Linux 7 (Core) Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_645 C7 X- U% v0 h$ D! D
    MgmtIP:       162.96.90.165
* v5 Q9 v. r* i5 [+ ^8 B+ p    MgmtIP:       fe80::20c:29ff:fec2:76a6
9 v/ |3 P3 S) A1 ?  G) t: I    Capability:   Bridge, off
* C. d7 e6 I, ~3 A8 c$ z& ^    Capability:   Router, off
" r% D& [: f0 n4 X1 j0 e! |7 ?    Capability:   Wlan, off
  o" `) o0 N+ Y% j8 c" @" {    Capability:   Station, on
3 Y( C3 K$ X$ Q* @  n  Port:        4 Z7 O4 E9 h% G8 Z' F6 r
    PortID:       mac 00:0c:29:c2:76:ba5 ^/ e$ g5 [) T. c
    PortDescr:    ens35
: @7 a! k% r3 v+ |% p( s  TTL:          120
& r. \8 p8 k0 p2 }: Y& y-------------------------------------------------------------------------------8 \8 O: Y# |3 R3 h# ]

  e& R! Z0 a4 ?. w4 U
" p0 e- R2 f+ ]6 s) @8 ^( q, h1 n. P1 z, l% {

) Z: @. o# g4 R7 L9 z查看ens35端口的本地信息(即使未接线,也会显示)8 Q9 A# i# {4 M9 w: b# ?" ]3 Y

) S$ j- K" U# P1 z3 O5 h" t9 S  r[root@controller ~]# lldpcli show interfaces ports ens35 summary
3 z" m) d. j0 w" d' G-------------------------------------------------------------------------------
5 T1 t. p/ G. N4 W' `LLDP interfaces:8 v$ b# A# D& H5 H# }0 {* j
-------------------------------------------------------------------------------: F/ b7 h# v+ B* K) D8 O
Interface:    ens35, via: unknown5 m: H) Q3 Z3 z7 r  `  m& r( M) a
  Chassis:     7 n& p$ ?$ y. q
    ChassisID:    mac 00:0c:29:c2:76:a6( h' v6 k+ c! k. A, T4 _
    SysName:      controller/ I" B3 J0 t7 N6 [
  Port:        0 T- [- l! P. \
    PortID:       mac 00:0c:29:c2:76:ba& d9 Z. p* l9 l
    PortDescr:    ens35
. }* i# h" d: B0 g3 j3 v+ ^  TTL:          120- s, y( A9 e. a  y
-------------------------------------------------------------------------------6 P( ]' a1 K% E1 t/ q; j
6 J6 o$ f, }. K) M# G; ^* H

# y& o  m! o- U* h7 t" ?& n/ n* U' G4 ^0 A/ `4 g: i; Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:42 , Processed in 0.026557 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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