站点 2 站点 VPN 的备份 IP (Juniper SRX)

网络工程 虚拟专用网 杜松-srx
2021-07-29 20:22:06

我们有两个独立的网络,两边都有 SRX(路由器、防火墙和 site2sitevpn)。

在一侧(站点 A),我们有两个 ISP (BGP),目前 VPN 设置为我们其中一个 ISP (ISP1) 的 IP 地址。但如果 ISP1 线路中断,我们的 VPN 也会中断。有没有办法在 ISP1 关闭的情况下自动将 VPN 隧道 IP 地址更改为第二个 ISP (ISP2) 的 IP?或者这是一种愚蠢的方式吗?

设置到 ISP2 IP 地址的第二个 VPN 隧道可能更好吗?如果是这样,如果第一次失败,我如何自动启动第二次 VPN?

地图:

网络的解释

PS:站点A有自己的AS和ip系列,并使用BGP路由到/来自两个ISP的流量

更新 1:

我有一些澄清,还有一些新信息(使事情进一步复杂化)。

1) SITE A 只有一个 SRX,每个 ISP 都在一个单独的端口上。ge-0/0/4 = isp1 ge-0/0/3 = isp2

今天,site2site vpn St0(在 vpn 上使用的 ip 范围为 192.168.21.0/30)仅使用 isp1,但我希望将 isp2 作为备份。

2)站点 B 实际上只有一个 ISP,但他们给了我们 2 个不同的 IP 地址,其中一个地址使用到其上游提供商的特殊路由(但仅限于该网络!),而另一个 IP 地址使用 BGP,并将使用无论上游路由如何工作..所以我们有 vlan.12 ip 地址 1) 6.6.6.6/29(我们今天使用的那个) vlan.12 ip 地址 2) 5.5.5.5/29(我们也想使用的另一个 ip)。

因此,ip 6.6.6.6 为我们在办公室之间提供了非常快的速度,因为路由会进入shortes 路径......但它仅限于一个提供商,因此它出现故障的可能性非常高。ip 5.5.5.5 的速度要慢一些,但对两个网络之间的故障更加稳健。

网络的进一步解释

在上图中,您可以以红色看到 site2site vpn 今天的去向。所以最后我希望有冗余,以便所有 4 种组合都可以工作。

  1. WAN1 - WAN-A
  2. WAN1 - WAN-B
  3. WAN2 - WAN-A
  4. WAN2 - WAN-B

noteA:vlan.12 只是一个很容易成为 ge-0/0/2 等端口的 vlan,我刚刚设置了 vlan 以便能够使用 SRX 上的其他物理端口以防万一。

noteB:SITE B 仅使用一个物理端口连接到同一个 ISP,但使用两个不同的 IP 地址。

再次感谢到目前为止的帮助。我将很快设置一个服务窗口来测试其中的一些内容。

更新2:

SiteA 上的 BGP 设置:

protocols {
    bgp {
    group bgp-ISP2 {
        preference 290;
        local-address 8.8.8.9;
        log-updown;
        import import-bgp-ISP2;
        authentication-key "somekey"; ## SECRET-DATA
        peer-as <ASNUMBER>;
        neighbor 8.9.7.6 {
            export export-bgp-ISP2;
        }
    }
    group bgp-ISP1 {
        preference 250;
        local-address 7.7.7.8;
        log-updown;
        import import-bgp-ISP1;
        authentication-key "somekey"; ## SECRET-DATA
        peer-as <ASNUMBER>;
        neighbor 7.8.9.1 {
            export export-bgp-ISP1;
        }
    }
}
}
2个回答

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;
    }
}

不确定它在瞻博网络上是如何工作的,但是如果您可以在 VPN 设置中进行任何类型的死对等检测,我会这样做。在 Cisco 设备上,我们设置了多个对等点,并在第一个对等点出现故障时使用 DPD 将其推送过来。

假设 DPD 不是瞻博网络的一个选项,一个简单的方法是使用 ISP2 的 IP 地址作为端点设置另一个到站点 B 的 VPN 隧道,并使用路由(不知道你在内部使用什么原型)来创建您的站点之间具有较高管理距离的次要路径,这样当您的主要隧道上的路由(较低的管理距离)消失并从您的表中删除时,次要路由被选中,并且您的隧道出现在 ISP2 和站点 B。

如果您发布更多详细信息,我也可以为您提供更多信息。