物理ネットワークデバイスと仮想ネットワークデバイスを区別する方法があるかどうか疑問に思います。ip a
選択の余地がない。だから私はそれに取り組んでいます/sys/class/net/<iface>
。 2つの属性とタイプがありますが、addr_assign_type
そのタイプは仮想かどうかを示すことができるか、決定できませんEthernet
。loopback
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
答え2
すべてkernel.orgのsysfs-class-netページ:
What: /sys/class/net/<iface>/addr_assign_type
Date: July 2010
KernelVersion: 3.2
Contact: [email protected]
Description:
Indicates the address assignment type. Possible values are:
== ============================
0 permanent address
1 randomly generated
2 stolen from another device
3 set (by) dev_set_mac_address
== ============================