易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 409|回复: 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 ' P& O. }4 }( i) T2 Q! J# C8 @
Loaded plugins: fastestmirror3 L/ ?# ]) j  f0 x
Loading mirror speeds from cached hostfile
! t- H* z3 g% v' S1 C, N * base: ftp.sjtu.edu.cn% |* b- G( C/ h
* extras: ftp.sjtu.edu.cn4 v% `$ j! a( k) I$ a" }) \) @2 I, Q
* updates: ftp.sjtu.edu.cn$ P; w7 q8 f5 K, `% N, R7 U
base                                                                                | 3.6 kB  00:00:00     
; j) h! }+ |- Zextras                                                                              | 2.9 kB  00:00:00     
, h6 M! J3 w' b6 M6 F" K: a/ f! Zupdates                                                                             | 2.9 kB  00:00:00     ! Z+ }  j6 u; r9 \4 w8 ]. k
(1/2): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     
! ^6 f# v; o) a3 |" N! _: E(2/2): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:02     
" _, @/ |1 a  H2 KResolving Dependencies- l/ B8 I6 T; ?6 N# u6 \
--> Running transaction check
+ }7 B, a+ H! @) Z' _3 K- n) t& [---> Package epel-release.noarch 0:7-11 will be installed3 g7 A# v7 s6 ?* |- H
--> Finished Dependency Resolution2 C: V8 u8 H/ A) n! y8 I. J
9 h/ h; a  K: I+ h- P( u
Dependencies Resolved& b& `  e, C, \9 }/ B% X7 \& V) y2 Z

& `. \7 {# _' o  j$ x===========================================================================================================
( Z- O# s  {& v1 R: B9 [8 y Package                       Arch                    Version               Repository               Size
7 d, a# D$ k) p  w) Q9 N: c===========================================================================================================
5 D! G6 B+ m' a# _; L5 q$ }/ P  r9 OInstalling:1 u4 X7 J4 v, m; d- r
epel-release                  noarch                  7-11                  extras                   15 k( o0 f, T6 w. \6 D

9 d, W8 M0 y9 @- M6 [4 J3 ]Transaction Summary
7 M1 H$ R7 I- `3 x1 l# Z===========================================================================================================
& D3 j. {. \5 d) h- x& C1 Z5 BInstall  1 Package
9 ^. S. {2 L9 j) i: W# N& L* M1 V" V
Total download size: 15 k+ Q5 V9 H. o, F/ A8 T3 Z& P
Installed size: 24 k
. b+ I' ^# O+ z9 f# gDownloading packages:
' q, x: f9 g% T4 ^# L& V" bDelta RPMs disabled because /usr/bin/applydeltarpm not installed.# {$ v! _4 o6 o6 M; Y  W% i3 C3 J$ u
epel-release-7-11.noarch.rpm                                                        |  15 kB  00:00:00     
- y/ V; U) @7 J  X) ORunning transaction check
7 [" |; M% c$ ~% y# F4 w7 SRunning transaction test! k# U' P1 ]/ o8 d' t
Transaction test succeeded! C& U, v1 [8 o9 t
Running transaction
, t; c6 l$ N1 ^  G  Installing : epel-release-7-11.noarch                                                                1/1 3 @' S0 _' w$ R! g& w0 M. ?8 q
  Verifying  : epel-release-7-11.noarch                                                                1/1
* u% Z2 A# h7 @
+ ~; t; E0 ?# p5 @4 ?- GInstalled:) D) {0 {1 o7 Q# C6 ]
  epel-release.noarch 0:7-11                                                                              
7 Y" Z, ^0 d* _+ m& J
( z3 n. j* s0 V3 iComplete!
& B: u$ g/ Q' v, _9 A[root@controller ~]# yum install -y lldpd
# Q1 `2 _! x/ u6 ]2 JLoaded plugins: fastestmirror( q4 s6 H3 y4 j' N$ z
Loading mirror speeds from cached hostfile
" C0 U  p& h) \+ C4 s, Vepel/x86_64/metalink                                                                | 5.3 kB  00:00:00     ' q9 f/ m8 D0 X
* base: ftp.sjtu.edu.cn
5 C2 ]  i1 \% [' }% O; h: K * epel: ftp.iij.ad.jp) W1 x) u- L  A1 j0 O' n  \
* extras: ftp.sjtu.edu.cn& J! T1 v( S# F4 g; v
* updates: ftp.sjtu.edu.cn
* ?- t2 x: x+ iepel                                                                                | 4.7 kB  00:00:00     
; d- a) o* C- P(1/3): epel/x86_64/group_gz                                                         |  99 kB  00:00:00     , Y6 A0 K: d/ t
(2/3): epel/x86_64/updateinfo                                                       | 1.0 MB  00:00:03     
- s' T1 `  q# e+ k( Z( L$ O5 m* e(3/3): epel/x86_64/primary_db                                                       | 7.0 MB  00:00:05     ; Q4 p4 _6 r, T+ `+ a! @
Resolving Dependencies3 S# b+ K, A$ @7 `. o/ r6 k
--> Running transaction check. r! M' B# s; k* D# _
---> Package lldpd.x86_64 0:1.0.4-1.el7 will be installed
2 E9 }$ i( a% |1 _6 h" C--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
- {4 ~+ [! W' c  Z% T--> Processing Dependency: libnetsnmp.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_641 m7 m. u: Y3 y) f/ G6 M0 q, |
--> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
) e0 n; S4 ~1 u' D7 v--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
, s6 N- e0 c6 m--> Processing Dependency: libsensors.so.4()(64bit) for package: lldpd-1.0.4-1.el7.x86_64
+ g. t% x: i# x: [% d7 r--> Running transaction check( Z1 e0 a  P1 Q: }; F9 l) d
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
" h4 O! ^: t, {( a* J& ?---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed
+ {' N' o6 ~, F0 S1 n! v& Z! B---> Package net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed
& k' P* V# p5 q$ [+ e: a---> Package net-snmp-libs.x86_64 1:5.7.2-49.el7_9.2 will be installed, e' K, e$ c  `  y! V: M
--> Finished Dependency Resolution
1 A' i5 z; e5 p$ l7 U$ c2 l
. M; o% _, f7 o# k, M5 eDependencies Resolved5 F$ u4 O  `" g+ T* F# C( E2 F
7 n. a- B! C9 E/ P1 ~+ Z% Q
===========================================================================================================: L. q1 \2 I& }0 z! N( m. E
Package                     Arch           Version                                  Repository       Size
- D9 V. G" S, y) S- b6 w6 k===========================================================================================================; z! s2 Y5 I1 E7 T
Installing:
* H1 I& J( M% w0 d& c lldpd                       x86_64         1.0.4-1.el7                              epel            173 k) d1 H" s, G1 E5 _
Installing for dependencies:
2 V6 [- F& N, B: @) C9 C9 L  j libevent                    x86_64         2.0.21-4.el7                             base            214 k
  S& M4 _4 _# i8 l lm_sensors-libs             x86_64         3.4.0-8.20160601gitf9185e5.el7           base             42 k" ?# S+ `& E  m8 c1 P1 X
net-snmp-agent-libs         x86_64         1:5.7.2-49.el7_9.2                       updates         707 k
, |4 O  g) q4 x& m9 Q3 u net-snmp-libs               x86_64         1:5.7.2-49.el7_9.2                       updates         752 k, U$ [' I* U, V! |" x$ I# ^2 T

0 ~* x, X; N8 u! D$ ]$ [$ pTransaction Summary2 l2 a0 e' P% c3 f
===========================================================================================================9 b* G+ N2 `3 F& x1 Y
Install  1 Package (+4 Dependent packages)- l  W3 o) G6 F5 }' k
8 T: z; h1 x8 c5 m4 u1 t8 s
Total download size: 1.8 M
* p+ X- l" F3 V( ?1 j* l6 l! V1 ZInstalled size: 6.2 M
" ]! x: x% ^, Q* X, E, RDownloading packages:
! D  K8 J7 i. R+ v2 o1 ?(1/5): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                    |  42 kB  00:00:00     8 T& W3 {. r% p* s  u! V$ w; m
(2/5): libevent-2.0.21-4.el7.x86_64.rpm                                             | 214 kB  00:00:00       X4 ]* w- A! o  i
(3/5): net-snmp-libs-5.7.2-49.el7_9.2.x86_64.rpm                                    | 752 kB  00:00:00     
  `6 q0 Q/ ]! ~9 I+ @- N) V8 ](4/5): net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64.rpm                              | 707 kB  00:00:00     * T, _, I3 @  a/ i
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: NOKEY0 v! v" c6 ^, q' d! F2 S0 `1 C# J8 r
Public key for lldpd-1.0.4-1.el7.x86_64.rpm is not installed
6 J6 q) Q3 `. E( h- U(5/5): lldpd-1.0.4-1.el7.x86_64.rpm                                                 | 173 kB  00:00:03     
! I4 d# T* W7 Y4 w2 M2 S-----------------------------------------------------------------------------------------------------------
+ x' K: ~0 p6 t7 `& QTotal                                                                      614 kB/s | 1.8 MB  00:00:03     
; V9 K3 ]( W5 TRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7' d2 {4 I4 g5 @* `9 @
Importing GPG key 0x352C64E5:9 U: J, z+ ]) t/ R) t
Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"4 Z0 I# O& }, q, Y$ a7 v6 d! K
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5$ k- O3 @( Q5 Y$ B( ?  N7 x
Package    : epel-release-7-11.noarch (@extras)
6 L4 A5 G% k+ O! A From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
: O' o; z8 R7 }/ }Running transaction check
2 E! g9 M; m4 sRunning transaction test
; e$ z. A% U2 A- l4 M% p& k% dTransaction test succeeded
7 F2 M8 S: I- PRunning transaction
% w: G5 y6 ?" y2 d0 `& {  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   1/5
+ x/ A8 L; V% [  Installing : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5
* _. s5 z2 n+ b& m, @  Installing : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           3/5
8 U9 ?9 t  R4 |8 _- ]; Z5 @  Installing : libevent-2.0.21-4.el7.x86_64                                                            4/5
) D& K# M- \0 A# a: g2 c  Installing : lldpd-1.0.4-1.el7.x86_64                                                                5/5 " v1 h; T* g5 I+ ]" \
  Verifying  : lldpd-1.0.4-1.el7.x86_64                                                                1/5 8 F; X+ D- B7 i9 Q4 r
  Verifying  : 1:net-snmp-libs-5.7.2-49.el7_9.2.x86_64                                                 2/5 : ]* L0 \2 c9 o# H( A
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                   3/5
/ H/ a; m  A% X/ j  Verifying  : libevent-2.0.21-4.el7.x86_64                                                            4/5 ) A+ h7 S* w+ \- A6 h, u0 O; A
  Verifying  : 1:net-snmp-agent-libs-5.7.2-49.el7_9.2.x86_64                                           5/5 ( v) D6 C4 ~" t; k
5 y. c2 [7 @% \  x! A- r
Installed:2 M& d: x, j* @$ e
  lldpd.x86_64 0:1.0.4-1.el7                                                                               / }$ o3 V$ j  z

, J% A2 V5 F" t1 gDependency Installed:
: A) y! b$ j  [- `  libevent.x86_64 0:2.0.21-4.el7                  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7  
) z- ~# F, d3 g5 ~% C+ c  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 H  }, Z, M9 d) q2 i
  L* `' u8 }% v: ^) D
Complete!" d, I/ q4 I$ N  `% ~1 W6 j
( v5 C. b5 F: V; @6 w
/ O* c3 ^8 @& `9 r' x5 y
启动服务
- a; E: R  b, U' `systemctl start lldpd.service
; I9 v& u; m! k+ l
( L- W  d' t: I[root@controller ~]# lldpcli show neighbors
/ \4 w( l( z) i- x$ S3 ?2 h-------------------------------------------------------------------------------& _+ B9 g: a% V- a, a1 R' T
LLDP neighbors:
" m, b9 H7 }$ n/ Y6 a( Y. P1 t-------------------------------------------------------------------------------7 f) [  z0 q$ Z  ^9 }9 J
[root@controller ~]# lldpcli show neighbors
* G; G( a4 X! L9 s-------------------------------------------------------------------------------
9 G# j% F8 |  KLLDP neighbors:
* d, H" [6 l" C+ b-------------------------------------------------------------------------------
$ S, V8 R% M+ f8 u" `6 x, N" D# _. v; @* d9 h# _
4 t  {& h7 N: s/ v# a! N
( S5 F. K6 W# N4 |0 _- i% g
查看所有端口的本地信息(即使未接线,也会显示)
! p  }+ ?9 D! w: x4 D! O  k- o[root@controller ~]# lldpcli show neighbors ports ens35 summary
; k( T- B/ m. s" A  {; s& s-------------------------------------------------------------------------------) s1 i2 H6 y! ^2 ~) r, y8 {; L6 p, G
LLDP neighbors:9 Z; [% a; ^( ]0 |' d2 w) j3 G
-------------------------------------------------------------------------------
6 K; m" t% H- h  ?$ N: W( m' d
/ u' W+ V& M2 L" Y: ~- P* W: N' F- |: Z7 R0 Z7 {
[root@controller ~]# lldpcli show interfaces
# V  `, h* T& |; Q; w5 W( O-------------------------------------------------------------------------------
: u! f3 P# E( D5 X, A3 I, Z  dLLDP interfaces:
0 J- b# j; o9 |1 R& C! O-------------------------------------------------------------------------------' |% w  ~, S! v2 {
Interface:    ens33, via: unknown, Time: 0 day, 00:04:33
' b$ M8 [* }4 v# f) Y2 |  Chassis:     
- f+ _3 j! m+ e2 }. K    ChassisID:    mac 00:0c:29:c2:76:a6) D2 b( b: d+ X+ ~5 ?
    SysName:      controller  p5 w: q+ B- S( Y7 v9 Q
    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
; |8 c7 T" z3 _5 q    MgmtIP:       162.96.90.1652 u& \7 e, d- y* i: T8 V8 B
    MgmtIP:       fe80::20c:29ff:fec2:76a6
) [! q% P& z' V4 P& F" d0 H4 U    Capability:   Bridge, off5 r6 p0 C  B/ ^) }5 L& D
    Capability:   Router, off
, r8 c9 _1 t7 i: m    Capability:   Wlan, off, o3 R! q1 A. m& t* q" P: }
    Capability:   Station, on! X6 {2 ]9 _' w% r8 n  p! Y, z7 J
  Port:        ) a$ \0 U6 s# N6 x, s5 Z5 ^
    PortID:       mac 00:0c:29:c2:76:a6# l( s, L( t1 y
    PortDescr:    ens33
1 ^& A& i& z9 e: G2 R  TTL:          120% G) t! C1 }, B
-------------------------------------------------------------------------------# a  w3 ]' k! H0 S+ Y! Z
Interface:    ens34, via: unknown, Time: 0 day, 00:04:33
$ C7 x- c' b6 }# u. U. B7 l" u  Chassis:     - R& I' q: F8 ?% T
    ChassisID:    mac 00:0c:29:c2:76:a62 j* E: {9 j7 g$ A
    SysName:      controller. C1 n) a1 b% V6 t$ \
    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 z$ m! B' W# K- a/ |    MgmtIP:       162.96.90.1650 o3 y: s4 C' R' Q, o
    MgmtIP:       fe80::20c:29ff:fec2:76a69 `" z; I: `  c0 O
    Capability:   Bridge, off
. T) F1 M! }" W( f    Capability:   Router, off
6 Q# ?' w) W0 h# _! |1 V    Capability:   Wlan, off
, B" q" Z( t2 v8 ~    Capability:   Station, on
* |2 g# A" o4 P3 ~  Port:        
5 @& n; y4 E) ^2 L    PortID:       mac 00:0c:29:c2:76:b0
8 N/ f" h; N/ e4 _# Z, H& \" E    PortDescr:    ens34: Q- ]. O, I1 P+ ^4 o( ^, V
  TTL:          120- Y) i! A$ x0 E: t8 [
-------------------------------------------------------------------------------. v* G9 F$ t- z
Interface:    ens35, via: unknown, Time: 0 day, 00:04:33! A/ A% L9 W: Z" ^9 u
  Chassis:     / n1 C* H# V9 r; X5 J
    ChassisID:    mac 00:0c:29:c2:76:a68 [+ A6 Z$ R  Y
    SysName:      controller8 m! a# }( {) a# m5 O1 F. N
    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 E% Y2 j' E1 i2 @0 M2 A! a
    MgmtIP:       162.96.90.1656 S  w$ q+ i) }( F- J2 E0 h
    MgmtIP:       fe80::20c:29ff:fec2:76a6
' F" a0 B% a5 s" q6 {9 z9 j' T    Capability:   Bridge, off
/ v* [! K8 Z+ E  j) q$ @    Capability:   Router, off- ~* e) d1 W% j; N/ r# B1 P( P! v
    Capability:   Wlan, off
, I4 a- X# P9 E8 I/ y5 [" u    Capability:   Station, on. `3 j2 N" ?# Y% c4 G
  Port:        2 h2 \& x, P) n
    PortID:       mac 00:0c:29:c2:76:ba, S& h- H% K9 u0 j/ }4 t
    PortDescr:    ens35
+ F3 H& [( |2 Y5 t. X! t/ @  TTL:          1201 q# T1 M( r" W3 a% E7 F
-------------------------------------------------------------------------------
" _0 I# i4 g7 s# `" ^" j; u7 j0 p
# s1 u( y0 e' O" b2 [

( X7 r0 R' u! v# o- H' m4 q. X2 Z( u9 e% Y
查看ens35端口的本地信息(即使未接线,也会显示)
5 t  Q* L1 V. m
6 D, V( O0 A1 E6 T9 a7 E/ ][root@controller ~]# lldpcli show interfaces ports ens35 summary8 k1 g, {7 v: F* L
-------------------------------------------------------------------------------* a$ i7 p6 K2 k" A0 b- Z- H
LLDP interfaces:
) Q2 V% X7 |$ L0 D. j) ?" v1 F2 r-------------------------------------------------------------------------------
# w$ X' J8 v6 KInterface:    ens35, via: unknown( h) n5 U  Y# ?4 C( R: p
  Chassis:     
: L8 T4 ]$ \+ M: n" {8 w) ?5 o5 z; W    ChassisID:    mac 00:0c:29:c2:76:a6
. `. w3 T4 N# M    SysName:      controller
' g2 \: B# A3 q7 s7 r& W  Port:        
& B6 o# P$ m4 Z$ U    PortID:       mac 00:0c:29:c2:76:ba
9 N4 K' L% m$ n& E    PortDescr:    ens35  C: ~/ P9 ~2 W
  TTL:          120+ T& R1 E- a8 H, i; D0 D
-------------------------------------------------------------------------------
3 L/ C* F4 g/ E8 d% o# W' d* L& N
9 c+ F7 h- Z7 X, L3 W* ?# L- E; M% K: A& E, [2 ]
# _2 J8 Z$ ~6 D$ k0 ?( k  f1 [
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-8 21:37 , Processed in 0.051258 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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