找回密码
 注册
查看: 419|回复: 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 : _" a2 @# n6 G% l% g7 u+ _0 U9 r
Loaded plugins: fastestmirror
( r- h! R5 b( ^& _6 t) y" ?Loading mirror speeds from cached hostfile, u  s) ~5 s: }1 Q9 N& k  {
* base: ftp.sjtu.edu.cn
9 _, N! M0 W( Y8 s * extras: ftp.sjtu.edu.cn
5 V4 B: U% I+ U! u1 b * updates: ftp.sjtu.edu.cn
9 e+ i# P. t2 T3 [6 pbase                                                                                | 3.6 kB  00:00:00     
% x* W4 a  ~9 N: r: i1 ~* n7 textras                                                                              | 2.9 kB  00:00:00     / V' o, q! E8 g) p
updates                                                                             | 2.9 kB  00:00:00     
' t& x! v* b! U( j(1/2): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     
2 W' @; k" |8 ]8 x; G0 x2 Q0 l(2/2): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:02     " b, T% C3 m) F5 G: S
Resolving Dependencies5 `+ N) S$ B2 @& s# I- d: G
--> Running transaction check+ C( T9 X# l' _2 A! P1 K- d& K$ f
---> Package epel-release.noarch 0:7-11 will be installed. W- g. i# W. w
--> Finished Dependency Resolution
) v" J% l/ X+ z) t) F, l& q" n9 |
; C5 @& _, l, E6 \% i/ yDependencies Resolved
2 |, d, i  Q* O) @
& R: y1 z8 R( l4 w0 u0 I8 H===========================================================================================================
2 x( Y6 M* {! l& N: B Package                       Arch                    Version               Repository               Size0 `4 l7 n' t9 A# F# o4 B
===========================================================================================================/ ^! Q1 `3 t2 ?: F# S
Installing:
% G5 F2 V- H4 g7 R2 Q' \. e epel-release                  noarch                  7-11                  extras                   15 k% U6 n7 V$ P  q" X
) m% }7 p2 B: F$ _9 h
Transaction Summary9 p* g. ^8 }2 Q! r8 I8 g5 @7 Z' x
===========================================================================================================
7 C8 L0 U* Y' U8 nInstall  1 Package) E& {( I# \# f2 h7 P7 c
; o8 c# S1 e, H
Total download size: 15 k- u! x0 H, d: ?5 R3 O% c2 y
Installed size: 24 k) n: {9 o: k; n* m2 ^
Downloading packages:0 d" r- d: D! x8 K. K2 `
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
* k9 F5 W* ?& A( |epel-release-7-11.noarch.rpm                                                        |  15 kB  00:00:00     
. M' \0 I! w: D" s4 hRunning transaction check" y# q  w+ f' f4 X# ]  _' k6 n
Running transaction test, k6 a0 O0 R# o+ @
Transaction test succeeded
- T8 M! D- @% q: r$ R( mRunning transaction3 j) z* O! w. {& B1 f) O
  Installing : epel-release-7-11.noarch                                                                1/1
' `+ B5 h3 r. `  Verifying  : epel-release-7-11.noarch                                                                1/1   j2 l4 O3 C$ t1 N; O
$ p" y7 l$ k* I" {! Y
Installed:
( m8 j1 K& o4 G' G$ s  epel-release.noarch 0:7-11                                                                               ! S3 S& Y( _9 l1 I6 T* @8 F) Z

5 p# ^$ I# [4 ^! j' yComplete!
+ D, E' b2 k9 {. l) m: _, M[root@controller ~]# yum install -y lldpd) @& q( T; A8 n0 _" C: F2 u+ P' {
Loaded plugins: fastestmirror8 v0 f. G0 D; T' Q
Loading mirror speeds from cached hostfile
3 t- j1 ^* J, J. f" bepel/x86_64/metalink                                                                | 5.3 kB  00:00:00     
  r* F1 n' H- i6 L! S. @ * base: ftp.sjtu.edu.cn
6 A$ E+ d3 x5 ^5 E6 c; N * epel: ftp.iij.ad.jp& l2 U) o7 D  @
* extras: ftp.sjtu.edu.cn
8 {" v0 x5 s" @: A4 R * updates: ftp.sjtu.edu.cn! N3 g3 I" p6 W
epel                                                                                | 4.7 kB  00:00:00     
. n4 |4 o5 d/ z. R(1/3): epel/x86_64/group_gz                                                         |  99 kB  00:00:00     
+ i4 I! z& o4 `* k5 u/ S1 q(2/3): epel/x86_64/updateinfo                                                       | 1.0 MB  00:00:03     % s4 a  W. C5 S8 a7 g7 s
(3/3): epel/x86_64/primary_db                                                       | 7.0 MB  00:00:05     
! X' {$ n4 Y0 W& c$ s( Y3 j! ZResolving Dependencies( M. c* j9 \( l  @1 T/ }
--> Running transaction check" k% Z7 `0 T3 F! o% g+ |7 q
---> Package lldpd.x86_64 0:1.0.4-1.el7 will be installed' J( L: f% L; d: S$ _
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: lldpd-1.0.4-1.el7.x86_640 H5 n6 K- l5 l# [' G/ h
--> Processing Dependency: libnetsnmp.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
4 R1 V1 G* R* p8 X--> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
7 f/ o7 s) T, d$ D2 E7 d1 }0 ~--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64/ V6 L5 R' b6 h% y# L; ^% V
--> Processing Dependency: libsensors.so.4()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
& b9 N' Y4 e% }8 n5 L- h--> Running transaction check
& @* `" x" r# ?( j9 a; ^" ?---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
! z7 C% r9 i  ~4 }. R2 g---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed
9 e2 X2 x/ g4 q% i+ z$ H, d---> Package net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
4 d) Z3 V3 S. `$ e---> Package net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
( ?' k/ \8 U1 x% R- V2 h9 M7 R, q--> Finished Dependency Resolution
/ h) |* h7 j3 k) x5 q" X
. J5 `5 @) }) q* ]5 r+ sDependencies Resolved1 c# n. z' F* y
: N; h5 ~: R, d9 t* V" ~
===========================================================================================================
4 E0 m% l1 f9 k2 |' m4 R Package                     Arch           Version                                  Repository       Size
+ W* N( {( K2 m& i$ L% W===========================================================================================================
# B# \: g0 k  K7 Z7 @Installing:
, n( l0 {3 l, H2 o8 l8 d lldpd                       x86_64         1.0.4-1.el7                              epel            173 k) q, ^) n/ v: P8 K' b
Installing for dependencies:2 Y% U: d' X; |, ?
libevent                    x86_64         2.0.21-4.el7                             base            214 k6 m3 y6 x7 J" h+ L+ x2 W
lm_sensors-libs             x86_64         3.4.0-8.20160601gitf9185e5.el7           base             42 k
* ]  }, d! H7 `. {# S. c9 v+ D% ^ net-snmp-agent-libs         x86_64         1:5.7.2-49.el7_9.2                       updates         707 k) W  o: p( ~% P( w4 k
net-snmp-libs               x86_64         1:5.7.2-49.el7_9.2                       updates         752 k7 l! z( `2 K# J- L- x( s
3 |, P  {) w# s
Transaction Summary
- s( u, Y: q' \- Q$ o$ w  k; K0 ?! G===========================================================================================================
& i0 L( G" C$ v9 }8 V) k( oInstall  1 Package (+4 Dependent packages)
+ L( @4 A2 Y; _' i1 U7 n  [$ J+ ~' Y1 i
Total download size: 1.8 M; _* {: u" C5 o" \# r2 z" j
Installed size: 6.2 M
+ K; i4 B3 W$ n5 v# S5 y' _% \Downloading packages:
6 N5 ~9 M3 W9 i(1/5): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                    |  42 kB  00:00:00     
+ Z' |! m# ?2 o(2/5): libevent-2.0.21-4.el7.x86_64.rpm                                             | 214 kB  00:00:00     
. @6 M8 G0 H4 N* }" e* K% T: l0 ^" h(3/5): net-snmp-libs-5.7.2-49.el7_9.2.x86_64.rpm                                    | 752 kB  00:00:00     
# [+ @4 g6 r% T! @* Q(4/5): net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64.rpm                              | 707 kB  00:00:00     
4 ?% ^( v; \; M' rwarning: /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) J% {/ Y% ]# J4 V" U- k
Public key for lldpd-1.0.4-1.el7.x86_64.rpm is not installed* q8 _; a/ V! L5 P. k
(5/5): lldpd-1.0.4-1.el7.x86_64.rpm                                                 | 173 kB  00:00:03     " T3 K2 E3 O  F9 i
-----------------------------------------------------------------------------------------------------------* d: b1 m* T5 T2 Y( L! G  `
Total                                                                      614 kB/s | 1.8 MB  00:00:03     - [4 d9 F" F( Q) p- C  t
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
$ X  y" j4 E/ W! U/ fImporting GPG key 0x352C64E5:. G: B: Z' B) r9 e7 [
Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"! Z1 ]7 }4 M5 G( r0 @
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e50 u' f, f9 |- Q6 X2 k. o
Package    : epel-release-7-11.noarch (@extras)( l0 u7 Q) P' a6 @/ k
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-73 J& l2 c; D4 f$ t
Running transaction check' V4 ~( k$ L, h, a: m" j) U
Running transaction test
% e% F# u$ i  CTransaction test succeeded
: W( k$ O; g! a5 QRunning transaction* T. D/ Z& v4 [* }8 O
  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   1/5
. Z2 E; M7 e; b  b" c* {  Installing : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5
# X% p' t  U0 S+ X) A# J6 A  Installing : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           3/5
" r* _+ l: _/ K- J" V1 t3 A  Installing : libevent-2.0.21-4.el7.x86_64                                                            4/5 ) K! a8 V  [- w0 j+ @
  Installing : lldpd-1.0.4-1.el7.x86_64                                                                5/5 # E# S* _5 f* r& F) ~% Y
  Verifying  : lldpd-1.0.4-1.el7.x86_64                                                                1/5 ' W/ y6 W- {: ^( L
  Verifying  : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 ) J* x9 X6 j  l+ g+ g7 R1 [) `
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   3/5 / E  E2 \7 h. A: c- ^' N- ^" V1 }
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                            4/5 & l) h$ ^- E- m. F7 d
  Verifying  : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           5/5   A( k. L; W$ T5 C/ P

, r- f/ R- V& g& t: xInstalled:3 j. _2 j& Q. d# k; ~
  lldpd.x86_64 0:1.0.4-1.el7                                                                              
7 u; R3 F2 v# t0 C- V, d6 S+ G% Q4 h- S
Dependency Installed:% b" \* ^' _1 y# _
  libevent.x86_64 0:2.0.21-4.el7                  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7  
. w- Y3 s2 U9 F7 P- C6 J  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                  * Z: m2 i1 `" k% m! p; N# S! B  N

' |; N+ d; i. q7 g' ?; lComplete!
( ?7 z$ G) n! ~
7 ~2 X$ E  Y7 g7 H; J, i, w  ?2 \3 s/ `+ h. K1 m$ C: c
启动服务  O  j+ W1 d4 W) \. m' \
systemctl start lldpd.service' k% J+ k! C8 S, ~
! j, L6 e  p# S) q! b" F
[root@controller ~]# lldpcli show neighbors
9 a0 b6 w" {% m9 f* K% \% N-------------------------------------------------------------------------------
; N3 s8 h/ Q. {! U" |LLDP neighbors:" D) U8 y* o# Z" D/ @3 G
-------------------------------------------------------------------------------
+ g2 W1 P: I2 R( U4 K4 g[root@controller ~]# lldpcli show neighbors% ^9 P( q& }7 P" O' ?3 ~) E
-------------------------------------------------------------------------------6 d, R. i4 J$ }7 d8 {+ p
LLDP neighbors:$ R- m7 ]! E/ L4 X4 j6 ~; ]
-------------------------------------------------------------------------------
  u' ~& R  n6 s! i! @% q* K' s: I1 |% e4 G* a* |$ ^! c4 x

1 W5 G7 i0 M  _
0 d5 D" h1 O8 {9 m查看所有端口的本地信息(即使未接线,也会显示)1 S" M& U5 a9 n
[root@controller ~]# lldpcli show neighbors ports ens35 summary
. h8 ^/ g9 Z; ^/ R+ V& @-------------------------------------------------------------------------------
- T3 s1 |* S; V! _- R6 E' TLLDP neighbors:. T$ P" P+ A. r# t+ \
-------------------------------------------------------------------------------9 M6 o( R5 h4 W" S
8 c7 F# O9 z% C1 G  S0 o$ I4 n
+ Z9 v$ w6 q# Z/ q2 g
[root@controller ~]# lldpcli show interfaces
' X' |1 C" J) `. V2 o# q2 \. X-------------------------------------------------------------------------------! S; i+ }: P" B: Z8 h
LLDP interfaces:
0 O3 |! q- k+ s5 B( r-------------------------------------------------------------------------------
% H. O  M! }% c; D7 z- P! K  b4 wInterface:    ens33, via: unknown, Time: 0 day, 00:04:33# l, p) l) d% W) `0 G
  Chassis:     % i# ?: B' y$ B6 w1 p
    ChassisID:    mac 00:0c:29:c2:76:a6
* K' b6 a6 w+ l$ F2 e& D/ M    SysName:      controller
& c9 W3 P' W: u' L- I/ B/ g" R# R    SysDescr:     CentOS Linux 7 (Core) Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_642 D; d4 ?3 n, K! D7 `
    MgmtIP:       162.96.90.1655 _3 a1 t4 c# o* `8 k( H# B
    MgmtIP:       fe80::20c:29ff:fec2:76a62 y. ~' T5 D0 K/ e  Z% ^! R- s
    Capability:   Bridge, off
2 Z# @" a0 ]% o1 K4 c4 v; i& M    Capability:   Router, off6 \5 s* r3 R: f9 K  k+ u
    Capability:   Wlan, off
: o% m. T( l# C% r- S: y    Capability:   Station, on. g3 C& E. G# `$ ?' j) I
  Port:        
& _# t5 P' D0 F9 O7 n9 c4 \! A$ a5 k    PortID:       mac 00:0c:29:c2:76:a6
% i9 X) \. \) {    PortDescr:    ens33
( S. c, P# f# x) V0 D  TTL:          120
1 L7 |4 k( j0 c. o' F-------------------------------------------------------------------------------
; B5 a$ A4 G0 `$ fInterface:    ens34, via: unknown, Time: 0 day, 00:04:33
# h! j8 |# O9 y) P  Chassis:     * O" n. z7 _+ ]% ~9 ^5 W, o7 M
    ChassisID:    mac 00:0c:29:c2:76:a6. H/ t! k, [: g1 G$ h* R$ F
    SysName:      controller  v1 Y9 q( P: U6 |5 V
    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
7 l. }0 c; f& F/ t0 h    MgmtIP:       162.96.90.165
4 ]5 O* }3 ]1 D/ F! ~& d    MgmtIP:       fe80::20c:29ff:fec2:76a6, Q* w8 ?; q& N/ Y* T$ A$ a
    Capability:   Bridge, off0 u) B! O$ V, H" ~
    Capability:   Router, off% F! Q+ k- m) ~; b  ~, m" Z* e
    Capability:   Wlan, off- S7 L* U- r' I$ Z' T% s& S
    Capability:   Station, on2 a9 |5 t4 u+ i1 F+ K$ T
  Port:        
- n" o' q: I* G, M    PortID:       mac 00:0c:29:c2:76:b0
, m& a# W! O8 w/ d% W    PortDescr:    ens34
# J, b- U$ W5 V" l, u6 N  TTL:          120
) z+ _5 w4 Y  }* x-------------------------------------------------------------------------------! @2 r" b/ V2 E# M3 o# ~
Interface:    ens35, via: unknown, Time: 0 day, 00:04:33" D7 A( w$ }0 c% I0 V# S( M4 a( o
  Chassis:     
! [* B. h) v2 I9 Z    ChassisID:    mac 00:0c:29:c2:76:a6
1 Z8 I8 N7 M) Q3 N# x0 y" q* y    SysName:      controller
4 v4 Q( y. `- H7 z& A7 b2 S    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
% R1 p( C3 @! W5 i+ f! h9 K    MgmtIP:       162.96.90.1650 ]1 x' K# G6 U% Q$ e% n- T2 p* g
    MgmtIP:       fe80::20c:29ff:fec2:76a6. f. m  Q# O7 h) I" K
    Capability:   Bridge, off
* C( P5 c: Q, G0 J  S: p    Capability:   Router, off, t. C7 j" `- L2 K9 }- a( K- }" U
    Capability:   Wlan, off
/ g( G) l/ d7 n" X" r    Capability:   Station, on: x9 i: P6 d# S$ z* ?
  Port:        5 r& ^1 u7 J3 H4 ^
    PortID:       mac 00:0c:29:c2:76:ba
9 W! ~6 B/ @$ z5 P! u' U    PortDescr:    ens350 x" x/ n" Y2 x) C( _9 \
  TTL:          120; _8 J' J& C& z3 F5 `- I3 P
-------------------------------------------------------------------------------' s3 K3 S0 A9 |, u, }6 n
/ b, ^. h: _9 ?- Y9 F4 A
) d2 ]& c6 v/ E3 S: o% o5 I1 ?2 u- X

% I& T' A! p% Q0 ]8 j1 N3 M, F' `! h# j1 D) R4 b4 w
查看ens35端口的本地信息(即使未接线,也会显示)1 t) D$ b9 t: x; E8 h& W: v
! b$ N! L% k! J$ P
[root@controller ~]# lldpcli show interfaces ports ens35 summary* F) w1 p! L/ H( `' B9 V2 N+ s
-------------------------------------------------------------------------------( R+ q3 M* C3 [
LLDP interfaces:4 C& Z5 C- p* T1 [5 N4 b6 u2 g
-------------------------------------------------------------------------------
' ~9 R3 q* D7 _" sInterface:    ens35, via: unknown
+ `. T/ v6 M& b* Y: c: Z& N% j  Chassis:     2 U# E/ \8 i: N, H
    ChassisID:    mac 00:0c:29:c2:76:a6
4 }0 H  V6 Z# q0 U$ K. H' N    SysName:      controller
: K" d0 q6 o% w# B$ u: |- }7 L1 ~  Port:        3 b0 c0 ]0 g+ I( l
    PortID:       mac 00:0c:29:c2:76:ba
% i6 J6 B2 T) R! o+ T, C3 s; m    PortDescr:    ens35
$ R/ r% d& _: Y4 p) O. a- j( I$ K8 Y% J  TTL:          1200 ]6 C( ^9 S% [2 Z. W5 y4 A
-------------------------------------------------------------------------------* {# c% ~& B+ h, K! C- M

8 G" s7 L* H" ^/ B1 p% U! Y5 ~
1 Q, V6 T2 u4 A1 }: o  f! n) k$ Q# o& Z3 [1 T5 e5 Y5 r, ^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:05 , Processed in 0.015115 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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