注:本文基于CentOS 7.4编写
1、网络设备类型
linux网络设备的抽象类型有:Bridge、VLAN、VETH、TAP等,我们可以通过ip命令查看系统支持的类型,
[root@master ~]# ip link help
...
TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |
bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
gre | gretap | ip6gre | ip6gretap | vti | nlmon | team_slave |
bond_slave | ipvlan | geneve | bridge_slave | vrf | macsec }
2、查看指定设备的类型
2.1 通过ip命令
[root@master ~]# ip -d link show cni0
9: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether d2:3f:f8:78:5f:7a brd ff:ff:ff:ff:ff:ff promiscuity 0
bridge ...
[root@master ~]# ip -d link show flannel.1
8: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/ether de:cf:b3:4a:ba:08 brd ff:ff:ff:ff:ff:ff promiscuity 0
vxlan ...
10: vethe3c50e20@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP mode DEFAULT group default
link/ether 06:15:32:92:43:25 brd ff:ff:ff:ff:ff:ff link-netnsid 0 promiscuity 1
veth ...
[root@master ~]# ip -d link show kube-ipvs0
7: kube-ipvs0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default
link/ether c6:88:49:fc:4c:78 brd ff:ff:ff:ff:ff:ff promiscuity 0
dummy ...
[root@master ~]# ip -d link show virbr0-nic
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:76:db:df brd ff:ff:ff:ff:ff:ff promiscuity 1
tun ...
但是对于普通的网络设备,倒是不显示,
[root@master ~]# ip -d link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:7e:24:31 brd ff:ff:ff:ff:ff:ff promiscuity 0 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
2.2 通过ethtool命令
[root@master ~]# ethtool -i cni0 | grep driver
driver: bridge
[root@master ~]# ethtool -i ens33 | grep driver
driver: e1000
[root@master ~]# ethtool -i flannel.1 | grep driver
driver: vxlan
[root@master ~]# ethtool -i vethe3c50e20 | grep driver
driver: veth
[root@master ~]# ethtool -i virbr0 | grep driver
driver: bridge
[root@master ~]# ethtool -i virbr0-nic | grep driver
driver: tun
但是对于虚拟设备这个方式不奏效,
[root@master ~]# ethtool -i kube-ipvs0 | grep driver
Cannot get driver information: Operation not supported