OSI第2层加密

时间:2016-11-28 14:48:25

标签: networking encryption ethernet ipsec

我目前正在尝试使用2个Linux机箱进行加密/解密设置VPN项目。

目前,我使用linux框架 xfrm 处理第3层(来自主机1的IP数据包在通过第一个框之前转换为ESP,然后发送到主机2,解密完成在第二个方框)。

我想直接在第2层行动,所以我可以删除我的盒子的IP地址。我想我可以通过在每个盒子上设置以太网桥来实现这一点,使用netfilters钩子将帧重定向到套接字,其中用户空间程序将对以太网帧有效负载进行加密(将IP数据包转换为ESP)。

|主机1 | == |以太网桥| ==路由器---(网络不安全)---路由器== |以太网桥| == |主机2 |

我对此实现的问题在于吞吐量,因为我认为所有这些操作都会大大减少它。还有其他方法可以实现我正在寻找的东西吗?

2 个答案:

答案 0 :(得分:0)

第2层只能在LAN上使用主机到主机(您的路由器只是第2层的主机)。第二层,包括第二层加密,不跨越第三层设备,例如路由器。 MACsec(IEEE 802.1AE)用于第2层加密。

第3层用于连接LAN,如果要从一个LAN到另一个LAN进行端到端加密,则需要在高于第2层的层上进行加密。路由器从数据包中剥离第2层帧,切换数据包,然后为下一跳创建新帧。下一跳可能不使用MAC地址; PPP通常用于ISP连接,它不使用MAC地址,并且帧与以太网非常不同。除非您控制LAN之间的所有链接,否则您需要在高层加密。

答案 1 :(得分:0)

你是对的,部署第2层VPN是昂贵的(在某种意义上你必须支付互联网带宽)并且大部分时间都是无用的,因为很少有应用程序在没有相同的情况下无法工作LAN。

使用第2层VPN所能获得的主要是广播,例如SMB开箱即用的名称解析(如果您必须连接到AD服务器或拥有WINS服务器,则不适用),DLNA, SPX / IPX或仅限局域网的游戏将无缝运行,另一方面,您对必须传递大量可能无用信息的看法也是正确的。

也许您正在寻找的解决方案是使用ebtables,这是一个第2层防火墙,类似于与第3层相关的iptables,这样您可以在接受其他数据包之前丢弃一些数据包,然后再通过VPN进行转发/互联网/等

PPP只是一层2协议,没有什么特别之处,有些VPN网关使用它(即PPtP VPN),其他则没有。