¿Hay algo como lsblk para las interfaces de red?

10

¿Existe un comando de Linux que visualice las interfaces de red configuradas en una vista de árbol, al igual que lo lsblkhace para dispositivos de bloque?

El resultado de dicho programa podría, por ejemplo, verse así (enfoque de abajo hacia arriba):

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

o esto (enfoque de arriba hacia abajo):

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

Nota: no busco una herramienta que produzca este resultado exacto, sino que pregunto si alguien conoce un comando con un resultado similar.

jlauinger
fuente
intentaste ip addr??
Sidahmed
Sí, pero ip addrdevuelve una lista plana de interfaces de red, no una vista de árbol jerárquico
jlauinger

Respuestas:

5

He buscado una opción en las utilidades existentes pero no he encontrado ninguna. Sin embargo, la funcionalidad deseada es útil desde mi punto de vista. Así que hice un script bash simple que analiza el ip link showcomando e imprime algo similar al resultado deseado en la pregunta:

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

Empujé el script a github: https://github.com/zabojcampula/show-net-devices-tree

Zaboj Campula
fuente