云原生虚拟网络 tun/tap & veth-pair( 四 )


经过研究,发现 tun/tap 设备是一个虚拟网络设备,负责数据转发,但是它需要通过文件作为传输通道,这样不可避免的引申出 tun/tap 设备为什么要转发两次,这也是为什么 flannel 设备 UDP 模式下性能不好的原因,导致了后面这种模式被废弃掉 。
因为 tun/tap 设备作为虚拟网络设备性能不好,容器对容器的直接通信并不会把 tun/tap 作为首选方案,一般是基于稍后介绍的 veth 来实现的 。veth 作为一个二层设备,可以让两个隔离的网络名称空间之间可以互相通信,不需要反复多次经过网络协议栈,veth pair 是一端连着协议栈,另一端彼此相连的,数据之间的传输变得十分简单,这也让 veth 比起 tap/tun 具有更好的性能 。
Referencehttps://zhuanlan.zhihu.com/p/293659939
https://segmentfault.com/a/1190000009249039
https://segmentfault.com/a/1190000009251098
https://www.junmajinlong.com/virtual/network/all_about_tun_tap/
https://www.junmajinlong.com/virtual/network/data_flow_about_openvpn/
https://www.zhaohuabing.com/post/2020-02-24-linux-taptun/
https://zhuanlan.zhihu.com/p/462501573
http://icyfenix.cn/immutable-infrastructure/network/linux-vnet.html
https://opengers.github.io/openstack/openstack-base-virtual-network-devices-tuntap-veth/
https://tomwei7.com/2021/10/09/qemu-network-config/
https://time.geekbang.org/column/article/65287
https://blog.csdn.net/qq_41586875/article/details/119943074
https://man7.org/linux/man-pages/man4/veth.4.html

云原生虚拟网络 tun/tap & veth-pair

文章插图
【云原生虚拟网络 tun/tap & veth-pair】

经验总结扩展阅读