tap/tun设备 veth设备是openstack网络虚拟化中的重要的概念
首先来一张图,在openstack架构中
参考资料:
https://zhuanlan.zhihu.com/p/74634285
https://blog.csdn.net/sld880311/article/details/77854651
TAP/TUN
1.TAP/TUN 是 Linux 内核实现的一对虚拟网络设备,TAP 工作在二层,TUN 工作在三层。Linux 内核通过 TAP/TUN 设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作物理网络设备那样,向 TAP/TUN 设备发送数据。
2.在libvirt中的应用
qemu/kvm将报文写入/dev/net/tun
字符设备驱动程序将报文写入虚拟网卡驱动,
虚拟网卡驱动通过tcp/ip协议栈将包写入tap0
在host上,东西向流量通过网桥,南北向流量通过路由规则从eth0出去
TUN(Tunel)设备模拟网络层设备,处理三层报文,如IP报文。TAP设备模型链路层设备,处理二层报文,比如以太网帧。TUN用于路由,而TAP用于创建网桥。
在linux2.4内核版本及以后版本中,tun/tap驱动是作为系统默认预先编译进内核中的
实例链接http://blog.nsfocus.net/linux-tun-tap/