配置DMR集群
集群是事件代理上的一个配置对象,包含全局DMR配置参数。每个节点只能有一个集群。配置在集群级别的参数适用于集群中的所有链接,除非您通过提供等效的集群链接级别配置来覆盖每个设置。
要创建一个集群,请输入以下命令:
solace(configure)# routing
solace(configure/routing)# dynamic-message-routing
solace(...igure/routing/dynamic-message-routing)# create cluster <cluster-name>
要配置现有集群, 请输入以下命令:
solace(...igure/routing/dynamic-message-routing)# cluster <cluster-name>
要启用集群,请输入以下命令:
solace(...uting/dynamic-message-routing/cluster)# no shutdown
其中:
<cluster-name>
是您希望该节点所属的集群名称。
您可以为现有集群执行的配置任务包括:
- 配置集群上的身份验证
- 启用TLS/SSL加密
配置集群上的身份验证
当您配置集群级别的身份验证时,每个设置适用于集群中的所有链接。如果您希望提供每个链接的身份验证,请参阅配置链接上的身份验证。
配置基本身份验证
基本身份验证是PubSub+事件代理使用的默认客户端身份验证方案。此身份验证方案允许集群链接连接到远程节点,并使用密码对该节点进行身份验证。
基本身份验证与明文和加密连接兼容。有关配置加密连接的更多信息,请参见启用TLS/SSL加密。
要为集群中的所有链接配置基本身份验证,请输入以下命令:
solace(...igure/routing/dynamic-message-routing)# cluster <cluster-name>
solace(...uting/dynamic-message-routing/cluster)# authentication
solace(...essage-routing/cluster/authentication)# basic
配置身份验证类型
要配置用于集群链接连接的基本身份验证类型,请输入以下命令:
solace(...-routing/cluster/authentication/basic)# auth-type {internal | none}
其中:
internal
指定对集群链接连接进行本地配置的密码进行身份验证。
none
指定不需要身份验证(换句话说,允许匿名登录)。
为基本内部身份验证配置密码
要为集群链接连接的基本内部身份验证配置密码,请输入以下命令:
solace(...-routing/cluster/authentication/basic)# password <password>
其中:
<password>
是您希望用于验证传入集群链接(控制和数据通道)的密码。如果每个链接没有单独的密码,则此密码也用于所有传出链接。
使用客户端证书配置身份验证
客户端证书身份验证要求集群链接通过来自受认可的证书颁发机构(CA)的X509v3客户端证书向远程节点证明其身份。
要使用客户端证书身份验证,您必须配置集群链接在启动连接时向远程 节点提供的客户端证书。发起链接连接的节点向远程节点提供其客户端证书;远程节点向发起节点提供其SSL服务器证书以进行客户端认证。每个节点可以配置一个每个集群的客户端证书,用作传出链接的凭据。每个集群只能配置一个客户端证书;不能在每个链接的基础上覆盖。此外,在使用客户端证书身份验证的集群链接时,您必须配置至少一个客户端证书匹配规则条件(请参见配置客户端证书匹配规则)。
客户端证书身份验证仅与加密连接兼容。有关配置加密连接的更多信息,请参见启用TLS/SSL加密。
要为集群中的所有链接配置客户端证书身份验证,请输入以下命令:
solace(...igure/routing/dynamic-message-routing)# cluster <cluster-name>
solace(...uting/dynamic-message-routing/cluster)# authentication
solace(...essage-routing/cluster/authentication)# client-certificate
配置要提供给远程节点的客户端证书文件锚
要配置要使用的证书文件,请输入以下命令:
solace(...ter/authentication/client-certificate)# certificate-file <file>
其中:
<file>
指定用于验证所有集群链接(控制和数据通道)的证书文件。此证书在建立连接时由发起连接的节点提供给远程节点以进行身份验证。证书文件必须位于监禁目录中的certs
目录中(请参见复制文件)。安装后,您可以删除certs
目录中的文件。
配置客户端证书匹配规则锚
当您配置客户端证书匹配时,您为每个集群创建一组匹配规则。要接受客户端证书作为有效凭据,该证书必须至少匹配一个规则。每个规则包含一组一个或多个条件,所有条件必须满足才能使证书匹配该规则。每个条件将证书字段与与集群链接相关联的属性或固定的通配符表达式进行比较。
您还可以创建属性过滤器,以确保匹配规则仅适用于具有特定属性值的集群链接。例如,您可以标记某些集群链接带有span
属性,然后创建一个规则,其中包含一个属性过滤器,检查span
属性的值是否设置为internal
,以及一个 简单条件,允许这些链接与远程节点进行身份验证。
在使用客户端证书身份验证的集群链接时,您必须配置至少一个客户端证书匹配规则条件。
要配置客户端证书匹配规则,请输入以下命令:
solace(...ter/authentication/client-certificate)# matching rules
solace(...ion/client-certificate/matching-rules)# create rule <name>
要配置客户端证书匹配规则条件,请输入以下命令:
solace(...lient-certificate/matching-rules/rule)# create condition {certificate-thumbprint | common-name | common-name-last | subject-alternate-name-msupn | uid | uid-last | org-unit | org-unit-last | issuer | subject | serial-number | dns-name | ip-address} {{matches-attribute <attribute>} | {matches-expression <expression>}}
要配置客户端证书匹配规则属性过滤器,请输入以下命令:
solace(...lient-certificate/matching-rules/rule)# create attribute-filter <name>
solace(.../matching-rules/rule/attribute-filter)# name <value>
solace(.../matching-rules/rule/attribute-filter)# value <value>
要启用证书匹配规则,请输入以下CONFIG命令:
solace(...lient-certificate/matching-rules/rule)# no shutdown
默认情况下,客户端证书匹配是禁用的,任何其他有效的证书都会被接受。要启用客户端证书匹配,请输入以下CONFIG命令:
solace(...ion/client-certificate/matching-rules)# no shutdown
其中:
rule <name>
指定证书匹配规则的名称。
certificate-thumbprint
将证书指纹与指定的属性或通配符表达式进行比较。证书指纹是整个DER编码证书的SHA-1哈希,由代理在接收到客户端证书后计算。
common-name
将客户端证书中CN的第一个实例与指定的属性或通配符表达式进行比较。
common-name-last
将客户端证书中CN的最后一个实例与指定的属性或通配符表达式进行比较。
subject-alternative-name-msupn
将客户端证书的SAN扩展中的msUPN(在otherName字段中)与指定的属性或通配符表达式进行比较。
uid
将客户端证书中用户标识符(UID)属性的第一个实例与指定的属性或通配符表达式进行比较。
uid-last
将客户端证书中UID属性的最后一个实例与指定的属性或通配符表达式进行比较。
org-unit
将客户端证书中组织单位属性的第一个实例与指定的属性或通配符表达式进行比较。
org-unit-last
将客户端证书中组织单位属性的最后一个实例与指定的属性或通配符表达式进行比较。
issuer
将客户端证书中的发行者属性与指定的属性或通配符表达式进行比较。
subject
将客户端证书中的主题属性与指定的属性或通配符表达式进行比较。
serial-number
将客户端证书的序列号与指定的属性或通配符表达式进行比较。
dns-name
将客户端证书的SAN扩展中的DNS名称与指定的属性或通配符表达式进行比较。
ip-address
将客户端证书的SAN扩展中的IP地址与指定的属性或通配符表达式进行比较。
matches-attribute <attribute>
指定用于比较的属性。
matches-expression <expression>
指定用于比较的通配符表达式。该表达式直接与从证书中提取的字段进行比较,并可以包含通配符。
attribute-filter <name>
指定属性过滤器的名称。
attribute <value>
指定要测试的属性名称。
value <value>
指定属性的预期值,以便应用证书匹配规则。
证书匹配规则在链接或集群重启之前没有效果。
内部链接的示例
内部链接可能具有统一的规则集,或最有可能是一个规则,该规则从客户端证书中提取节点名称并与携带节点名称的链接属性进行比较。针对内部链接的典型规则可能如下所示:
solace(...ion/client-certificate/matching-rules)# create rule internal
solace(...lient-certificate/matching-rules/rule)# create condition common-name matches-attribute nodeName
solace(...lient-certificate/matching-rules/rule)# no shutdown
这要求您还在集群链接上创建nodeName
属性,更多信息,请参见设置集群链接属性。