假设我有两个networking,A和B,位于全球任一地点。 两者都具有本地IPv6,并正在使用(假设)只是IPv6。 IPv4不再存在。 他们既可以作为IPv6本地访问互联网,也可以使用IPv6主机。 他们的IPv6地址全部可路由。 因此,尽pipe有防火墙规则,networkingA中的每个主机都可以到达networkingB中的每个主机,反之亦然。
如何设置IPSec来保护这两个networking之间的通信?
在IPv4世界中,我将在每个站点的两个防火墙之间build立IPSec隧道,或者使用GRE隧道或类似方法。
但是,我将如何在全IPv6世界中做到这一点? IPv6中是否有内在的东西让这更容易? 理想情况下,我想在每个站点的防火墙/路由器上进行configuration。 我不想在每个networking中的每台主机上设置传输模式IPSec。
FWIW,我使用OpenBSD来处理路由/防火墙/ ipsec的需要,所以有关这方面的任何细节都会有所帮助,但是IPv6 / IPSec如何处理这种情况也是一个很好的答案。
我没有testing过这个,但是我没有看到IPv4和IPv6之间的区别。 私人IP的缺乏可能会让你感到困惑,但是否则应该是一样的。 我想你正在用浣熊build立隧道,所以我会跳过这个。 其余的可以在Linux下用ipsec-tools / setkey完成。
从我的头顶,我想你需要两个SPD条目,一个入站和一个出站。 像这样的东西应该做的工作:
spdadd 2a01:1111:2222:3333::/64 2a01:1111:2222:3334::/64 any -P out ipsec esp/tunnel/2a01:1111:2222:1::1-2a01:1111:2222:1::2/require ; spdadd 2a01:1111:2222:3334::/64 2a01:1111:2222:3333::/64 any -P in ipsec esp/tunnel/2a01:1111:2222:1::1-2a01:1111:2222:1::2/require ;
哪里:
ps如果您使用主机名,请确保您传递-6
您可以使用与IPv4完全相同的技术。 我猜OpenBSD在堆栈中缺lessVTI / st技术,所以gre或者gif就可以。 是的,有一件事情更容易 – 接口上的本地范围地址(但是,您可以使用任何地址)。 在IPv4世界中,您需要在每端分配AF_INET地址,以便路由工作,但在IPv6世界中,使用本地范围地址(包括OSPF)可以很好地工作。 这是一个工作配方,我在FreeBSd上使用IPv6 gre已经好几年了。
传统的IPSecscheme也应该可以工作,但是,现在由于路由复杂性的原因,现在已经过时了。