Linux虚拟网络设备TUN/TAP
虚拟网络网卡与物理网卡的区别
网卡就像一根管道(piple),数据从一端进入,从另外一端流出。物理网卡的一端连接内核协议栈,另外一端连接外部网络,当数据从协议栈流入物理网卡,将从另外一端流入外部网络。虚拟网络与之类似,只是虚拟网卡的一端连接内核协议栈,另外一端连接哪里就不一定,由相应的网卡驱动程序决定。
TUN/TAP是Linux内核中的其中一种虚拟网卡,它的一端连接内核协议栈,另外一端连接的是用户空间的应用程序(比如OpenVPN)。
TUN/TAP应用案例
OpenVPN就是使用TUN/TAP设备在公网上建立加密通道,实现异地网络内网连通。
实现原理图