Forum Linux.général Redirection de trafic

Posté par . Licence CC by-sa
2
30
mai
2014

Bonjour à tous,

Je souhaite mettre en place un service de load balancing chez un fournisseur qui offre des machines virtuelles à la demande, facturée à l'heure. Pour réduire les coûts, nous n'instancions les VMs serveurs que lorsqu'elles sont nécessaires. Ainsi lorsque la charge d'un serveur dépasse un certain seuil, une nouvelle VM est instanciée et lorsqu'elle n'est plus utilisée, elle est retirée.

Et donc je cherche comment insérer et retirer des règles sur la passerelle du réseau public pour diriger le trafic des nouveaux clients vers le dernier serveur disponible (ou le VLAN indiqué) du réseau privé — tout en maintenant les connexions préalables établies (netfilter+conntrack).

A cet effet, est-ce qu'un parc sous linux virtual server pourrait apporter quelque chose de plus (ipvs) ?

On peut disposer d'un adressage ipv6 ou ipv4. Alors NAT ipv4 ou ipv6 ?

Merci d'avance

P.S. : A priori, les serveurs ne vont communiquer que sur HTTP et c'est sur la passerelle que seront filtrées les requêtes. Sachant qu'il est fort probable que les applications soient vulnérables en raison de la mixité des services, un filtrage des requêtes http par un reverse proxy serait aussi de rigueur.

  • # haproxy et quelques scripts

    Posté par . Évalué à 3.

    HAproxy te permet probablement de faire ce genre de choses.
    tu le preconfigures pour loadbalancer sur tes 5 instances
    tu n'en actives qu'une

    puis quand tu detectes la charge, et au lieu d'envoyer une erreur 503 (je crois, pour un timeout)
    tu actives une instance supplementaire

    HAproxy va alors loadbalancer sur 2 instances au lieu d'une,
    etc

  • # Iptables

    Posté par . Évalué à 1.

    Bon alors attention,
    il ne s'agit pas de load balancer un coup à droite et un autre à gauche, un pour toi et un pour moi.

    Ici le premier serveur se remplit jusqu'à un certain seuil de capacité et tant que les résultats sont bons, continue de recevoir des connexions—d'où le besoin d'un conntrack.

    C'est lorsqu'il atteint un certain seuil d'utilisation que les nouvelles connexions vont atterrir sur le deuxième serveur, tout en maintenant les premières.

    Le plus simple et rationnel me semble encore d'insérer et de retirer à la volée les bonnes règles iptables sur le loadbalancer (qui en revanche n'est pas encore déclaré comme la passerelle des serveurs).

    ça donne ceci ;

          WEB
           │
         ip pub
       ┌───┴────┐
       │  L.B.  │
       └───┬────┘
          private net        
           └──────┬───────────┬────────────┐
              ┌───┴────┐  ┌───┴─────┐  ┌───┴─────┐
              │Gateway │  │ Server1 │  │ Server1 │ 
              └────────┘  └─────────┘  └─────────┘
    

    Sortir HAproxy me semble un peu overkill si quelques règles correctement paramétrées au niveau système font l'affaire.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.