差异tun / tap,是处理协议或操作系统的接口?

我很难理解tap和tun接口之间的区别。 我知道这是一个常被问到的问题,我对此表示歉意。

我在第2层读取tap工作,在第3层读取tun。我还读到tap用于桥接,tun用于路由。 我已经听说过“ROUTERS在第三层工作”或“BRIDGES在第三层工作”:这对我来说是有意义的,因为路由器操作第3层协议并桥接第2层协议? 但是,因为tap和tun是“接口”,所以它意味着像“INTERFACES在第三层工作”这样的句子是有道理的,但是我不明白它是什么意思:我的意思是接口不操作协议(操作系统是这样做的,但是不是接口)所以听起来像tun接口== tap接口:

如果我创build了两个具有两个不同networking(192.168.2.1/24和192.168.3.1/24)的ip的tap(带有tunctl)接口,那么我将它们链接到两个kvm虚拟机(一个接口匹配到一个VM)如果我在主机上启用路由,我的两个虚拟机可以通信。

所以点击接口也可以用于路由:与tun有什么不同? 也许一个水龙头也是一个tun接口?

另外,我可以使用tunctl命令创build一个tap接口,但是如何使用相同的命令创build一个tun接口(该命令称为TUNctl而不是TAPctl …)?

你能帮我澄清一下吗? 谢谢。