易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 410|回复: 0
收起左侧

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

[复制链接]
发表于 2023-3-17 20:55:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
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 1 V& ~! v3 ?( `& u
Loaded plugins: fastestmirror7 ^. Y( ^* O0 I6 r8 n
Loading mirror speeds from cached hostfile0 z5 k8 x; c8 E# `6 v4 u/ U7 `/ `
* base: ftp.sjtu.edu.cn
. d4 Q7 `/ X. G4 O4 Y8 M% c * extras: ftp.sjtu.edu.cn3 m- E& ?6 d# l% U( L; r
* updates: ftp.sjtu.edu.cn$ a5 X1 v& q; B- R' o
base                                                                                | 3.6 kB  00:00:00     / ]; |  u- I+ Z( K& M) ^
extras                                                                              | 2.9 kB  00:00:00     
& w7 z8 X! g7 M) b# Gupdates                                                                             | 2.9 kB  00:00:00     
2 U7 t$ V7 \' N: j0 ]6 P8 G* [(1/2): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     ; n% N; N7 h& i$ A, N2 ~
(2/2): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:02     - W5 U; q/ k* `( x# I) k
Resolving Dependencies$ I+ K. t$ \9 ]2 \$ K  b& z
--> Running transaction check5 I  {# W3 g5 b. E0 t
---> Package epel-release.noarch 0:7-11 will be installed
2 h" I2 A% S# }--> Finished Dependency Resolution
) _( D! P: I9 n  B. i5 G) I
; N$ z9 ^2 I* q) `' X  xDependencies Resolved
5 D! o% e) y2 z  h# ~: N) j8 D. T
===========================================================================================================0 q( a$ b7 j" `" D( R& C
Package                       Arch                    Version               Repository               Size
& N) @& L  j0 v% j' B2 G2 A===========================================================================================================7 [) n6 Z  w5 H  l, L
Installing:6 N" ?2 C5 W7 \% ~/ o3 k% a& M3 i
epel-release                  noarch                  7-11                  extras                   15 k
$ p' `. [1 Z6 _8 O
6 Q+ Z0 y( R7 S& B# ~Transaction Summary
4 f% Y3 k! M  P; K$ j3 B3 d===========================================================================================================
/ {3 j7 z; n7 v/ S$ d# G8 wInstall  1 Package
& z' g! j* ]7 v' h  ?* V  j" j- b& o& m* U6 h6 d+ U
Total download size: 15 k* ~0 m: @- R8 [( m* h- i
Installed size: 24 k
& I! P4 O! h7 \( C: U/ G! FDownloading packages:
& i  p- ^1 I7 EDelta RPMs disabled because /usr/bin/applydeltarpm not installed.# r6 w' G1 L% @- E; V
epel-release-7-11.noarch.rpm                                                        |  15 kB  00:00:00     
7 ]4 l0 ^4 C! w. q/ rRunning transaction check
  @9 V# ^; g2 O6 jRunning transaction test6 r$ U& x$ \# t* ^3 }) @* }
Transaction test succeeded
' f0 u8 q0 C, wRunning transaction" s0 P: O: i/ x1 o2 Q5 C" S- T9 k
  Installing : epel-release-7-11.noarch                                                                1/1
- V* q2 o3 v( g  Verifying  : epel-release-7-11.noarch                                                                1/1
/ V; w# V* i" \/ H) D
* T) u8 `( d; bInstalled:8 h4 O/ h7 _, p; m. @
  epel-release.noarch 0:7-11                                                                              
4 U" K. n8 l( v3 P
/ d: s4 t8 M$ L) W! kComplete!
# e* H& ]9 O2 M9 Q9 u[root@controller ~]# yum install -y lldpd" r6 [/ m5 k; A( w" L, a/ ?
Loaded plugins: fastestmirror- m( E' i* e, ~4 l8 y5 \
Loading mirror speeds from cached hostfile/ J" T/ M6 P2 _% |3 r5 l4 p
epel/x86_64/metalink                                                                | 5.3 kB  00:00:00     
' A5 O5 Q$ e! Q, x" J! o * base: ftp.sjtu.edu.cn
% W- m0 P% G+ z. J& T * epel: ftp.iij.ad.jp2 @  ~) m/ t) @0 h" }1 h
* extras: ftp.sjtu.edu.cn- b1 w  N1 V2 s( [3 M; e" a0 N! a- C
* updates: ftp.sjtu.edu.cn
) K; V& F" N8 _epel                                                                                | 4.7 kB  00:00:00     
# |5 A: n' d& z* Q1 l+ P(1/3): epel/x86_64/group_gz                                                         |  99 kB  00:00:00     
6 r* E& Z/ R4 G) b9 T(2/3): epel/x86_64/updateinfo                                                       | 1.0 MB  00:00:03     . ^6 |3 n3 i. c' v) A
(3/3): epel/x86_64/primary_db                                                       | 7.0 MB  00:00:05     
* W( }) [  \6 e' k0 \$ V# XResolving Dependencies
. W% t; J; o% u  Z--> Running transaction check
$ d+ n" ~8 h$ t& [---> Package lldpd.x86_64 0:1.0.4-1.el7 will be installed. a  N/ l+ H) L( E) \' _) e# F
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: lldpd-1.0.4-1.el7.x86_645 {# X* [7 N* D6 b; R# x1 V' \
--> Processing Dependency: libnetsnmp.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
" c! Y: n$ J: J: O" q--> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64" H9 v$ ^: O( y/ E. O" W- B
--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
0 h9 i( V; }/ @8 _2 U--> Processing Dependency: libsensors.so.4()(64bit) for package: lldpd-1.0.4-1.el7.x86_643 u) h2 _& f  u: a6 u
--> Running transaction check0 J1 l! p/ b( d6 G( T7 i' t4 g
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
  l7 B* W. `  Q---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed
; o0 n/ L% [  w, T5 r2 m---> Package net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed1 Q7 O$ Z6 S8 c6 b; P& H4 M& p3 T
---> Package net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed: p2 x( K/ Y: l) S6 ?
--> Finished Dependency Resolution
1 w( {. R3 e; J1 }5 R& b" [3 K, }* F# I1 `- ~7 p' H
Dependencies Resolved
, ]& x6 s2 a0 O: d! x  n& U- t9 x! N& o) j4 W. b
===========================================================================================================
5 a. ~& Q- c9 `+ b$ w Package                     Arch           Version                                  Repository       Size
. f/ I, n- X9 X" c+ f: X+ |===========================================================================================================/ V. L- Y: ]% k# d: @# I
Installing:8 P; b+ K- b4 G/ L0 x
lldpd                       x86_64         1.0.4-1.el7                              epel            173 k
" ~: g8 V" b' l* I  l- DInstalling for dependencies:
- I1 ]2 _+ u2 W" ~ libevent                    x86_64         2.0.21-4.el7                             base            214 k
  g$ i) Q: _5 Z lm_sensors-libs             x86_64         3.4.0-8.20160601gitf9185e5.el7           base             42 k" J4 R( w; ]& x* I& O* f7 c2 e# t
net-snmp-agent-libs         x86_64         1:5.7.2-49.el7_9.2                       updates         707 k
4 c6 [! z2 K- ^) S" f net-snmp-libs               x86_64         1:5.7.2-49.el7_9.2                       updates         752 k
4 b! {! a  J/ q: q9 e0 ?
/ {0 T* p1 \/ z) ]6 j% b6 I/ B- _Transaction Summary
" m7 @" n  L7 H) I* i; l===========================================================================================================- @  h; Z; ^7 c" r
Install  1 Package (+4 Dependent packages)+ V* F2 `3 x9 `; [: R
5 Y1 A( G- V* ~: |3 y6 f
Total download size: 1.8 M9 b- n0 T" }$ h" [1 \
Installed size: 6.2 M1 m; ?+ S7 `' f
Downloading packages:
* ^( j$ X; w6 Z5 ^2 f1 x; m(1/5): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                    |  42 kB  00:00:00     
! @2 m0 r6 f( y# Q- v6 I7 H9 ](2/5): libevent-2.0.21-4.el7.x86_64.rpm                                             | 214 kB  00:00:00     1 ^/ {2 C) `9 B1 P
(3/5): net-snmp-libs-5.7.2-49.el7_9.2.x86_64.rpm                                    | 752 kB  00:00:00     1 m8 D! D  v  o
(4/5): net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64.rpm                              | 707 kB  00:00:00     , e1 ^, a* d  s/ e7 o  Y
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: NOKEY8 Z5 ]  s4 u) |$ k) d! o3 r
Public key for lldpd-1.0.4-1.el7.x86_64.rpm is not installed
% B) }1 T3 K0 S, ^' m7 l$ ?(5/5): lldpd-1.0.4-1.el7.x86_64.rpm                                                 | 173 kB  00:00:03     1 s' _" H- }* y$ x. S. F/ ]
-----------------------------------------------------------------------------------------------------------* w2 B7 a  V# t. n+ s7 d- O
Total                                                                      614 kB/s | 1.8 MB  00:00:03     
# A! t" w+ u# y6 b; ]6 `, ARetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
7 ]9 |, ?4 \; cImporting GPG key 0x352C64E5:
, N' X3 \7 H$ w/ [+ U* v) M( f0 n Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"5 O+ e! Q4 z& J* C$ F
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
% L# J  [+ b( Z9 N5 { Package    : epel-release-7-11.noarch (@extras): k) Y$ Z! M: k# {7 [% D- n
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7/ w/ I$ @( O2 V1 P; q% {# _
Running transaction check
# k7 e! {. x# P! n; Y) K+ ZRunning transaction test& U8 P; }% Z# N  d' P2 e: j) L: G
Transaction test succeeded0 _$ s& X' w9 ^* ]% a; R1 v- G
Running transaction7 i' A$ Z7 j2 x) |7 y- X
  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   1/5 6 W( D" R: k( \  M7 |2 W
  Installing : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 9 [8 n  r' V: [$ |1 z" f) F
  Installing : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           3/5 # H- ?9 B: u& k3 R6 Y- w7 j
  Installing : libevent-2.0.21-4.el7.x86_64                                                            4/5
- A0 Y+ V6 H* A0 \: Z  Installing : lldpd-1.0.4-1.el7.x86_64                                                                5/5
% f" r4 i% b/ S- G) P  Verifying  : lldpd-1.0.4-1.el7.x86_64                                                                1/5 2 c" @, i7 A5 @0 S  O
  Verifying  : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5
+ a6 j3 ^3 O2 Q  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   3/5 3 |- K! Y3 X+ I5 P6 x: V
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                            4/5
9 s( Q- Z( y6 C1 f, F$ \; R# ?  Verifying  : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           5/5 1 }, J! c3 }# i) D+ C) J

& u: H+ J: z& e3 y+ [Installed:( W% e: P/ P1 y9 ]# V
  lldpd.x86_64 0:1.0.4-1.el7                                                                              
: @& n3 n4 D9 p- V
) x% E' v, W! A) KDependency Installed:
3 j4 e8 \- z/ s  _  libevent.x86_64 0:2.0.21-4.el7                  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7  
7 o% ~. A, T1 Y+ q9 _/ 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                  5 [3 s8 S1 {& i

, O. e# _5 g( G: x+ y" Z: O; YComplete!
# `+ U; `! W  c$ I( a5 ^7 v3 m  T, u+ C" `
" o' R) X; U: }
启动服务
; S% z/ S! j5 N# h& Wsystemctl start lldpd.service
2 b3 {: j  W% e6 L  l; k; V" m6 s1 p9 D! E% |
[root@controller ~]# lldpcli show neighbors
, l& m2 t7 ^, v+ x2 ~! _  C! N. z-------------------------------------------------------------------------------' T* n( Q, G! C4 d/ D% R
LLDP neighbors:
) t8 R9 Y3 @+ s-------------------------------------------------------------------------------5 N' m3 f3 }- |
[root@controller ~]# lldpcli show neighbors
6 ^$ F7 m( f) G7 q- Y* U; R-------------------------------------------------------------------------------" K1 k9 k2 w+ O6 _7 P
LLDP neighbors:
( ^4 j8 y. A- y8 U+ H/ A-------------------------------------------------------------------------------& ]2 g9 G& ^9 i2 Q8 z* K) ?

( z; O! |# {3 [7 W& h9 |: i" d4 t  C! z1 C! U) _" b1 \
* K- r# u; k, G4 L! H
查看所有端口的本地信息(即使未接线,也会显示)
, j4 M6 G7 y" N  g) D) i& d+ G[root@controller ~]# lldpcli show neighbors ports ens35 summary
' v# e" V- `. P3 @9 i+ w-------------------------------------------------------------------------------; L- t- q0 A8 o; R3 A* _% G7 X+ j
LLDP neighbors:
3 M9 D3 n% {7 y' J-------------------------------------------------------------------------------$ g! J. U: k7 l
. [4 n5 c3 \4 g) X" a9 E5 m
7 n$ ]- N6 J4 J9 |: q4 N. t7 H) N
[root@controller ~]# lldpcli show interfaces2 W' H+ W! I: @0 A
-------------------------------------------------------------------------------
; K1 @1 T% v% Y8 f3 mLLDP interfaces:# w% x. r* U# l5 k5 q: U' r: ~& Q
-------------------------------------------------------------------------------
+ e4 f$ f) F0 N0 B, _# FInterface:    ens33, via: unknown, Time: 0 day, 00:04:33
8 q$ J2 r9 S  o; h! L! S  Chassis:     - G2 M- I" r$ u5 @
    ChassisID:    mac 00:0c:29:c2:76:a6
) o/ U2 D. Z0 K/ J6 Y5 L9 l    SysName:      controller9 W* o* z9 k0 U) r& [' K- r5 {$ u! `
    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
$ p8 q4 h" o$ s# z; I( U4 t    MgmtIP:       162.96.90.165$ @2 Q5 O/ L- l
    MgmtIP:       fe80::20c:29ff:fec2:76a6
$ i$ E2 `) g- C+ k    Capability:   Bridge, off1 N# _' n* Z4 }# k
    Capability:   Router, off" l2 B- [7 m; k* N* j6 w
    Capability:   Wlan, off
4 R3 l7 |' v0 g. \8 V' t9 A) {    Capability:   Station, on. ]# \  @5 M- X
  Port:        
) }9 w8 f$ `/ Q9 X    PortID:       mac 00:0c:29:c2:76:a6
5 S" ]: K% ^- D: Y9 |1 m. i    PortDescr:    ens33/ d2 t* x; r, |' M: G  _" \
  TTL:          120$ z$ w/ b5 v8 N+ J7 y8 t
-------------------------------------------------------------------------------1 b) Q0 s: I# z& x( }0 H1 D& [' M
Interface:    ens34, via: unknown, Time: 0 day, 00:04:33
! y6 A  {+ i& {& x9 x5 r" t  Chassis:     7 x7 v4 d! _* \0 s; p, F! w3 y
    ChassisID:    mac 00:0c:29:c2:76:a6' [: }' ~) ]; [. D  _& \+ X
    SysName:      controller1 C9 b; V6 p; W4 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
! H% b0 `& i7 [& w    MgmtIP:       162.96.90.165
( s8 b2 K; N) f2 X: J: U$ F+ M    MgmtIP:       fe80::20c:29ff:fec2:76a6/ P' y; K, ]! {% S
    Capability:   Bridge, off
$ a: r/ J! H# u; ]7 O4 J9 k    Capability:   Router, off+ p3 v1 j1 H2 U! g2 k+ @: _' }
    Capability:   Wlan, off
: v. e5 I5 a) y  |3 a, k    Capability:   Station, on
5 N7 m$ ~8 Q0 C( s3 C! ^2 }  Port:        - R9 A3 o% Z" j
    PortID:       mac 00:0c:29:c2:76:b0
* w* O9 Y8 T/ f" C3 s, P    PortDescr:    ens34* k) c$ l, Y  i
  TTL:          120
& ~6 _' j5 I) L* x-------------------------------------------------------------------------------6 s8 M: b0 Y! I" l( O
Interface:    ens35, via: unknown, Time: 0 day, 00:04:33" P# F2 W7 ?0 s8 O+ C1 B
  Chassis:     
. T  u4 M5 f# i, o: n' T8 H    ChassisID:    mac 00:0c:29:c2:76:a6; h! J! H! F% _* j- P* Q
    SysName:      controller
5 M4 V" B" B' x$ N& 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_64
( O  L7 A: z$ ?0 l! C( O$ V$ O    MgmtIP:       162.96.90.1652 Z5 }( s' _, D& @3 b
    MgmtIP:       fe80::20c:29ff:fec2:76a6; P8 n5 k3 ?0 K
    Capability:   Bridge, off
; l" ?; D8 G! x" b/ M. d' Q' b    Capability:   Router, off
4 ^) v. {9 b5 T) @. T' Z    Capability:   Wlan, off; p: C8 y" {% H6 B
    Capability:   Station, on
) W8 ?% B# Q2 ?$ a; @: H7 U  Port:        ) w3 ?7 P) ]2 X2 i6 X
    PortID:       mac 00:0c:29:c2:76:ba" b, P; M8 @7 O% a& r6 @& e
    PortDescr:    ens358 \% n3 F' Z, ?) \
  TTL:          120
6 D" @& w( y7 S9 V7 i-------------------------------------------------------------------------------6 X" M/ |) e0 b* X/ P- G

9 _& i6 Y- H( u1 n! O% J, l' w- W- Z: e; ?( X
  C$ l. I8 w' S: y" M% Y; T5 U
  c# O3 ]7 M' D. V
查看ens35端口的本地信息(即使未接线,也会显示)1 {( U2 q' W2 u! `4 r; T6 U3 j6 Y

; M) F# E0 P  ]  N; A/ z, d[root@controller ~]# lldpcli show interfaces ports ens35 summary
! G; x( P2 c3 z, A$ V-------------------------------------------------------------------------------, v# p7 u; a: j& T' Q2 T+ x4 ?
LLDP interfaces:
2 Y5 Q' @# v8 H4 c/ k! B4 |9 G7 ~-------------------------------------------------------------------------------  b% u0 p  v& ?: o* C
Interface:    ens35, via: unknown& Z* J( a( M) R$ S' u
  Chassis:     ! B. r+ g8 o7 x3 B' o2 K( t+ Y
    ChassisID:    mac 00:0c:29:c2:76:a6
* |7 L4 ~. J+ ?3 c, {: b6 P    SysName:      controller
$ Z1 n4 R* @. @% Z% d  Port:        . ]; Q* `  @# I* U* Y/ t( U+ \
    PortID:       mac 00:0c:29:c2:76:ba
- c' q- g4 B/ f    PortDescr:    ens35
2 u8 O0 D$ G% q  TTL:          120/ X: h+ J7 i) r- J% h
-------------------------------------------------------------------------------2 f0 r- P0 C& r; T
* R! F. h1 i* n$ i3 G, k
+ S1 G6 x& j! E8 n

7 v  [( a2 T, d
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:59 , Processed in 0.427340 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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