10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册摘录

18.6.1组复制IP权限

Group Replication Plugin允许您指定可以接受传入组通信系统连接的主机的AllowList。如果您在服务器S1上指定AllowList,那么当服务器S2正建立到S1的连接以接合组通信时,S1首先检查从S2接受连接之前检查arplowList。如果S2位于AllowList中,则S1接受连接,否则S1拒绝S2的连接尝试。从MySQL 8.0.22,系统变量group_replication_ip_allowlist用于指定AllowList,以及MySQL 8.0.22之前的版本,系统变量group_replication_ip_whitelist.用来。新系统变量以与旧系统变量相同的方式工作,只有术语已更改。

如果未明确指定AllowList,则组通信引擎(XCOM)会自动扫描主机上的活动接口,并将具有为每个接口配置的子网掩码以及配置的子网屏蔽中的带地址识别。这些地址,以及本地主机IP地址为IPv4和(从MySQL 8.0.14) IPv6用于创建一个自动组复制允许列表。因此,自动允许列表包括应用了适当的子网掩码后,在以下范围内为主机找到的任何IP地址:

IPv4(如RFC 1918所定义)10/8前缀(10.0.0.0  -  10.255.255.255) -  A类172.16 / 12前缀(172.16.0.0  -  172.31.255.255) -  B级192.168 / 16前缀(192.168.0.0  -  192.168。255.255) - Class C IPv6 (as defined in RFC 4193 and RFC 5156) fc00:/7 prefix - unique-local addresses fe80::/10 prefix - link-local unicast addresses 127.0.0.1 - localhost for IPv4 ::1 - localhost for IPv6

将一个条目添加到错误日志中,说明主机自动允许的地址。

私有地址的自动AlletList不能用于从专用网络外部的服务器的连接,因此服务器,即使它在公共IPS上具有接口,也不会默认允许从外部主机进行组复制连接。对于不同机器上的服务器实例之间的组复制连接,您必须提供公共IP地址并将其指定为显式允许列表。如果为AllowList指定任何条目,私人和本地主机没有自动添加地址,因此如果使用这些,则必须明确指定它们。

要手动指定AllowList,请使用group_replication_ip_allowlist(从MySQL 8.0.22)或group_replication_ip_whitelist.系统变量。在MySQL 8.0.24之前,您无法在服务器上更改AllowList,而它是复制组的活动成员。如果成员处于活动状态,则必须执行停止group_replication.在更改AllowList之前,和开始GROUP_REPLICATION然后。从MySQL 8.0.24,您可以在运行组复制时更改AllowList。

AllowList必须包含每个成员中指定的IP地址或主机名group_replication_local_address.系统变量。此地址与MySQL服务器SQL协议的主机和端口不相同,并且没有在bind_address服务器实例的系统变量。如果使用作为服务器实例的组复制本地地址的主机名解析为IPv4和IPv6地址,则IPv4地址是针对组复制连接的首选。

指定为分布式恢复端点的IP地址,以及成员的标准SQL客户机连接(如果用于分布式恢复的话)的IP地址(这是默认值),不需要添加到allowlist中。允许列表只针对指定的地址group_replication_local_address.对于每个成员。加入成员必须将其与AllowList允许的组的初始连接,以便检索用于分布式恢复的地址或地址。

在allowlist中,你可以指定以下任意组合:

  • IPv4地址(例如:198.51.100.44

  • 具有CIDR符号的IPv4地址(例如,192.0.2.21/24

  • ipv6地址来自mysql 8.0.14(例如,2001:DB8:85A3:8D3:1319:8A2E:370:7348

  • 使用CIDR符号的IPv6地址,从MySQL 8.0.14(例如,2001: db8:85a3:8d3:: / 64

  • 主机名(例如,example.org.

  • 带有CIDR符号的主机名(例如,www.example.com/24

在MySQL 8.0.14之前,主机名只能解析为IPv4地址。从MySQL 8.0.14,主机名可以解析为IPv4地址,IPv6地址,或两者。如果主机名同时解析为IPv4和IPv6地址,则IPv4地址始终用于组复制连接。您可以将CIDR符号与主机名或IP地址组合使用,以允许具有特定网络前缀的IP地址块,但一定要确保指定子网中的所有IP地址都在您的控制之下。

笔记

当由于地址不在AllowList中拒绝IP地址的连接尝试时,拒绝消息始终以IPv6格式打印IP地址。IPv4地址之前::飞行符:在此格式(IPv4映射IPv6地址)。您无需使用此格式指定AllowList中的IPv4地址;使用标准IPv4格式。

您必须在成员上停止并重新启动组复制,以便更改其AllowList。逗号必须将每个条目分开在AllowList中。例如:

mysql >停止GROUP_REPLICATION;mysql> SET GLOBAL group_replication_ip_allowlist="192.0.2.21/24,198.51.100.44,203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e: 37:7348,example.org,www.example.com/24";mysql >开始GROUP_REPLICATION;

要加入复制组,需要允许服务器向其发出加入组请求的种子成员。通常,这将是复制组的引导成员,但它可以是group_replication_group_seeds连接组的服务器的配置中的选项。如果本集团的任何种子成员列于其中group_replication_group_seeds连接成员具有IPv4时的IPv6地址的选项group_replication_local_address.或者还必须设置并允许SEED成员提供的协议的连接成员的替代地址(或解析为该协议的地址的主机名)。这是因为当服务器加入复制组时,它必须使用种子成员广告中的协议进行与种子成员的初始接触group_replication_group_seeds选项,无论是IPv4还是IPv6。如果连接成员没有适当的协议的允许地址,则拒绝其连接尝试。有关管理混合IPv4和IPv6复制组的更多信息,请参阅第18.5.5节,“对IPv6和混合IPv6和IPv4组的支持”

When a replication group is reconfigured (for example, when a new primary is elected or a member joins or leaves), the group members re-establish connections between themselves.如果只有在重新配置后不再是Replication组的服务器的服务器允许的组成员,则无法重新连接到不允许其的复制组中的剩余服务器。要完全避免此方案,请为包含复制组成员的所有服务器指定相同的AllowList。

笔记

例如,可以根据安全要求在不同的组成员上配置不同的allowlists,以便将不同的子网分开。如果需要配置不同的AllowLists以满足您的安全要求,请确保复制组中的AllowLists之间存在足够的重叠,以最大限度地提高服务器能够在缺少其原始种子成员的情况下重新连接的可能性。

对于主机名,仅当另一台服务器进行连接请求时才会发生名称分辨率。对于AllowList验证,不考虑无法解析的主机名,并将警告消息写入错误日志。对已解析的主机名进行前向确认的反向DNS(FCRDN)验证。

警告

主机名本质上不太安全,而不是AllowList中的IP地址。FCRDNS验证提供了良好的保护级别,但可能会受到某些类型的攻击损害。仅在严格必需时指定AllowList中的主机名,并确保在您的控件下维护用于名称解析的所有组件,例如DNS服务器。您还可以使用主机文件本地实现名称分辨率,以避免使用外部组件。