虚拟网络技术:TUN设备

本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。

导读:云化场景到处都是虚拟机和容器,它们背后的网络管理都离不开虚拟网络设备,了解虚拟网络设备将有助于我们更好地理解云化场景的网络架构。本篇文章将对Linux的TUN进行介绍。


一、虚拟网络设备和物理网络设备的区别

网络设备就像是一个管道,从其中任意一端收到的数据将从另一端发送出去。比如物理网卡,它的两端分别是内核协议栈和物理网络,从物理网络收到的数据,会转发给内核协议栈,而应用程序从协议栈发过来的数据将会通过物理网络发送出去。

对于Linux内核网络设备管理模块来说,虚拟设备和物理设备没什么区别,都是网络设备,都能配置IP,从网络设备来的数据,都会转发给内核协议栈,而从协议栈过来的数据,也会交由网络设备发送出去(怎么发送出去的,发到哪里去,那是设备驱动的事情,跟Linux内核没关系)。所以说虚拟网络设备的一端也是协议栈,而另一端是什么则取决于虚拟网络设备的驱动实现。


二、TUN是什么?它的另一端是什么?

TUNLinux内核的一种虚拟三层网络设备,纯软件实现,通过此设备可以处理来自网络层的数据。

你可能感兴趣的:(网络虚拟技术,TUN,虚拟网络设备)