Junos 确实具有 DPD,您可以将它与单个 IKE 隧道中的多个端点 IP 地址结合使用。
这里有一些关于它的信息(我已经在下面复制了)
http://kb.juniper.net/InfoCenter/index?page=content&id=KB29211&actp=RSS
总结:
本文解释了如何使用网关中的多个地址和死点检测来实现站点到站点 VPN 中的冗余。
问题或目标:
如何对 VPN 故障转移使用不同的死对等检测模式。
原因:
解决方案:
可以使用以下命令配置 VPN 冗余网关:
set interfaces fe-0/0/0 unit 0 family inet address 1.1.1.2/24
set interfaces st0 unit 0 family inet
set routing-options static route 0.0.0.0/0 next-hop 1.1.1.1
set security ike policy p1 mode main
set security ike policy p1 proposal-set standard
set security ike policy p1 pre-shared-key ascii-text "$9$21oZjmfzCtOHqtO1RlegoJ"
set security ike gateway g1 ike-policy p1
set security ike gateway g1 address 2.2.2.1
set security ike gateway g1 address 3.3.3.1
set security ike gateway g1 dead-peer-detection interval 10
set security ike gateway g1 dead-peer-detection threshold 3
set security ike gateway g1 external-interface fe-0/0/0
set security ipsec policy p1 proposal-set standard
set security ipsec vpn v1 bind-interface st0.0
set security ipsec vpn v1 ike gateway g1
set security ipsec vpn v1 ike ipsec-policy p1
set security ipsec vpn v1 establish-tunnels immediately
配置顺序中的第一个地址是选择协商隧道的地址:
gateway g1 {
ike-policy p1;
address [ 2.2.2.1 3.3.3.1 ];
dead-peer-detection {
interval 10;
threshold 3;
}
external-interface fe-0/0/0;
}
上述配置处于死对等检测最佳模式。如果数据包被发送出去(加密数据包),但在配置的时间间隔内没有收到(解密)数据包,它会发送探测。三个探测包以 10 秒的间隔发送。
root@srx# run show security ike sa
Index State Initiator cookie Responder cookie Mode Remote Address
6770125 UP d570a30c806721ea ccc1572d2f763981 Main 2.2.2.1
root@srx# run show security ipsec sa
Total active tunnels: 1
ID Algorithm SPI Life:sec/kb Mon lsys Port Gateway
<131073 ESP:3des/sha1 1debda06 3397/ unlim - root 500 2.2.2.1
>131073 ESP:3des/sha1 7a7dff24 3397/ unlim - root 500 2.2.2.1
一旦隧道中断,死对等点检测就开始发挥作用。如果在 30 秒内未收到来自对等方的响应,则会发生故障转移,并与 3.3.3.1 协商隧道,反之亦然。
root@srx# run show security ike sa
Index State Initiator cookie Responder cookie Mode Remote Address
6770151 UP 36a2e145e0fd2c10 b3abc0b135cf33fe Main 3.3.3.1
root@srx# run show security ipsec sa
Total active tunnels: 1
ID Algorithm SPI Life:sec/kb Mon lsys Port Gateway
<131073 ESP:3des/sha1 2420b2bd 3598/ unlim - root 500 3.3.3.1
>131073 ESP:3des/sha1 5c8bb9da 3598/ unlim - root 500 3.3.3.1
用于死对等点检测的始终发送模式:
为了指示设备发送dead-peer-detection请求,无论是否有传出IPSec流量到peer,还需要以下命令:
set security ike gateway g1 dead-peer-detection always-send
更新
我已经在测试实验室中配置了它并确认它运行良好。我有 3 个设备,S3、S4 和 S5。
S4 和 S5 都有一个基本的 IPSEC 隧道,配置为连接到 S3(在我的示例中为 7.7.7.22)。配置非常简单并且在两个设备上都相同
ike {
gateway s3-gw {
ike-policy ike-policy;
address 7.7.7.22;
external-interface ge-0/0/1.0;
}
}
ipsec {
policy standard-ipsec-policy {
proposal-set standard;
}
vpn s3 {
bind-interface st0.0;
ike {
gateway s3-gw;
ipsec-policy standard-ipsec-policy;
}
establish-tunnels immediately;
}
}
设备 S3 的配置与上述配置非常相似,但列出了 2 个网关并启用了 DPD。
相关部分在 IKE 配置中
gateway s4-s5-gw {
address [ 7.7.7.21 192.168.211.2 ];
dead-peer-detection {
always-send;
interval 10;
threshold 3;
}
external-interface ge-0/0/1.0;
}
这带来了隧道
root@TEST-srx3> show security ike security-associations
Index State Initiator cookie Responder cookie Mode Remote Address
1404200 UP 2f4f0465dc8c4556 d2e6022d0dc213c3 Main 7.7.7.21
root@TEST-srx3> show security ipsec sa
Total active tunnels: 1
ID Algorithm SPI Life:sec/kb Mon lsys Port Gateway
<131073 ESP:3des/sha1 d4428f3 3170/ unlim - root 500 7.7.7.21
>131073 ESP:3des/sha1 5cda9108 3170/ unlim - root 500 7.7.7.21
如果我停用 S4 上的 IKE/IPSEC 配置部分,隧道将断开,然后重新连接到第二个网关
root@TEST-srx3> show security ike security-associations
root@TEST-srx3> show security ipsec sa
Total active tunnels: 0
然后大约 30 秒后 (10 x 3)
root@TEST-srx3> show security ike security-associations
Index State Initiator cookie Responder cookie Mode Remote Address
1404202 UP 35e54d457be6132f 0444ae31577c71a2 Main 192.168.211.2
root@TEST-srx3> show security ipsec sa
Total active tunnels: 1
ID Algorithm SPI Life:sec/kb Mon lsys Port Gateway
<131073 ESP:3des/sha1 93043b2 3595/ unlim - root 500 192.168.211.2
>131073 ESP:3des/sha1 e5c551e4 3595/ unlim - root 500 192.168.211.2
如果您需要任何帮助,请发布一些配置片段,我会尽力查看!
更新 2
我已经在一个迷你实验室中完成了这一切。我发现的问题是,虽然您可以在 IKE 配置中使用多个网关,但您仍然需要在每个设备上的每个 ISP 都有一个 IPSEC 隧道。这是因为您有多个源 IP 地址可能希望从中建立 IPSEC 隧道。
为了节省我发布大量配置,每个 SRX(A 和 B)都有两个 IPSEC 隧道配置,如下所示。需要注意的是我在每个设备上使用单个隧道接口,这些接口设置为多点。如果需要,您可以使用多个。
如果站点 A 和/或站点 B 的单个 ISP 出现故障,此配置将提供完全冗余。
我通过断开 SRX-A 和 SRX-1 之间的链接,然后断开 SRX-B 和 SRX-4 来测试这一点。由于我使用 BGP 和 DPD,隧道只用了 1 多分钟就恢复了,但运行良好!
希望这最终会帮助您理清您的配置!
SRX-A IPSEC 配置
ike {
gateway SRX-B_via_ISP1 {
ike-policy ike-policy;
address [ 6.6.6.6 5.5.5.5 ];
dead-peer-detection {
always-send;
interval 10;
threshold 3;
}
external-interface lo0.10;
local-address 7.7.7.5;
}
gateway SRX-B_via_ISP2 {
ike-policy ike-policy;
address [ 6.6.6.6 5.5.5.5 ];
dead-peer-detection {
always-send;
interval 10;
threshold 3;
}
external-interface lo0.10;
local-address 8.8.8.9;
}
}
ipsec {
policy standard-ipsec-policy {
proposal-set standard;
}
vpn SRX-B_via_ISP1 {
bind-interface st0.0;
ike {
gateway SRX-B_via_ISP1;
ipsec-policy standard-ipsec-policy;
}
establish-tunnels immediately;
}
vpn SRX-B_via_ISP2 {
bind-interface st0.0;
ike {
gateway SRX-B_via_ISP2;
ipsec-policy standard-ipsec-policy;
}
establish-tunnels immediately;
}
}