sysfs/procfs の情報を使用して、仮想ネットワークインターフェイスの背後にあるカーネルモジュールを見つけます。

sysfs/procfs の情報を使用して、仮想ネットワークインターフェイスの背後にあるカーネルモジュールを見つけます。

仮想ネットワークインタフェースの背後にあるカーネルモジュールを探したいです(例えばveth、、、dummyいいえ物理ネットワークカード)。それは簡単ですethtool

$ ethtool -i ltp_ns_veth2 |grep driver
driver: veth

しかし、私はそれに依存したくありません。物理ネットワークカード用のモジュールを見つけることができることを知っています。

$ basename $(readlink -f /sys/class/net/eth0/device/driver/module)
e1000

deviceただし、フォルダへのリンクがないため、仮想デバイスでは機能しません。

/sys外部ツールが不要なので、解析で情報を得ることができればと思います。

答え1

dmesg | grep ethこれは、インターフェイス名にethが含まれていることがわかっている場合に機能します。

[root@psybox ~]# dmesg | grep -i eth
[    2.009028] vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps

2番目はドライバーを示しています。vmxnet3

答え2

私の好きな方法は実用的なものですethtool。カーネルモジュール名を正確に表示します。

ethtool -i $IFACE | grep driver

iproute2デバイスの種類を表示できます。ドライバ名ではありませんが、通常は同じです。

 ip -detail -json link list dev $IFACE | jq '.[] | .linkinfo.info_kind'

場合によっては、ユーティリティlshwsystool情報を収集するのに役立ちます。

systool -c net -v | less
lshw | less

関連情報