Banco de Dados

6 jul, 2017

MariaDB MaxScale 2.1 com padrão para IPv6

Publicidade

Esta pequena atualização surpreendeu. Em um upgrade do MaxScale 2.0 para 2.1, o MaxScale alterou o endereço de ligação padrão de IPv4 para IPv6. Isso é mencionado nas notas de versão como esta:

O MaxScale 2.1.2 adicionou suporte para endereços IPv6. A interface padrão a que os ouvintes se ligam foi alterada do endereço IPv4 0.0.0.0 para o endereço IPv6 ::. Para vincular ao endereço IPv4 antigo, adicione address=0.0.0.0 à definição do ouvinte. – Upgrading MariaDB MaxScale from 2.0 to 2.1

O resultado é bastante significativo, porém, porque a autenticação no MySQL é geralmente baseada em host ou em IP, com permissões concedidas, como esta:

$ SET PASSWORD FOR 'xxx'@'10.0.0.1' = PASSWORD('your_password');

Observe o uso explícito do endereço IP ali.

Agora, após uma atualização do MariaDB 2.1, isso será padrão para a autenticação de um endereço IPv6, o que lhe dará a seguinte mensagem de erro;

$ mysql -h127.0.0.1 -P 3306 -uxxx -pyour_password
ERROR 1045 (28000): Access denied for user 'xxx'@'::ffff:127.0.0.1' (using password: YES)

Observe como 127.0.0.1 se transformou em :: ffff: 127.0.0.1? Esse é um endereço IPv4 que está sendo encapsulado em um endereço IPv6. E ele fará com que a autenticação MySQL potencialmente falhe, dependendo de como você tenha atribuído seus usuários e permissões.

Para corrigir isso, você pode:

No caso dos seus listeners do MaxScale, isso deve ser suficiente para resolver o problema:

$ cat maxscale.cnf
[listener_1]
type=listener
service=...
protocol=...
address=0.0.0.0
port=...

Espero que isso ajude!

 

***

Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/mariadb-maxscale-2-1-defaulting-ipv6/