此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何设计Expressway集群以扩展Expressway安装的可复原性和容量。
容量。与单个Expressway相比,Expressway集群最多可以将一个Expressway部署的容量增加4倍。集群中的Expressway对等体共享带宽使用情况以及路由、区域、FindMe和其他配置。
恢复力。Expressway集群可以在Expressway处于维护模式时提供冗余,或者在由于网络、断电或其他原因而无法访问时提供冗余。终端可以注册到集群中的任何对等体。如果终端丢失与其初始对等体的连接,它们可以重新注册到集群中的另一个对等体。
Expressway可以是最多包含六条Expressway的集群的一部分。创建集群时,您指定一个对等体作为主节点,其配置将从主节点复制到其他对等体。集群中的每个Expressway对等体必须具有相同的路由功能,如果任何Expressway可以将呼叫路由到目标,则假定该集群中的所有Expressway对等体都可以将呼叫路由到该目标。
在四个对等体之后没有容量增加。因此,例如,在六对等集群中,第五和第六个Expressway不会向集群添加额外的呼叫容量。通过额外的对等体提高了可复原性,但无法提高容量。
每个对等体上的所有其他许可证密钥必须相同。
注意:如果Expressway-E使用单个网络接口控制器(NIC),则必须使用公共IP。如果Expressway-E使用双网卡,则必须使用内部接口构建集群。
注意:必须先创建一个(主)对等体的集群,然后重新启动主,再添加其他对等体。在建立一个集群后,可以添加更多对等体。
主要配置:1
集群IP版本:选择IPv4或IPv6以匹配网络地址方案。
TLS验证模式选项:Permissive(默认)或Enforce。
Permissive意味着当集群内传输层安全(TLS)连接建立时,对等体不会验证彼此的证书。
实施更加安全,但要求每个对等体都具有有效证书,并且证书颁发机构(CA)受所有其他对等体的信任。
对等体1地址:输入此Expressway(主要对等体)的地址。 如果TLS验证模式设置为Enforce,则必须输入完全限定域名(FQDN),该域名与此对等体证书上的主题公用名(CN)或主题备用名(SAN)匹配。
要添加其他对等体,请执行以下步骤:
警告:继续之前,请验证证书SAN是否包含对等体N地址字段中的FQDN。您必须看到每个地址字段旁的集群和证书的绿色状态消息,然后才能继续。
警告:如果任何证书无效并阻止群集在强制TLS验证模式下正常工作,则会显示警告。
注意:即使当前主要对等体不可访问,也可以执行此过程。
注意:执行此过程时,忽略Expressway上报告Cluster primary mismatch或Cluster replication错误的任何警报。
注意:执行此过程时,对等体之间的通信会暂时受到影响,这意味着在更改完成且集群在新地址上同意之前,预期会看到持续存在的警报。
对于移动和远程访问(MRA)等安全部署,每个Expressway-E对等体都必须具有包含其公共FQDN的SAN证书。FQDN在公共DNS中映射到Expressway E的公共IP地址。
注意:如果您只是希望对Cisco Expressway-E对等体进行集群,并且不需要它们之间的TLS验证,则可以使用节点的专用IP地址组成集群。您不需要集群地址映射。
集群地址映射是FQDN:IP对,它们围绕集群共享,每个对等体对应一对。对等体在查询DNS之前会查询映射表,如果找到匹配项,则不会查询DNS。
如果选择实施TLS,对等体还必须从彼此的证书的SAN字段读取名称,并根据映射的FQDN端检查每个名称。
强烈建议您在主要对等体上输入映射。地址映射在集群中动态复制。要配置地址映射,请执行以下步骤:
警告:请勿尝试使用公共DNS将对等体的公共FQDN映射到其专用IP地址,此操作可能会中断外部连接。
如果您希望集群中的Expressway-E对等体使用证书验证彼此的身份,您可以允许它们使用DNS将集群对等体FQDN解析为其公有IP地址。如果Expressway-E节点具备以下功能,则这种形成集群的方式完全可以接受:
如果从集群页面清除所有对等体地址字段并保存配置,则默认情况下,Expressway会在下次执行重新启动时自行执行出厂重置。这意味着除局域网1(LAN1)接口的基本网络配置外,所有配置都已删除,其中包括在清除字段和下次重新启动后执行的所有配置。
提示:如果需要避免出厂重置,请恢复集群对等体地址字段。以相同顺序替换原始对等体地址,然后保存配置以清除标语。
对等体重新启动时,会自动触发出厂重置,以删除敏感数据和集群配置。重置将清除除下一个基本网络信息之外的所有配置:
注意:如果使用双NIC选项,请注意重置后会完全删除任何LAN2配置。
注意:从版本X12.6中,出厂重置从对等项中删除服务器证书、关联的私钥和CA信任存储设置。在早期的Expressway软件版本中,这些设置会被保留。
出厂重置可能会失败,如果Expressway是全新安装的开放式虚拟化设备(OVA),且尚未升级,则可能会发生这种情况。
要解决此问题,请遵循以下任一选项:
注意:确保在升级、证书更改之前或出现出厂重置警告时进行正确的备份。
如果需要重新启动集群或任何对等体,请执行以下步骤:
注意:进行任何集群更改后,您可能需要等待约5分钟,然后Expressway对等体才会报告成功状态。
集群错误的警报以如下格式显示:群集复制错误:(详细信息)需要手动同步配置,下面是其中一些示例:
如果从属Expressway报告上述警报,请遵循以下步骤:
注意:确保在升级、证书更改之前或出现出厂重置警告时进行正确的备份。
如果问题仍然存在,则可能与每个集群对等体的加密密钥有关。通常,当以错误顺序升级对等体时,从属对等体不会与主对等体同步。因此,如果xcommand forceconfigupdate不起作用,请执行以下操作步骤:
在主对等体升级并重新启动后,复制警报会清除。这通常发生在重新启动后10分钟内,但可能最多发生在重新启动后20分钟。
无效的群集配置:必须打开H.323模式 — 集群使用对等体之间的H.323通信。
要清除此警报,请确保H.323模式已打开,导航到Configuration > Protocols > H.323。
Expressway数据库故障:请联系您的思科支持代表。
要对此类警报进行故障排除,请遵循以下步骤:
如果数据库无法恢复,则可以使用第二种方法:
注意:确保在升级、证书更改之前或出现出厂重置警告时进行正确的备份。
警告:clusterdb_destroy_and_purge_data.sh与听起来一样危险 — 使用此选项作为最后手段。
注意:下一个信息适用于X14以后的版本。
无法更新在单节点场景的Expressway上出现的关键文件警报。
按照以下步骤排除此类警报故障:
未能更新集群场景上Expressway上出现的关键文件警报。
按照以下步骤排除此类警报故障:
与Expressway上的任何其他日志一样,您可以使用TCP转储启用诊断日志。
在正常状态下,Master node上的DB Synchronization在日志中显示为下一个输出:
2020-07-21T15:16:50.321-05:00 expc01 replication: UTCTime="2020-07-21 20:16:50,321" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(270)" Detail="Starting synchronisation"
2020-07-21T15:16:50.330-05:00 expc01 replication: UTCTime="2020-07-21 20:16:50,330" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationutils(750)" AlternateIPAddresses="[u'(10.15.13.15 expc01)', u'(10.15.13.16 expc02)']" ConfigurationMasterIndex="0" LocalPeerIndex="0"
2020-07-21T15:16:50.433-05:00 expc01 replication: UTCTime="2020-07-21 20:16:50,433" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(257)" Detail="This peer is the cluster master, local configuration has already been replicated to the other peers"
2020-07-21T15:16:50.437-05:00 expc01 replication: UTCTime="2020-07-21 20:16:50,437" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(336)" Detail="Synchronisation completed successfully"
从对等节点的角度来看,它显示为下一个输出:
2020-07-21T15:16:46.900-05:00 expc02 replication: UTCTime="2020-07-21 20:16:46,899" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(270)" Detail="Starting synchronisation"
2020-07-21T15:16:46.908-05:00 expc02 replication: UTCTime="2020-07-21 20:16:46,908" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationutils(750)" AlternateIPAddresses="[u'(10.15.13.15 expc01)', u'(10.15.13.16 expc02)']" ConfigurationMasterIndex="0" LocalPeerIndex="1"
2020-07-21T15:16:46.947-05:00 expc02 replication: UTCTime="2020-07-21 20:16:46,946" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(254)" Detail="This peer is not the cluster master, local configuration is already up to date"
2020-07-21T15:16:46.950-05:00 expc02 replication: UTCTime="2020-07-21 20:16:46,950" Module="developer.replication" Level="INFO" CodeLocation="clusterconfigurationsynchroniser(336)" Detail="Synchronisation completed successfully"
下一个输出中显示对等体断开:
2020-08-12T14:57:43.353-05:00 expc01 UTCTime="2020-08-12 19:57:43,353" Module="developer.clusterdb.cdb" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.159.0>" Detail="Processed mnesia_down event from accessible node" Node="clusterdb@expc02.apolo.local"
2020-08-12T14:57:43.354-05:00 expc01 UTCTime="2020-08-12 19:57:43,353" Module="developer.clusterdb.cdb" Level="ERROR" Node="clusterdb@expc01.apolo.local" PID="<0.159.0>" Detail="Inconsistent Database" Context="from mnesia system - mnesia down" Node="clusterdb@expc02.apolo.local"
2020-08-12T14:57:43.354-05:00 expc01 UTCTime="2020-08-12 19:57:43,354" Module="developer.clusterdb.cdb" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.159.0>" Detail="Connecting database on mnesia running_partitioned_network event" Node="clusterdb@expc02.apolo.local"
2020-08-12T14:57:43.354-05:00 expc01 UTCTime="2020-08-12 19:57:43,354" Module="developer.clusterdb.cdb" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.14215.425>" Detail="Ready to perform node connection transaction" Node="clusterdb@expc02.apolo.local"
2020-08-12T14:57:43.354-05:00 expc01 UTCTime="2020-08-12 19:57:43,354" Module="developer.clusterdb.cdb" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.14215.425>" Detail="Running node connection transaction" Node="clusterdb@expc02.apolo.local"
2020-08-12T14:57:43.354-05:00 expc01 UTCTime="2020-08-12 19:57:43,354" Module="developer.clusterdb.synchronise" Level="WARN" Node="clusterdb@expc01.apolo.local" PID="<0.14215.425>" Detail="Failed connecting to node" Node="clusterdb@expc02.apolo.local" Reason="{ badrpc, { EXIT, { aborted, { noproc, { gen_server, call, [ kernel_safe_sup, { start_child, { dets_sup, { dets_sup, start_link, }, permanent, 1000, supervisor, [ dets_sup ] } }, infinity ] } } } } }"
2020-08-12T14:57:43.524-05:00 expc01 alarm: Level="WARN" Event="Alarm Raised" Id="20006" UUID="0f96695e-d954-4f6f-85c1-2ef1eae6f764" Severity="warning" Detail="Cluster database communication failure: The database is unable to replicate with one or more of the cluster peers" UTCTime="2020-08-12 19:57:43,524"
2020-08-12T14:57:43.771-05:00 expc01 alarm: Level="WARN" Event="Alarm Raised" Id="20004" UUID="3bca6888-f622-11df-93be-07cc953d7b99" Severity="warning" Detail="Cluster communication failure: The system is unable to communicate with one or more of the cluster peers" UTCTime="2020-08-12 19:57:43,771"
2020-08-12T14:57:53.872-05:00 expc01 tvcs: UTCTime="2020-08-12 19:57:53,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS SCI SeqNum=52319 Retransmit=True"
2020-08-12T14:57:54.872-05:00 expc01 tvcs: UTCTime="2020-08-12 19:57:54,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS LRQ SeqNum=52320 Retransmit=True"
2020-08-12T14:57:56.872-05:00 expc01 tvcs: UTCTime="2020-08-12 19:57:56,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS LRQ SeqNum=52320 Retransmit=True"
2020-08-12T14:57:57.871-05:00 expc01 tvcs: UTCTime="2020-08-12 19:57:57,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS SCI SeqNum=52319 Retransmit=True"
2020-08-12T14:57:58.871-05:00 expc01 tvcs: Event="External Server Communications Failure" Reason="gatekeeper timed out" Service="NeighbourGatekeeper" Detail="name:10.15.13.16:1719" Level="1" UTCTime="2020-08-12 19:57:58,871"
2020-08-12T14:57:58.871-05:00 expc01 tvcs: UTCTime="2020-08-12 19:57:58,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS LRQ SeqNum=52320 Timeout=True"
2020-08-12T14:57:59.601-05:00 expc01 UTCTime="2020-08-12 19:57:59,601" Module="developer.clusterdb.peernameresolver" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.145.0>" Detail="Triggering forced peer update of peers which failed DNS and queueing next run" Queue-Time-ms="300000"
2020-08-12T14:58:01.871-05:00 expc01 tvcs: UTCTime="2020-08-12 19:58:01,871" Module="network.h323" Level="INFO": Action="Sent" Dst-ip="10.15.13.16" Dst-port="1719" Detail="Sending RAS SCI SeqNum=52319 Timeout=True"
Master节点上的TLS强制更改显示在下一个输出中:
2020-08-12T15:13:24.970-05:00 expc01 UTCTime="2020-08-12 20:13:24,969" Module="developer.cdbtable.cdb.clusterConfiguration" Level="DEBUG" Node="clusterdb@expc01.apolo.local" PID="<0.345.0>" Detail="Inserting into table" TableName="clusterConfiguration"
2020-08-12T15:13:24.976-05:00 expc01 UTCTime="2020-08-12 20:13:24,975" Event="System Configuration Changed" Node="clusterdb@expc01.apolo.local" PID="<0.345.0>" Detail="xconfiguration clusterConfiguration tls_verify - changed from: Permissive to: Enforcing"
2020-08-12T15:13:24.976-05:00 expc01 httpd[15060]: web: Event="System Configuration Changed" Detail="configuration/cluster/tls_verify - changed from: 'Permissive' to: 'Enforcing'" Src-ip="10.15.13.30" Src-port="53155" User="admin" Level="1" UTCTime="2020-08-12 20:13:24"
2020-08-12T15:13:24.979-05:00 expc01 management: UTCTime="2020-08-12 20:13:24,978" Module="developer.management.databasemanager" Level="INFO" CodeLocation="databasemanager(312)" Detail="Cluster configuration change detected"
2020-08-12T15:13:24.980-05:00 expc01 UTCTime="2020-08-12 20:13:24,980" Module="developer.cdbtable.cdb.clusterConfiguration" Level="DEBUG" Node="clusterdb@expc01.apolo.local" PID="<0.345.0>" Detail="Inserting into table" TableName="clusterConfiguration"
2020-08-12T15:13:24.986-05:00 expc01 management: UTCTime="2020-08-12 20:13:24,986" Module="developer.management.databasemanager" Level="INFO" CodeLocation="databasemanager(405)" Detail="TLS Verify change status" Startup="False" New="True"
2020-08-12T15:13:25.022-05:00 expc01 UTCTime="2020-08-12 20:13:25,022" Event="System Configuration Changed" Node="clusterdb@expc01.apolo.local" PID="<0.557.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.022-05:00 expc01 UTCTime="2020-08-12 20:13:25,022" Module="developer.clusterdb.peernameresolver" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.145.0>" Detail="Notifying databasemanager (Management Framework)"
2020-08-12T15:13:25.022-05:00 expc01 UTCTime="2020-08-12 20:13:25,022" Module="developer.clusterdb.alternatesmanager" Level="INFO" Node="clusterdb@expc01.apolo.local" PID="<0.142.0>" Detail="alternate peer changed info recieved"
2020-08-12T15:13:25.031-05:00 expc01 UTCTime="2020-08-12 20:13:25,031" Event="System Configuration Changed" Node="clusterdb@expc01.apolo.local" PID="<0.557.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.192-05:00 expc01 management: UTCTime="2020-08-12 20:13:25,192" Module="developer.diagnostics.alarmmanager" Level="INFO" CodeLocation="alarmmanager(173)" Detail="Raising alarm" UUID="e2b8e3d1-b731-4d7d-b606-4682a8f0c2e6" Parameters="null"
2020-08-12T15:13:25.195-05:00 expc01 management: Level="WARN" Event="Alarm Raised" Id="20007" UUID="e2b8e3d1-b731-4d7d-b606-4682a8f0c2e6" Severity="warning" Detail="Restart required: Cluster configuration has been changed, however a restart is required for this to take effect" UTCTime="2020-08-12 20:13:25,194"
从对等节点的角度,它显示在下一个输出中:
2020-08-12T15:13:24.976-05:00 expc02 UTCTime="2020-08-12 20:13:24,976" Event="System Configuration Changed" Node="clusterdb@expc02.apolo.local" PID="<0.390.0>" Detail="xconfiguration clusterConfiguration tls_verify - changed from: Permissive to: Enforcing"
2020-08-12T15:13:24.979-05:00 expc02 management: UTCTime="2020-08-12 20:13:24,978" Module="developer.management.databasemanager" Level="INFO" CodeLocation="databasemanager(312)" Detail="Cluster configuration change detected"
2020-08-12T15:13:24.982-05:00 expc02 management: UTCTime="2020-08-12 20:13:24,982" Module="developer.management.databasemanager" Level="INFO" CodeLocation="databasemanager(405)" Detail="TLS Verify change status" Startup="False" New="True"
2020-08-12T15:13:25.040-05:00 expc02 UTCTime="2020-08-12 20:13:25,040" Module="developer.clusterdb.peernameresolver" Level="INFO" Node="clusterdb@expc02.apolo.local" PID="<0.136.0>" Detail="Notifying databasemanager (Management Framework)"
2020-08-12T15:13:25.040-05:00 expc02 UTCTime="2020-08-12 20:13:25,040" Module="developer.clusterdb.alternatesmanager" Level="INFO" Node="clusterdb@expc02.apolo.local" PID="<0.143.0>" Detail="alternate peer changed info recieved"
2020-08-12T15:13:25.041-05:00 expc02 UTCTime="2020-08-12 20:13:25,041" Event="System Configuration Changed" Node="clusterdb@expc02.apolo.local" PID="<0.543.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.042-05:00 expc02 UTCTime="2020-08-12 20:13:25,042" Event="System Configuration Changed" Node="clusterdb@expc02.apolo.local" PID="<0.543.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.046-05:00 expc02 UTCTime="2020-08-12 20:13:25,046" Module="developer.clusterdb.alternatesmanager" Level="INFO" Node="clusterdb@expc02.apolo.local" PID="<0.143.0>" Detail="alternate peer changed info recieved"
2020-08-12T15:13:25.047-05:00 expc02 UTCTime="2020-08-12 20:13:25,046" Module="developer.clusterdb.peernameresolver" Level="INFO" Node="clusterdb@expc02.apolo.local" PID="<0.136.0>" Detail="Notifying databasemanager (Management Framework)"
2020-08-12T15:13:25.047-05:00 expc02 UTCTime="2020-08-12 20:13:25,047" Event="System Configuration Changed" Node="clusterdb@expc02.apolo.local" PID="<0.543.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.049-05:00 expc02 UTCTime="2020-08-12 20:13:25,049" Event="System Configuration Changed" Node="clusterdb@expc02.apolo.local" PID="<0.543.0>" Detail="xconfiguration alternatesConfiguration - Changed"
2020-08-12T15:13:25.136-05:00 expc02 management: UTCTime="2020-08-12 20:13:25,136" Module="developer.diagnostics.alarmmanager" Level="INFO" CodeLocation="alarmmanager(173)" Detail="Raising alarm" UUID="e2b8e3d1-b731-4d7d-b606-4682a8f0c2e6" Parameters="null"
2020-08-12T15:13:25.139-05:00 expc02 management: Level="WARN" Event="Alarm Raised" Id="20007" UUID="e2b8e3d1-b731-4d7d-b606-4682a8f0c2e6" Severity="warning" Detail="Restart required: Cluster configuration has been changed, however a restart is required for this to take effect" UTCTime="2020-08-12 20:13:25,139"
下一个视图可能会很有用:
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
02-Jul-2021
|
初始版本 |