如何确定Linux网络设备的逻辑类型

如何确定Linux网络设备的逻辑类型

逻辑上我的意思是命令中所有合法的内容 ip link,例如:

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

其中逻辑类型为“vlan”。引用手册页,所有有效类型都是:

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

请注意,这显然不是这个问题中所询问的物理设备类型(如以太网、wifi、ppp 等):检测Linux中的网络连接类型,其中确实包含对物理类型的引用的 gemif_arp.h这促使我对其进行测试:

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

但显然发现 dummy、vlan 和 wlan 设备都属于 类型ARPHRD_ETHER

有人知道更多吗?

相关内容