Existe algo como o lsblk para interfaces de rede?

9

Existe um comando do Linux que visualiza as interfaces de rede configuradas em uma visualização em árvore, assim como lsblk faz para dispositivos de bloco?

A saída desse programa poderia, por exemplo, ser assim (abordagem bottom-up):

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

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

Nota: Eu não estou procurando por uma ferramenta que produza essa saída exata, mas sim perguntando se alguém conhece um comando com um resultado similar.

    
por jlauinger 07.12.2016 / 19:51

1 resposta

4

Eu pesquisei uma opção em utilitários existentes, mas não encontrei nenhum. No entanto, a funcionalidade desejada é útil do meu ponto de vista. Então, eu fiz um script bash simples que analisa o comando ip link show 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

Eu enviei o script para o github: link

    
por 25.01.2017 / 11:40