/sys/class/net/ を使用した物理ネットワークデバイスの識別

/sys/class/net/ を使用した物理ネットワークデバイスの識別

物理ネットワークデバイスと仮想ネットワークデバイスを区別する方法があるかどうか疑問に思います。ip a選択の余地がない。だから私はそれに取り組んでいます/sys/class/net/<iface>。 2つの属性とタイプがありますが、addr_assign_typeそのタイプは仮想かどうかを示すことができるか、決定できませんEthernetloopback

addr_assign_type私たちは違うのだろうか?

私の観察によると/sys/class/net/<iface>/{eth|loopback}やり取り0する。/sys/class/net/<iface>/{virtualdevice}1 or 3

これから何かを推論できますか?

ベストアンサー1

を実行すると、ethtool -i <network interface>物理インターフェイスにbus-info:適切なハードウェアデバイスを識別する行が必要です。仮想デバイスの場合はbus-info:空です。

/sysベース識別の場合は、次のことができます。

if readlink /sys/class/net/$IFACE | grep -q /virtual/
then
    echo "$IFACE is virtual"
else
    echo "$IFACE is physical"
fi 

おすすめ記事