跳到主要内容

与使用冗余的远程事件代理桥接

您可以在部署了冗余配置的远程PubSub+软件事件代理和设备上建立消息VPN桥接连接,以提供容错能力。

存在三种不同的冗余模型:

  • 使用主动/备用冗余的桥接
  • 使用备用远程连接的N+1冗余桥接
  • 使用DNS重定向的N+1冗余桥接

为了保持示例简单,并非显示创建桥接所需的所有配置命令——只显示那些对于被描述的冗余模型独特的命令。

与远程软件事件代理与设备桥接对比

与使用冗余的远程事件代理桥接的过程在软件事件代理和设备之间是相似的。不同之处如下:

  • 设备支持IP地址接管。因此,发起桥接连接的事件代理总是连接到相同的地址,无论使用冗余的远程设备中哪个设备处于活动状态。

对于使用主动/备用模型配置为高可用性(HA)冗余对的设备,Solace建议将冗余角色配置为primarybackup。有关更多信息,请参见分配主动/备用角色。如果您没有配置冗余角色,那么将虚拟路由器配置为auto的消息VPN桥接将无法运行。有关更多信息,请参见配置VPN桥接。

  • 对于软件事件代理,形成冗余组的主事件代理和备份事件代理具有唯一的IP地址,并且必须使用主机列表连接到活动事件代理。发起桥接连接的事件代理尝试连接到此主机列表上的第一个地址。如果连接失败,它尝试第二个地址,依此类推。在配置桥接到远程软件事件代理的冗余配置时,您必须为远程冗余组配置主机列表。

有关更多信息,请参见为软件事件代理配置主机列表。

为软件事件代理配置主机列表

配置主机列表指定事件代理用于发起桥接连接到远程软件事件代理的IP地址的冗余配置。要配置此主机列表,您可以在桥接上重复以下命令多达四次,以便配置多达四个不同的远程消息VPN:

create message-vpn <vpn-name> {router <virtual-router-name> | connect-via <addr> [interface <phys-intf>]}

其中:

  • <vpn-name> 是远程消息VPN名称。

  • <virtual-router-name> 是消息VPN所在的虚拟远程路由器的名称。

  • <addr> [interface <phys-intf> 是应到达远程路由器的IP地址(和可选端口)。此IP地址可以是远程路由器的静态或虚拟地址。对于回环到此路由器上的消息VPN的桥接,使用127.0.0.1 IP地址(例如,192.1.2.3:12345)。

每个<vpn-name>和任一<virtual-router-name><addr> <phys-intf>的组合必须是唯一的,不允许两种可能的组合混合。

这会创建一个内部主机列表,为桥接提供潜在的冗余主机。添加新的主机源条目时,它会添加到现有主机列表的末尾。其位置可以通过连接顺序远程消息VPN桥接配置命令修改(参见配置连接顺序)。

使用主动/备用冗余的桥接

下图显示了一对事件代理(solace2solace3),它们已被配置为在主动/备用配置中运行。solace1上的消息VPN Green配置了与solace2上的消息VPN Yellow的VPN桥接连接,以便消息VPN Green可以从VPN Yellow接收消息。

如果solace2因任何原因离线,solace3接管solace2的主IP地址,并为solace2上的所有消息VPN提供服务。

使用主动/备用冗余的VPN桥接

img

solace1不需要特别的配置来利用这种冗余模型。solace1事件代理只需配置从消息VPN Green(主)到solace2上的消息VPN Yellow的桥接连接,通过solace2的主地址(或对应于该主地址的域名系统[DNS]名称)连接:

solace1(configure)# create bridge To-Yellow message-vpn Green primary
solace1(configure/bridge)# create remote message-vpn Yellow connect-via solace2

要使solace2上的消息VPN Yellow连接到solace1上的消息VPN Greensolace2需要配置从消息VPN Yellow(主)到solace1上的消息VPN Green的桥接连接,通过solace1的主地址(或对应于该主地址的DNS名称)连接。

当为冗余对中的两个事件代理启用Config-Sync时,它们之间的配置参数会自动同步。因此,也会创建从solace3上的消息VPN Yellow(备份)到solace1上的消息VPN Green的桥接连接。

使用备用远程连接的N+1冗余桥接

下图显示了一组事件代理(solace2solace3solace4)在N+1冗余配置中部署。solace4事件代理作为solace2solace3事件代理上配置的消息VPN的备份事件代理。在此配置中,连接到solace2的客户端使用PubSub+消息传递API中的主机列表功能连接到solace4,如果solace2无法到达。类似地,连接到solace3的客户端使用主机列表功能连接到solace4,如果solace3无法到达。

solace1上的消息VPN Green配置了与solace2上的消息VPN Yellow的桥接连接,以便它可以从消息VPN Yellow接收消息。

在这种情况下,solace1事件代理上的VPN桥接必须配置多个“远程”参数,以标识如果无法建立主连接,桥接的备用连接:

solace1(configure)# create bridge To-Yellow message-vpn Green primary
solace1(configure/bridge)# create remote message-vpn Yellow connect-via solace2
solace1(configure/bridge/remote)# connect-order 1
solace1(configure/bridge/remote)# exit
solace1(configure/bridge)# create remote message-vpn Yellow connect-via solace4
solace2(configure/bridge/remote)# connect-order 2

使用备用远程连接的N+1冗余桥接

img

为了防止暂时失去对solace2的连接导致桥接连接不经意地建立到solace4的情况,建议将桥接的远程重试计数远程重试延迟VPN配置命令参数设置为足够高的值,以消除可能发生的任何瞬态网络中断。

或者,许多网络运营商选择通过shutdown命令在备份事件代理上行政禁用消息VPN,并仅在主事件代理为该VPN离线时,通过no shutdown命令启用特定的备份VPN实例。然而,这样的政策会大幅度增加故障转移时间,因为需要手动干预才能使备份VPN实例上线。

如果solace2上的消息VPN Yellow希望连接到solace1上的消息VPN Green,solace2solace4事件代理需要配置桥接到solace1上的消息VPN Green:

由于在这种情况下不使用主动/备用冗余,因此在solace2solace4事件代理上的桥接连接是主连接。

solace2(configure)# create bridge To-Green message-vpn Yellow primary
solace2(configure/bridge)# create remote message-vpn Green connect-via solace1
solace4(configure)# create bridge To-Green message-vpn Yellow primary
solace4(configure/bridge)# create remote message-vpn Green connect-via solace1

对于这种配置,强烈建议在正常运行条件下通过shutdown命令在备份事件代理上行政禁用消息VPN,并仅在主事件代理失败时启用。否则,即使消息VPN处于备用状态且没有活动订阅者连接到它们,备份事件代理上的消息VPN桥接始终会吸引来自它们连接的事件代理的流量。

使用DNS重定向的N+1冗余桥接

使用DNS重定向的N+1冗余模型与使用备用远程连接的冗余模型几乎相同,如上图所示。然而,在使用DNS重定向时,始终使用相同的事件代理DNS名称,因此无需配置备用连接。solace1事件代理上的配置变为以下内容:

solace1(configure)# create bridge To-Yellow message-vpn Green primary
solace1(configure/bridge)# create remote message-vpn Yellow connect-via solace2
solace1(configure/bridge/remote)# exit

这种冗余方法的缺点是,在故障转移场景中,网络运营商必须重新配置DNS,以便对solace2的地址请求返回solace4的IP地址。

在“使用备用远程连接的N+1冗余桥接”中讨论的关于在备份事件代理上关闭消息VPN的所有建议也适用于使用DNS重定向的冗余。