目前,我正在进行一个附带项目,试图使用2个linux盒来设置VPN,以执行加密/解密操作。
目前,我在第三层使用linux框架xfrm (主机1的IP数据包在发送到主机2之前经过第一个盒子时被转换为ESP,在第二个盒子上进行解密)。
我想直接在第二层上操作,这样我就可以删除我的盒子的IP地址。我认为我可以通过在每个盒子上设置以太网桥接器,使用netfilter挂钩将帧重定向到套接字,其中用户空间程序将完成以太网帧有效负载的加密(将IP数据包转换为ESP)。
(网络不安全)
这个实现的问题在于吞吐量,因为我认为所有这些操作都会大大降低吞吐量。还有其他方法可以实现我正在寻找的东西吗?
发布于 2016-11-28 14:58:55
Layer-2只在LAN上从主机到主机(您的路由器只是主机到层-2)工作.第二层,包括第二层加密,不跨越第三层设备,例如路由器.第二层加密采用IEEE802.1AE(IEEE802.1AE).
第3层用来连接局域网,如果你想从一个局域网到另一个局域网进行端到端加密,你需要在高于第2层的层上加密。路由器剥离层-2帧从包,切换包,然后创建一个新的帧为下一跳。下一跳可能不使用MAC地址;PPP在ISP连接中很常见,它不使用MAC地址,而且帧与以太网非常不同。除非您控制局域网之间的所有链接,否则需要在较高层进行加密。
发布于 2017-03-16 12:06:01
您是对的,部署第二层VPN是昂贵的(从意义上说,您必须为internet带宽付费),而且大多数情况下都是无用的,因为很少有应用程序不位于同一个LAN上才能工作。
第二层VPN的功能主要是广播,例如SMB开箱即用的名称解析(如果你必须连接到一个AD服务器或有一个WINS服务器)、DLNA、SPX/IPX或LAN-只有游戏才能无缝工作,另一方面,你对必须传递大量可能没用的信息的看法也是正确的。
也许您正在寻找的解决方案是使用退潮,它是一种类似于与第三层相关的iptables的第二层防火墙,您可以在接收其他数据包的同时丢弃一些数据包,然后再通过VPN/internet/等进行转发。
PPP只是一个第二层协议,它没有什么特别之处,一些VPN网关使用它(即PPtP VPN),另一些则不使用它。
https://stackoverflow.com/questions/40847082
复制相似问题