仮想ネットワークインタフェースの背後にあるカーネルモジュールを探したいです(例えば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'
場合によっては、ユーティリティlshw
はsystool
情報を収集するのに役立ちます。
systool -c net -v | less
lshw | less