3 votes

(Pacemaker) Nginx utilise l'adresse IP primaire au lieu de l'IP virtuelle pour communiquer avec les serveurs web

J'ai mis en place un cluster à deux nœuds (actif/passif) avec Corosync/Pacemaker et nginx comme proxy inverse. Le système d'exploitation est RHEL7 et la machine n'a qu'une seule interface réseau pour le moment.

J'ai configuré deux ressources :

  • cluster-vip pour l'IP virtuelle partagée
  • reverse-proxy pour nginx

Voici les déclarations des deux ressources :

pcs resource create cluster-vip ocf:heartbeat:IPaddr2 ip=192.168.0.1 cidr_netmask=24 op monitor interval=30s

pcs resource create reverse-proxy systemd:nginx op monitor interval=5s meta failure-timeout=60s

pcs constraint colocation add reverse-proxy with cluster-vip INFINITY

pcs constraint order cluster-vip then reverse-proxy

Hier, j'ai remarqué un comportement inattendu en faisant une capture de réseau. Lorsqu'il communique avec les clients, le nœud actif utilise l'adresse IP virtuelle (192.168.0.1). Lorsqu'il communique avec les serveurs web situés sur le réseau interne, il utilise l'adresse IP primaire de l'interface au lieu de la vip (192.168.0.2 ou 192.168.0.3 selon le noeud actif).

En conséquence, je suis obligé de créer deux règles différentes sur mon pare-feu (une pour le nœud 1 et une pour le nœud 2) au lieu de simplement autoriser le vip à communiquer avec les serveurs web. J'ai l'intention d'ajouter d'autres nœuds au cluster, et il serait pratique de ne pas avoir à autoriser chaque nœud un par un et de n'autoriser le vip qu'une fois pour toutes.

Ce comportement a-t-il une explication logique ? Existe-t-il un moyen de dire à pacemaker de n'utiliser que le vip ? Et est-ce une bonne pratique ? Je ne veux pas faire de bêtises, donc si vous pensez que je ne devrais pas le faire, je serais heureux d'entendre pourquoi.

Salutations

3voto

Sarvésh Biradar Points 41

Je ne pense pas qu'il s'agisse d'indiquer à pacemaker de n'utiliser que l'IP virtuelle, mais plutôt d'indiquer à Nginx de n'utiliser que l'IP virtuelle.

Je ne suis pas un expert de Nginx, mais en lisant leur documentation, j'ai trouvé une directive de configuration nommée proxy_bind . Je pense que c'est peut-être ce que vous devez régler pour obtenir le comportement souhaité. Extrait de la documentation de Nginx aquí .

Si votre serveur proxy possède plusieurs interfaces réseau, vous devrez parfois choisir une adresse IP source particulière pour vous connecter à un serveur proxy ou à un serveur en amont. Cela peut être utile si un serveur mandataire derrière NGINX est configuré pour accepter des connexions provenant de réseaux IP ou de plages d'adresses IP particuliers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X