tun/tap是内核虚拟出来的用户网络设备,一般是给虚拟机使用,作为virtio的后端实现的重要接口。设备的接口在/proc/net/tun,一般起虚拟机的时候hypervisor 会自动实现,只要在参数中添加网络设备的相关参数。以qemu起虚拟机为例:
qemu-system-x86_64 -netdev tap,id=tap0 -device netdev=tap0 ....
netdev 指明了使用tap设备。tap设备还有很多参数,其中有一项是vnet_hdr,默认这一项是打开的,这一项的意思是是的设备在收发大数据报的时候只进行部分checksums,于是就会大大提高数据吞吐量。

本文介绍tun/tap作为内核虚拟网络设备的作用及其在虚拟机中的实现方式,特别是在作为virtio后端接口的角色。文章还讨论了通过qemu启动虚拟机时如何配置tap设备,并解释了vnet_hdr参数对数据吞吐量的影响。
1万+

被折叠的 条评论
为什么被折叠?



