Linuxネットワークデバイスの論理タイプを確認する方法

Linuxネットワークデバイスの論理タイプを確認する方法

論理とは、コマンドで合法的なすべてを意味します ip link。たとえば、次のようになります。

ip link add link dum0 name dum0.200 type vlan protocol 802.1Q id 200

論理タイプは「vlan」です。マニュアルページを引用すると、すべての有効なタイプは次のとおりです。

vlan|vis|vcan|dummy|ifb|macvlan|macvtap|can|bridge|ipoib|ip6tnl|ipip|sit| vxlan|gre|gretap|ip6gre|ip6gretap|ip6gretap|watt

これは明らかに必要な物理デバイスタイプではありません(イーサネット、Wi-Fi、pppなど)。この問題、実際にはリファレンスジュエリー私がテストした物理学の種類は次のとおりです。

find /sys/class/net ! -type d | xargs --max-args=1 realpath | 
  while read d; do 
    b=$(basename $d) ; n=$(find $d -name type) ; echo -n $b' ' ; cat $n;
 done
dum0.200 1
dum0.201 1
dum1.300 1
dum1.301 1
dummy0 1
ens36 1
ens33 1
lo 772
dum0 1
dum1 1
wlan0 1

ただし、仮想、VLAN、およびWlanデバイスはすべてARPHRD_ETHERタイプであることがわかりました。

もっと知っている人はいますか?よろしくお願いします。

====

2023年に改定予定

これは、2つの物理イーサネットインターフェイス、Wi-Fi、インストールされているが無効になっているドッカー、2つのネットワーク、2つの仮想マシン、およびWirguard接続を持つlibvirtを搭載したシステムに由来します。 jqはstedolan.github.io/jqで提供されており、通常は良いパッケージマネージャと一緒にインストールされます。

$ ip -details -j l | jq -r '.[]|"\(.ifname), \(.link_type), \(.linkinfo.info_data.type), \(.linkinfo.info_kind), \(.linkinfo.info_slave_kind)"' | column -t -s ','
lo                loopback   null   null        null
enp43s0           ether      null   null        null
enx00e04c680049   ether      null   null        null
wlp0s20f3         ether      null   null        null
virbr2            ether      null   bridge      null
virbr1            ether      null   bridge      null
docker0           ether      null   bridge      null
vnet0             ether      tap    tun         bridge
vnet1             ether      tap    tun         bridge
vnet2             ether      tap    tun         bridge
vnet3             ether      tap    tun         bridge
wg0               none       null   wireguard   null
$

ベストアンサー1

より簡単な解決策:

ip -details link show

仮想デバイスの場合、デバイスタイプは3行目に表示されます。

おすすめ記事