[Résolu] Keepalived et probléme de connexion Serveur Mysql

J’ai paramétré un cluster Mysql.
Je possède deux serveurs qui ont la charge d’interpréter les commandes MYSQL (donc deux adresses IP).
Le cluster fonctionne correctement et les deux serveurs de stockage font bien la redondance d’information demandée.

J’ai configuré Keepalived pour avoir qu’une seul adresse IP pour les deux serveurs interpréteurs.

Ainsi mon serveur Web se connectera sur une seul IP, et si une défaillance apparais sur le serveur maitre , l’esclave prendra le relais.

La configuration semble fonctionner, je peux grâce à l’IP virtuelle je me connecte en SSH sur le serveur en fonction. Par contre impossible de se connecter à la base MYSQL.

Il est bien entendu que l’IP_forward est activé (sinon une connexion SSH ne passerais du moins en ciblant l’IP virtuelle).

Je suppose que la problématique vient du fait que l’utilisateur utilisé dans MySQL n’est pas paramétré avec la bonne IP, je m’explique :

Utilisons l’utilisateur toto
le serveur web aura l’adresse 192.168.1.1

je dois paramétrer l’utilisateur dans MySQL pour qu’il puisse se connecter depuis l’adresse IP 192.168.1.1, dans un cas de figure normale cela fonctionne :

Mais ici je ne sais pas quelle IP est présenté au serveur MYSQL, je m’explique :

Keepalived va créer une adresse IP virtuel pour les serveurs MYSQL.
Keepalived va ensuite (si ip_forward est activé) transmettre les informations à la bonne adresse IP sur le bon port.
Mon soucis est ici, comment transmet il l’information, avec l’IP d’origine (transfert des paquets sans modification) ? Avec l’IP virtuel (réécriture de l’adresse) ? En localhost (transfert d’information d’une adresse virtuel a une adresse réelle)?

J’ai tenté de configurer keepalived avec l’adresse du port de mes serveurs MySQL ( 3306) mais cela n’a rien changé.

J’ai bien renseigner la fonction lb_kind (mode de transfère de données) mais trois choix sont proposés : NAT | DR | TUN
J’ai tenté avec le mode NAT, indiquant je présume un transfert avec l’IP virtuel mais cela n’a pas fonctionné.(je ne connais pas les deux autres)

J’ai bien conscience que le cas que je vous soumet n’est pas simple, par soucis de lecture je n’ai fournie aucun fichier de configuration car je pense qu’ici e problème vient d’un manque de compréhension, du fonctionnement de keepalived , des modes de transfère de données et des outils permettant de savoir quelle IP fait quelle requête.
De plus mon but ici n’est pas de faire du loadbalancing juste une redondance de service en cas de défaillance du serveur maitre.

Le problème venait de la configuration de MySQL (en mode cluster ou non)
Dans le fichier my.cnf( fichier de configuration)

une ligne avec l’argument : BindAdress indique les adresses que le serveur écoute (information à vérifier)
Quoi qu’il en soit par default cette adresse est localhost ou 127.0.0.1 ( ce qui est la même chose)

En l’absence d’argument ou plaçant la ligne en commentaire, dans ma configuration le système fonctionne.

Je vais effectuer d’autre test afin de vérifier que si je place mes adresses réelle et virtuel en argument le système continue de fonctionner.