在我们的办公室和客户站点之间有几十个IPSec连接,我们使用客户网络中的一个额外的路由器(所以在NAT后面)来启动到我们办公室的连接,其中PFSense路由器是“网络入口”(所以不是NAT后面的)。这工作得很好!
在一个特定的情况下,我们还需要在两个客户站点之间建立一个直接的IPSec连接,在这两个站点上,我们已经在他们的网络中有了一个路由器(ubiquiti,所以Linux)。我被允许在两个客户地点之一打开端口以使其正常工作。
经过一段时间的挣扎,并试图在谷歌上找到一个解决方案,我仍然无法在这两个位置之间建立一个工作的IPSec连接。
为了使之更加具体,我概述了我们的情况:
Customer A | Customer B
our router --- NAT --- internet --- NAT --- our router
10.130.1.0/24 10.130.2.0/24在客户A,我将所有端口(为测试目的)转发到我们的路由器,我尝试从客户B的站点启动IPSec连接。我试图通过从10.130.2.0/24中单击10.130.1.1来启动连接,但是在两个站点上都看不到charon (ipsec)日志文件中的任何日志条目.
是否有可能让IPSec在上面这样的构造中工作呢?那么港口运输呢?
==================UPDATE 1=================
我检查了两个站点是否启用了NAT遍历。我使用IKEv2来防止这件事发生。
我还可以通过设置一些log-modes获得一些日志,并获得:
Oct 26 10:09:48 12[MGR] checkout IKEv2 SA with SPIs 6680fde47ccc3276_i d590c97607b14938_r
Oct 26 10:09:48 12[MGR] IKE_SA checkout not successfulIPSec配置(来自一个站点,因为它们代表彼此):
allow-access-to-local-interface enable
auto-firewall-nat-exclude enable
esp-group FOO0 {
compression disable
lifetime 3600
mode tunnel
pfs enable
proposal 1 {
encryption aes128
hash sha256
}
proposal 2 {
encryption aes128
hash sha256
}
}
ike-group FOO0 {
ikev2-reauth no
key-exchange ikev2
lifetime 28800
proposal 1 {
dh-group 14
encryption aes128
hash sha256
}
proposal 2 {
dh-group 14
encryption aes128
hash sha256
}
}
nat-traversal enable
site-to-site {
peer some_entry_A.zapto.org {
authentication {
id some_entry_B.zapto.org
mode pre-shared-secret
pre-shared-secret SomePSK
remote-id any
}
connection-type initiate
default-esp-group FOO0
description internal_IPSec
ike-group FOO0
ikev2-reauth inherit
local-address any
tunnel 1 {
allow-nat-networks disable
allow-public-networks enable
esp-group FOO0
local {
prefix 10.130.8.0/24
}
remote {
prefix 10.130.22.0/24
}
}
}发布于 2020-10-26 10:26:57
它能起作用。
您需要在双方指定本地“身份验证ID”和“身份验证远程id”(当然是交叉的)。
原因是每个设备必须能够将传入的数据包与配置相关联,因此需要一个ID。由于IP地址是由NAT修改的,所以不能使用它们作为ID,您需要为它们提供另一个可以使用的ID。
https://networkengineering.stackexchange.com/questions/70626
复制相似问题