Existe algo como lsblk para interfaces de rede?

10

Existe um comando Linux que visualiza as interfaces de rede configuradas em uma exibição em árvore, assim como lsblkocorre com os dispositivos de bloco?

A saída de um programa desse tipo poderia, por exemplo, ter esta aparência (abordagem de baixo para cima):

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 esta (abordagem de cima para baixo):

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

Nota: Não estou procurando uma ferramenta que produza exatamente essa saída, mas pergunto se alguém conhece um comando com um resultado semelhante.

jlauinger
fonte
você tentou ip addr??
Sidahmed 31/12/16
Sim, mas ip addrretorna uma lista simples de interfaces de rede, e não uma visão hierárquica de árvore
jlauinger

Respostas:

5

Eu procurei uma opção nos utilitários existentes, mas não encontrei nenhuma. No entanto, a funcionalidade desejada é útil do meu ponto de vista. Então, eu fiz um script simples do bash que analisa o ip link showcomando e imprime algo semelhante à saída desejada na pergunta:

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

Enviei o script para o github: https://github.com/zabojcampula/show-net-devices-tree

Zaboj Campula
fonte