Spec-Zone.ru › MySQL 8.4

20.6.4 Разрешения на IP-адреса для групповой репликации

Только при использовании стека коммуникаций XCom для установления групповой связи (group_replication_communication_stack=XCOM), плагин групповой репликации позволяет указать список разрешённых узлов, с которых можно принимать входящие соединения системы групповой связи. Если вы укажете список разрешённых узлов на сервере s1, то при установлении соединения сервером s2 с сервером s1 для целей групповой связи, s1 сначала проверяет этот список, прежде чем принять соединение от s2. Если s2 находится в этом списке, s1 принимает соединение, в противном случае s1 отклоняет попытку соединения s2. Для указания списка разрешённых узлов используется системная переменная group_replication_ip_allowlist.

Примечание

При использовании стека коммуникаций MySQL для установления групповой связи (group_replication_communication_stack=MYSQL), значение group_replication_ip_allowlist игнорируется. См. Раздел 20.6.1, «Управление стеком коммуникаций для безопасности соединений».

Если вы не указываете список разрешённых узлов явно, движок групповой связи (XCom) автоматически сканирует активные интерфейсы на узле и определяет те, у которых адреса находятся в частных подсетях, вместе с маской подсети, настроенной для каждого интерфейса. Эти адреса и localhost IP-адреса для IPv4 и IPv6 используются для создания автоматического списка разрешённых узлов для групповой репликации. Таким образом, автоматический список разрешённых узлов включает все IP-адреса, найденные для узла в следующих диапазонах после применения соответствующей маски подсети:

IPv4 (as defined in RFC 1918)
10/8 prefix       (10.0.0.0 - 10.255.255.255) - Class A
172.16/12 prefix  (172.16.0.0 - 172.31.255.255) - Class B
192.168/16 prefix (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

В журнал ошибок добавляется запись, указывающая адреса, которые были автоматически разрешены для узла.

Автоматический список разрешённых частных адресов не может использоваться для соединений с серверов за пределами частной сети, поэтому сервер, даже если у него есть интерфейсы с общедоступными IP-адресами, по умолчанию не разрешает подключения групповой репликации с внешних узлов. Для подключения групповой репликации между экземплярами серверов на разных машинах необходимо указать общедоступные IP-адреса и указать их в явном списке разрешённых узлов. Если вы укажете любые записи для списка разрешённых узлов, частные и localhost адреса не будут добавлены автоматически, поэтому если вы используете их, вы должны указать их явно.

Для ручного указания списка разрешённых узлов используется системная переменная group_replication_ip_allowlist. Вы можете изменить список во время работы групповой репликации.

Список разрешённых узлов должен содержать IP-адрес или имя хоста, указанное в системной переменной каждого члена group_replication_local_address. Этот адрес отличается от хоста и порта протокола MySQL и не указан в системной переменной bind_address для экземпляра сервера. Если имя хоста, используемое в качестве локального адреса групповой репликации для экземпляра сервера, разрешается как IPv4, так и IPv6 адрес, для подключений групповой репликации предпочтительным является IPv4 адрес.

IP-адреса, указанные в качестве конечных точек распределённого восстановления, и IP-адрес для стандартного соединения клиента SQL члена, если оно используется для распределённого восстановления (что является значением по умолчанию), не нужно добавлять в список разрешённых узлов. Список разрешённых узлов предназначен только для адреса, указанного в group_replication_local_address для каждого члена. Узел, присоединяющийся к группе, должен иметь разрешение на первоначальное подключение к группе, чтобы получить адрес или адреса для распределённого восстановления.

В списке разрешённых узлов можно указать любое сочетание следующих элементов:

  • IPv4-адреса (например, 198.51.100.44)

  • IPv4-адреса с CIDR-нотацией (например, 192.0.2.21/24)

  • IPv6-адреса (например, 2001:db8:85a3:8d3:1319:8a2e:370:7348)

  • IPv6-адреса с CIDR-нотацией (например, 2001:db8:85a3:8d3::/64)

  • Имена хостов (например, example.org)

  • Имена хостов с CIDR-нотацией (например, www.example.com/24)

Имена хостов могут разрешаться в IPv4-адреса, IPv6-адреса или оба. Если имя хоста разрешается как в IPv4, так и в IPv6 адрес, для подключений групповой репликации всегда используется IPv4-адрес. Вы можете использовать CIDR-нотацию в сочетании с именами хостов или IP-адресами, чтобы разрешить блок IP-адресов с определённым префиксом сети, но убедитесь, что все IP-адреса в указанной подсети находятся под вашим контролем.

Примечание

Когда попытка подключения с IP-адреса отклоняется из-за того, что адрес не указан в списке разрешённых узлов, сообщение об отклонении всегда выводит IP-адрес в формате IPv6. IPv4-адреса в этом формате предваряются ::ffff: (IP-адрес IPv4, отображенный как IPv6). Вам не нужно использовать этот формат для указания IPv4-адресов в списке разрешённых узлов; используйте для них стандартный формат IPv4.

Каждая запись в списке разрешённых узлов должна отделяться запятой. Например:

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:370:7348,example.org,www.example.com/24";

Для присоединения к группе репликации серверу необходимо разрешение на сервере-источнике, к которому он обращается для присоединения к группе. Как правило, это сервер-запускатель для группы репликации, но это может быть любой из серверов, указанных параметром group_replication_group_seeds в конфигурации сервера, присоединяющегося к группе. Если какой-либо из серверов-источников группы указан в параметре group_replication_group_seeds с IPv6-адресом, когда присоединяющийся узел имеет IPv4 group_replication_local_address, или наоборот, вы также должны настроить и разрешить альтернативный адрес для присоединяющегося узла для протокола, предлагаемого сервером-источником (или имя хоста, разрешаемое в адрес для этого протокола). Это связано с тем, что когда сервер присоединяется к группе репликации, он должен осуществить первоначальный контакт с сервером-источником с использованием протокола, который сервер-источник рекламирует в параметре group_replication_group_seeds, будь то IPv4 или IPv6. Если у присоединяющегося узла нет разрешенного адреса для соответствующего протокола, его попытка подключения отклоняется. Дополнительную информацию об управлении группами репликации с смешанными IPv4 и IPv6 можно найти в Разделе 20.5.5, «Поддержка IPv6 и смешанных групп IPv6 и IPv4».

При переконфигурации группы репликации (например, при избрании нового первичного сервера или при присоединении или удалении члена) члены группы повторно устанавливают соединения друг с другом. Если член группы разрешён только серверами, которые больше не являются частью группы репликации после переконфигурации, он не может повторно подключиться к оставшимся серверам в группе репликации, которые его не разрешают. Чтобы полностью избежать этой ситуации, укажите один и тот же список разрешённых узлов для всех серверов, которые являются членами группы репликации.

Примечание

В зависимости от ваших потребностей безопасности можно настроить разные списки разрешенных узлов на разных участниках группы, например, для изоляции разных подсетей. Если вам нужно настроить разные списки разрешённых узлов, чтобы удовлетворить ваши требования безопасности, убедитесь, что между списками разрешённых узлов в группе репликации есть достаточное перекрытие, чтобы максимизировать возможность подключения серверов в отсутствие их исходного сервера-источника.

Для имён хостов разрешение имён происходит только при запросе соединения другим сервером. Имя хоста, которое не может быть разрешено, не рассматривается для проверки списка разрешенных узлов, и в журнал ошибок записывается сообщение об ошибке. Для разрешенных имён хостов выполняется проверка обратного DNS с подтверждением (FCrDNS).

Предупреждение

Имена хостов по своей природе менее безопасны, чем IP-адреса в списке разрешенных узлов. Проверка обратного DNS с подтверждением (FCrDNS) обеспечивает хороший уровень защиты, но может быть скомпрометирована определёнными типами атак. Указывайте имена хостов в списке разрешенных узлов только в строго необходимых случаях и убедитесь, что все компоненты, используемые для разрешения имен, такие как DNS-серверы, находятся под вашим контролем. Вы также можете реализовать разрешение имён локально с помощью файла hosts, чтобы избежать использования внешних компонентов.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/group-replication-ip-address-permissions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API