Existe-t-il quelque chose comme lsblk pour les interfaces réseau?

10

Existe-t-il une commande Linux qui visualise les interfaces réseau configurées dans une arborescence, tout comme lsblkpour les périphériques blocs?

Le résultat d'un tel programme pourrait par exemple ressembler à ceci (approche ascendante):

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

ou ceci (approche descendante):

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

Remarque: je ne cherche pas un outil qui produit cette sortie exacte, mais je demande plutôt si quelqu'un connaît une commande avec un résultat similaire.

jlauinger
la source
as-tu essayé ip addr??
Sidahmed
oui, mais ip addrrenvoie une liste plate d'interfaces réseau, pas une vue arborescente hiérarchique
jlauinger

Réponses:

5

J'ai recherché une option dans les utilitaires existants mais je n'en ai pas trouvé. Néanmoins, la fonctionnalité souhaitée est utile de mon point de vue. J'ai donc fait un simple script bash qui analyse la ip link showcommande et imprime quelque chose de similaire à la sortie souhaitée dans la question:

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

J'ai poussé le script vers github: https://github.com/zabojcampula/show-net-devices-tree

Zaboj Campula
la source