将dev tap和dev tun用于openvpn有什么区别?我知道不同的模式无法互操作。除了第2层与第3层操作外,技术上的区别是什么。是否有不同的性能特征或不同的开销级别。哪种模式更好。每种模式独有的功能是什么。

评论

请说明区别?什么是以太网桥接,为什么不好?

#1 楼

如果可以在第3层上创建vpn(在子网之间再跳一跳),请进行调整。

如果需要在两个不同的位置桥接两个以太网段,请使用tap。在这种设置中,您可以将计算机置于vpn两端的同一ip子网(例如10.0.0.0/24)中,并且它们可以直接彼此“对话”,而无需更改其路由表。 VPN的作用类似于以太网交换机。这听起来很酷,在某些情况下很有用,但我建议除非您确实需要,否则请不要这样做。如果您选择这样的第2层桥接设置-您的VPN上会有一些“垃圾”(即广播数据包)。

使用Tap会增加一些开销-除了IP标头之外,还将通过隧道发送38B或更多的以太网标头(取决于流量的类型-可能会引入更多碎片)。

评论


如果我从一个位置的计算机到另一个位置的计算机运行traceroute,则可以看到使用VPN TUN时在通信中添加了网关。那么是否确定TAP通信是直接的?所以在traceroute输出中,我只会看到第一项?

–laimison
20/11/11在14:59

#2 楼

当我为一家拥有小型企业的朋友设置VPN时,我选择了“轻按”,因为他的办公室使用了Windows计算机,商用打印机和Samba文件服务器。其中一些使用纯TCP / IP,一些似乎仅使用NetBIOS(因此需要以太网广播数据包)进行通信,而某些我甚至不确定。

如果我选择了“ tun “,我可能会遇到很多服务中断的问题-当您物理上在办公室中时,很多事情都可以正常工作,但是当您离开现场并且笔记本电脑无法“看到”以太网子网上的设备时,这些问题就会中断不再。服务器并为其“网络邻居”显示器供电。它很棒,而且我从来没有收到关于异地工作的报告!

评论


如果在3个位置设置中VPN服务器以VPN TAP模式死亡,会发生什么情况?我正在集思广益,了解TAP是否没有缺点,因为在TUN模式下,您可以将每个位置连接到每个位置。每个服务器仅连接了不同的子网。因此,如果一台VPN服务器死亡,其他两个位置将能够通信。对我来说,听起来好像无法在TAP中实现,或者至少它需要其他一些东西,有什么想法吗?

–laimison
20 Nov 11'在17:23

#3 楼

我总是设置屯。 Tap由OpenVPN中的以太网桥接使用,并引入了前所未有的复杂性水平,根本不值得理会。通常,当需要安装VPN时,现在就需要它,并且复杂的部署不会很快。

OpenVPN常见问题解答和以太网桥接方法是有关此主题的绝佳资源。

评论


以我的经验,tun更易于设置,但不能处理那么多网络配置,因此您会遇到很多奇怪的网络问题。相比之下,水龙头的设置要复杂一些,但是一旦完成,它通常对每个人都“有效”。

–塞林
13年3月28日在21:36

#4 楼

如果您打算使用OpenVPN连接移动设备(iOS或Android),则应该使用TUN,因为OpenVPN目前不支持TAP:


TAP的缺点:.... 。不能与Android或iOS设备一起使用


评论


Android通过以下第三方应用程序支持TAP:OpenVPN Client(开发商:colucci-web.it)

–嘘
17年2月6日14:43



#5 楼

因为我很难找到简单的建议:
如果仅使用VPN连接到Internet,就可以使用TUN。
如果要连接到实际的远程网络,则需要使用TAP(打印机,远程桌面等)

评论


您仍然可以使用tun连接到远程桌面(RDP / VNC / etc)。

–孔春浩
昨天

#6 楼

我开始使用tun,但由于我不喜欢为每台PC使用/ 30子网(我需要支持Windows),因此切换为点击。我发现这很浪费而且令人困惑。

然后我发现了服务器上的“拓扑子网”选项。可与2.1 RC(不是2.0)一起使用,但它为我提供了tun的所有优点(无桥接,性能,路由等),每台(Windows)计算机仅具有一个(顺序)IP地址。

#7 楼

我的“经验法则”
-如果您只需要访问另一端直接连接到OpenVPN服务器计算机的资源,则没有Windows问题。通过使资源“出现”在OpenVPN服务器本地,可以在这里发挥一点创意。 (例如,可能是与网络打印机的CUPS连接,或者是在OpenVPN服务器上安装的另一台计算机上的Samba共享。)
TAP-如果您需要访问通过以下方式连接的多个资源(计算机,存储设备,打印机,设备)另一端的网络。某些Windows应用程序可能还需要TAP。

优点:
TUN通常将VPN访问限制在单个计算机(IP地址)上,因此(大概)通过有限的到远端网络的连接来提供更好的安全性。 TUN连接将减少VPN隧道的负荷,进而减少远端网络的负荷,因为只有到/来自单个IP地址的流量会穿越VPN到达另一端。到子网中其他站点的IP路由不包括在内,因此不会通过VPN隧道发送流量,并且与OpenVPN服务器之间的通信很少或无法进行。
TAP-通常允许数据包在端点之间自由流动。这提供了与远端网络上其他站点进行通信的灵活性,包括较旧的Microsoft软件使用的某些方法。 TAP具有与“在防火墙后”授予外部访问权限相关的固有安全漏洞。它将允许更多流量数据包流经VPN隧道。这也打开了端点之间地址冲突的可能性。
由于堆栈层,延迟存在差异,但是在大多数最终用户方案中,端点的连接速度可能比传输的特定堆栈层对延迟的影响更大。如果延迟存在问题,考虑其他替代方法可能是一个好主意。通常,当前的GHz级多处理器通常超过了通过互联网进行传输的瓶颈。
没有上下文就无法定义“更好”和“更差”。 ..“)
法拉利比自卸车“好”吗?如果您想快速前进,可能是这样。但是如果您要搬运重物,可能不会。在确定TUN或TAP是否更适合您的需求之前,必须先定义诸如“需要访问”和“安全要求”之类的约束,以及诸如网络吞吐量和设备限制之类的约束。

#8 楼

几年前,我也遇到了同样的问题,并试图在我的博客上用直截了当的方式(我个人认为缺少其他资源)来解释它: />

评论


尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。

–马克·亨德森(Mark Henderson)
15年4月8日在19:28

很棒的帖子!我很少读这样的整篇文章,但是我确实读过。我同意马克·亨德森(Mark Henderson)的观点,但是您应该写一个简短的摘要,然后放在链接后面。

– Pierre-Luc Bertrand
15年7月7日在1:46

#9 楼

设置TAP几乎不需要安装它的人员进行任何其他操作。

当然,如果您知道如何设置TUN却不了解自己在做什么,只需遵循tun教程,将会努力设置TAP,但这不是因为难度更大,而是因为您不知道自己在做什么。这很容易导致TAP环境中的网络冲突,然后看起来更加复杂。

事实是,如果您不需要教程,因为您知道自己在做什么,那么进行设置tap花费的时间与设置tun相同。 172.22.1.0/16
site2(network2)使用172.22.2.0/16
site3使用172.22.3.0/16
等。

使用oVPN设置site1服务器并为客户端提供IP范围
172.22.254.2-172.22.254.255/16,这样您可以拥有200多个ovpn客户端(子网)
每个子网本身可以拥有200多个客户端。总共使您可以处理40.000个客户端(不确定的oVPN可以处理该客户端,但是如您所见,设置适当的子网划分将为您提供更多的满足您最可能需要的功能)

如果,但是每个站点都有自己的DHCP,并且应该具有,您需要确保使用ebtables或iptables或dnsmasq阻止dhcp分发到去野外。 ebtables会降低性能。
使用dnsmasq dhcp-host = 20:a9:9b:22:33:44,例如,忽略将是在所有dhcp服务器上设置的艰巨任务。
,在现代硬件上,ebtables的影响并不大。抽头的开销只有1或2%,大约是tun的32%,也不是什么大问题(可能在未加密的网络上),但是在加密的网络上,通常是AES导致速度降低。

在未加密的wrt3200acm上,我获得360Mbps。使用加密时,速度会下降到54-100Mbps,具体取决于我选择哪种加密方式。
但是openvpn不会在1500上进行加密,而在32开销上则进行第二次加密。相反,它对1500 + 32开销进行了1次加密。

因此对这里的影响很小。

2个具有AES支持的虚拟机之间的加密使我的ovpn TAP达到120-150Mbps。

有些报告专门介绍了具有AES硬件加密支持的路由器高达400Mbps! i5-3570k可以达到3倍的速度(在我的测试系统上,以1核心利用率的100%不能达到150Mbps以上)
我的另一端:E3-1231 v3,当时大约是7% CPU利用率大约使用了25%的核心openvpn。因此,E3最有可能将连接增加3到4倍。

通过使用AES265密码,auth SHA256和auth认证的E3-1231 v3 cpu之间的连接,您将获得360Mbps和600Mbps之间的连接ta.key,证书tls-cipher我还使用了最高的TLS-DHE-RSA-WITH-AES-256-SHA256

要指出这一点,请点击:
wrt3200acm加密速度为70-80mbps。
i5-3570k加密速度为120-150。
E3-1231 v3加密速度至少为360Mbps(这是根据案例1和2的发现得出的,因为我没有没有2个E3-1231 v3可以测试。)

这些是我基于Windows到Windows在通过openvpn TAP连接的2个不同子网中的2个客户端之间复制的结果

#10 楼

我通常默认使用TUN,因为出于各种原因,将它放在自己的子网中会更好,其中包括防火墙和OpenVPN基本上都是开箱即用的。这就是连接的客户端的行为与物理客户端完全一样。
这意味着,例如通常仅在物理网络中可用的所有受IP限制的资源也可以工作。

我在家庭中看到的另一个用例是OpenVPN服务器没有面向互联网的资源端,从而通过某种提供商支持的调制解调器/路由器进行路由。
更多时候,并非这些都不支持静态路由之类的功能,如果让OpenVPN使用它自己的子网则必须这样做。

#11 楼

如果那样的话,为什么呢,你得到了多少?我将明确使用TAP,原因是数据包的分层以更少的等待时间和传输损失进行,而这种方法可以缓解这种情况。但是,仅对于第3层,这才会对VPN的操作产生任何明显影响,特别是隧道方面以及允许哪些IP通过和可分配的地址。 UDP的使用可能会引入另一种情况,您需要确定哪种是最适合您的路由。每个网络都是不同的,并且需要唯一的一组参数。希望这会有所帮助。

评论


相当混乱。请考虑清理它,解释重要的区别并消除它们。

– vonbrand
14年6月25日在20:03