네트워크 인터페이스에 대해 lsblk와 유사한 것이 있습니까?

네트워크 인터페이스에 대해 lsblk와 유사한 것이 있습니까?

lsblk블록 장치 처럼 구성된 네트워크 인터페이스를 트리 보기로 시각화하는 Linux 명령이 있습니까 ?

예를 들어, 그러한 프로그램의 출력은 다음과 같을 수 있습니다(상향식 접근 방식).

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

또는 다음과 같습니다(하향식 접근 방식).

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

참고: 저는 정확한 출력을 생성하는 도구를 찾는 것이 아니라 비슷한 결과를 내는 명령을 아는 사람이 있는지 묻고 싶습니다.

답변1

기존 유틸리티에서 옵션을 검색했지만 아무것도 찾지 못했습니다. 그래도 내 관점에서는 필수 기능이 유용하다고 생각한다. 그래서 ip link show명령을 구문 분석하고 질문에서 원하는 출력과 유사한 내용을 인쇄하기 위해 간단한 bash 스크립트를 만들었습니다 .

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

스크립트를 github에 푸시했습니다.https://github.com/zabojcampula/show-net-devices-tree

답변2

찾았어요기존에 허용된 답변나는 수년 동안 이 문제를 직접 사용해 왔습니다.

최근에 VLAN 장치 계층 구조, PPPoE 및 기타 사항을 감지하기 위해 약간 업데이트/조정하는 것을 발견했습니다. 그러면 기본적으로 완전히다시 써봐.

AA와 달리 계층 구조를 구축하기 위해 /sys/class/net/아래 및 아래의 파일/폴더를 검사합니다./proc/net/

출력 형식은 tree, utf및 입니다 graphviz. 또한 다음 옵션을 사용하여 -s원격 SSH 호스트를 쿼리합니다 .

$ ./nettree.sh 
meshif
└── bat0
    └── vswitch
        ├── hmv
        │   └── home
        └── iso
wlp2s0

$ ./nettree.sh -d -l
wlp2s0
home ━┓
      ┗━ hmv ━┓
              ┗━ vswitch ━┓
                          ┗━ bat0 ━┓
                                   ┗━ meshif
iso ━┓
     ┗━ vswitch ━┓
                 ┗━ bat0 ━┓
                          ┗━ meshif

$ ./nettree.sh -d -G
graph iftree {
  "wlp2s0"[label="wlp1s0", class="wireless"];
  "switch"[label="switch", class="switch"];
  "hmv"[label="homev", class="virtual"];
  "bat0"[label="bat0", class="virtual"];
  "home"[label="home", class="bond"];
  "iso"[label="iso", class="virtual"];
  "meshif"[label="usbxg2a", class="wireless"];
  "home" -- "hmv"[label=""];
  "hmv" -- "vswitch"[label=""];
  "iso" -- "vswitch"[label=""];
  "vswitch" -- "bat0"[label=""];
  "bat0" -- "meshif"[label=""];
}

관련 정보