Divers problèmes sur UCARP

Bonjour à tous,

Je suis sur l’installation et le paramètrage de UCARP pour faire de la haute disponibilité avec deux routeurs debian, bref je pense avoir réussi à le parametrer mais je dois dire que il n’y à que trés peux de renseignement sur le paramètrage de UCARP et parfois de faux renseignement, certains se contredisant même lorsque je regarde certains tuto … Donc j’en appel à l’aide que la communauté debian pourrait m’apporter !

Donc les routeurs debian fonctionnes, lorsque le maitre tombe en panne l’autre prend le relais et lorsque le maitre revien il remplace l’esclave. Mais lorsque je fait une annalyse de trame avec Wireshark aprés avoir fait tombé le maitre, l’esclave envoi un gratuitous ARP sur l’adresse virtuel, normal quoi, sauf qu’il y a indiqué que l’adresse MAC est déja utilisé par le maitre.
Donc il faut, je pense, supprimé l’assignation de l’adresse mac par un script de fermeture.
J’ai à travers mes recherches trouvé qu’il fallait incorporé un script permettant de je suppose éviter ce soucis d’adresse MAC en doublont.

Voici un site par exemple : frostsapphirestudios.com/ind … =22&art=55

Voici une des commandes :
/sbin/ip addr add 192.168.1.150/24 dev "$1"
start-stop-daemon --start --pidfile /var/run/ucarp-arping.192.168.1.150 --make-pidfile
–background --exec /usr/sbin/arping -q 192.168.1.150 -i eth0

Et voici comment je l’ai modifié :
/sbin/ip addr add 192.168.0.60/24 dev eth1
start-stop-daemon --start --pidfile /var/run/ucarp-arping.192.168.0.60 /
–make-pidfile --background --exec /usr/bin/arping – -q -U 192.168.0.60

Donc je suppose que ces commandes arping supprime l’adresse mac utilisé sur mon adresse ip virtuel 192.168.0.60
Mais voila cela ne fonctionne pas.

Voila j’espère vous avoir donné le plus de renseignement possible et espère avoir une réponse de votre part.
Je vous en remerci.

Bonjour, je suis l’auteur de l’article.
Si tu as bien lu en détail l’article, UCARP va utiliser de l’ARP poisoning.
Reprenons mon exemple avec un maître en 192.168.1.150 et un esclave en 192.168.1.160
Il ne va pas remplacer l’adresse MAC de l’autre machine, il va juste ajouter son adresse IP à celle qu’il a déjà et envoyer en broadcast une trame ARP pour dire “maintenant 192.168.1.150 c’est 00:11:22:33:44:55” et du coup toutes les machines l’ayant dans son cache ARP vont remplacer l’adresse MAC et de ce fait les flux seront redirigés sur l’autre machine.
A l’inverse lorsque qu’elle reviendra, la machine maître refera de l’ARP poisoning pour récupérer son adresse IP.

Je viens de compléter l’article car il manquait une option importante pour l’esclave (le -r qui définit le nombre d’essais avant de définir un échec). Et j’ai ajouté un example qui montre ce qu’il se passe sur ton réseau en cas d’échec et retour du maître.

La commande ARPing sert juste à envoyer une requête ARP pour voir si quelqu’un répond à une adresse IP.

Salut, bien heureux de parler avec l’auteur de cette article ^^ et merci d’avoir pris le temps de crée un tuto.
Alors j’avais bien compris tout le fonctionnement des requètes ARP, un gratuitous ARP est émis pour savoir si l’adresse mac ainsi pris par le maitre ou l’esclave n’est pas prise par quelqu’un d’autre et pour mettre à jour le cache arp des machines et ainsi assurer les requètes vers le bon routeur.

Enfin bref, ce que je ne comprend pas c’est le contenu des fichiers que l’on invoque et que l’on révoque.
Personnelement j’ai modifié le fichier up et down sur le maitre et l’esclave comme ceci (et de la même façon) :

vip-20-up.sh

#! /bin/sh
exec 2> /dev/null
/sbin/ip addr add 192.168.0.60/24 dev eth1

vip-20-down.sh

#! /bin/sh
exec 2> /dev/null
/sbin/ip addr del 192.168.0.60/24 dev eth1

et çela fonctionne sans aucun problème.

Mais peut-tu m’expliquer à quoi sert cette commande sur le fichier vip-150-up :

start-stop-daemon --start --pidfile /var/run/ucarp-arping.192.168.1.150 --make-pidfile
–background --exec /usr/sbin/arping -q 192.168.1.150 -i eth0

Pour moi donc c’est une commande qui envoi un gratuitous ARP comme tu vien de le dire : [quote=“FSS”]
La commande ARPing sert juste à envoyer une requête ARP pour voir si quelqu’un répond à une adresse IP.[/quote]

Mais j’annalyse le trafic réseau avec Wireshark et je dois te dire que le routeur qui est maitre envoi lui même un gratuitous ARP sans l’aide de ce script. Mais peut-être que je me trompe et que le script à une autre fonction ?

Peut être n’est ce pas nécessaire, néanmoins dans la documentation que j’avais pu trouver il fallait le mettre, donc je l’ai mis par sécurité et redistribué sur mon site. Je te remercie en tout cas et je suis ravi que cela marche chez toi :slightly_smiling:. Je crois que cela permet à UCARP de taper dans la table ARP locale plus rapidement, mais je peux me tromper, dans le but d’une optimisation de la haute disponibilité. La commande créée un démon avec la commande ARPing en arrière plan sur l’IP du maître, ceci est sûr.

Il est vrai que les tutoriaux UCARP sont rares et j’espère pouvoir être un pilier de l’explication sur ce genre de protocole :slightly_smiling:

Et bien pourrait tu me passer le lien pour regarder cette documentation ? Car je dois dire que je ne comprend pas trop la destination lorsque l’on démare ou lorsque l’on stop le démon.
J’ai pu essayé ces commandes directement en ligne de commande et par exemple lorsque j’ajoute cette commande sur mon maitre :

start-stop-daemon --start --pidfile /var/run/ucarp-arping.192.168.0.60
–make-pidfile --background --exec /usr/bin/arping – -q -U 192.168.0.60

Aucune erreur donc je suppose que la commande à fonctionne mais aprés lorque je lance cette commande lorsque le maitre est down :

start-stop-daemon --stop --pidfile var/run/ucarp-arping.192.168.0.60 --exec /usr/bin/arping

un truc du genre : “Aucun fichier de ce type à supprimé” s’affiche. Donc je suppose que les commandes ne servent à rien du tout …

Je ne sais pas si tu à essayer les commandes directement en ligne de commande ou alors en éteignant ton interface contenant les commandes ucarp et en la rallumant pour lancer le script mais pour moi ça m’affiche ces erreurs, de plus je ne vois pas de changement au niveau du réseau (avec Wireshark).
Lorsque je lance la commande du fichier up.sh par exemple je devrait voir un message ARP sur le réseau, mais non rien sur le réseau.
Donc c’est pour ça que j’ai supprimé cette commande, de plus je n’ai jamais trouvé de telle script à incorporer sur les manuel de ucarp.
C’est claire que les tutos sont rares et ceux qui y sont, souvent se contredisent ou contiennent des erreurs. Mais le tien m’a vraiment bien aidé surtout qu’il est en français et est bien détaillé.
Par contre peux-tu m’expliquer pourquoi on ajouter la commande
-P pour devenir maitre le + vite possible alors qu’il y a la commande -k priorité qui permet de définir le maitre ou l’esclave.

Quelqu’un serait comment utiliser ucarp pour faire de la répartition de charge entre deux routeurs ?

Pour te répondre, start-stop-daemon --stop --pidfile var/run/ucarp-arping.192.168.0.60 --exec /usr/bin/arping permet de stopper le démon dont le PID est identifié par le fichier /var/run/ucarp-arping.192.168.0.60
Pour ton information, il manque un / dans le chemin, ce qui explique peut être le soucis.
Ces commandes marchent très bien sur mes serveurs en tout cas.

Ucarp ne sait pas, que je sache, faire de la répartition de charge, c’est à mon avis impossible puisqu’on s’attribue une IP.
Pour faire la répartition, utilise le mécanisme de round-robin si tu utilises un DNS, cela suffira amplement.

Non ne tkt pas pour le / c’était volontaire.

Pour la répartition de charge, c’est possible, regarde sur wikipedia ils en parle : fr.wikipedia.org/wiki/Common_add … y_protocol

Mais bon c’est vrai qu’aucune doc ou tuto n’en parle.

Je reviens après un petit moment d’absence pour répondre à ceci. La répartition de charge avec CARP est possible, en effet, mais pas sous Debian ou CARP n’est pas natif, puisqu’il passe par la couche user. C’est sous BSD (FreeBSD/OpenBSD) que tu pourras faire de l’équilibrage de charge avec CARP. Cela fonctionne à merveille, mais attention, il faut que le trafic reste de niveau 3 OSI, et que la couche 7 de ta passerelle ne soit pas sollicitée. Pour un routeur/firewall, un loadbalancer IP c’est parfait, pour un proxy web ce n’est pas possible, du moins dans mes tests pas possible avec le balancing arp