多线程VPN应用程序 - 多个tun / tap接口,还是?

时间:2013-09-24 19:16:12

标签: linux multithreading networking

我正在开发基于Linux的VPN应用程序。该应用程序将建立基于TLS的定制连接到多个目的地。客户端计算机将流量路由到运行此VPN应用程序的Linux机箱。

我打算使用tun / tap设备来获取流量。由于我们将有一些实质性的负载,目的是使用多线程方法,其中多个工作线程将处理到不同位置的VPN连接。

我的问题是关于tun接口方面的事情。让每个工作线程分配一个tun接口,然后使用内核路由表将适当的流量路由到每个tun接口会更高效(甚至可能)吗?

或者......只使用一个主工作线程,它将从单个tun接口拉出数据包,然后将这些数据包分发到每个工作线程以发送到相应的VPN?

我认为第二种方法会导致瓶颈,但使用起来比设置多个接口更简单。

然而,第一种方法避免了在主线程到工作线程之间传递消息,并且路由回源tun接口是自动的。

建议?

0 个答案:

没有答案