Gibt es so etwas wie lsblk für Netzwerkschnittstellen?

10

Gibt es einen Linux-Befehl, der konfigurierte Netzwerkschnittstellen in einer Baumansicht visualisiert, genau wie lsblkbei Blockgeräten?

Die Ausgabe eines solchen Programms könnte beispielsweise so aussehen (Bottom-up-Ansatz):

eth0   
└─bond0
  ├─bond0.42
  │ └─br42
  └─bond0.43
    └─br43
eth1
└─bond0
  ├─bond0.42
  │ └─br42
  └─bond0.43
    └─br43
tap100i0
└─br42
tap100i1
└─br43
tap101i0
└─br42
tap101i1
└─br43

oder dies (Top-Down-Ansatz):

br42
├─bond0.42
│ └─bond0
│   ├─eth0
│   └─eth1
├─tap100i0
└─tap101i0
br43
├─bond0.43
│ └─bond0
│   ├─eth0
│   └─eth1
├─tap100i1
└─tap101i1

Hinweis: Ich suche kein Tool, das genau diese Ausgabe erzeugt, sondern frage, ob jemand einen Befehl mit einem ähnlichen Ergebnis kennt.

Jlauinger
quelle
hast du es versucht ip addr??
Sidahmed
ja, gibt aber ip addreine flache Liste von Netzwerkschnittstellen zurück, keine hierarchische Baumansicht
jlauinger

Antworten:

5

Ich habe in vorhandenen Dienstprogrammen nach einer Option gesucht, aber keine gefunden. Trotzdem ist die gewünschte Funktionalität aus meiner Sicht nützlich. Also habe ich ein einfaches Bash-Skript erstellt, das den ip link showBefehl analysiert und etwas druckt, das der gewünschten Ausgabe in der Frage ähnelt:

$ ./nettree.sh -u
eth3
    bond1
       bond0
eth2
    bond0
eth1
    bond0
eth0
lupen3
    bond1
       bond0
lo
lxcbr0
virbr0
veth6404e35
    docker0

Ich habe das Skript an github gesendet: https://github.com/zabojcampula/show-net-devices-tree

Zaboj Campula
quelle