HAPROXY problème de réponse en intranet



  • Bonjour tout le monde,

    j'ai mis en place haproxy pour me connecter depuis l’extérieur sur mon synology (monsyno.mondomaine.com) avec le port 5001.

    tout fonctionne très bien…par contre quand je suis en LAN il ne me renvoie pas sur le port 5001 quand je rentre l'adresse (monsyno.mondomaine.com) je tombre apparement sur le port 80 du serveur....j'ai activé DNS Forwarder pour qu'il trouve l'ip interne du synology mais je ne sais pas quelle configuration j'ai oublié dans HAPROXY.

    Si quelqu'un peut me venir en aide ;-)

    Laurent



  • Ce n'est probablement as aussi simple que ça  ;)
    Enfin… ça dépend comment fonctionne HAproxy  ;D

    Si ton Synology est sur le même réseau que ton client sur le LAN, la réponse risque fort de revenir directement vers le client et non pas vers le proxy  :P

    D'autant que HAproxy, fait, si je ne me trompe pas, de la redirection et non pas requête de type "proxy".
    C'est un loadbalancer TCP non ?

    D'ailleurs à ce propos, tu parles de HAproxy mais d'un seul Synology. Tu utilises le load-balancer vers un seul serveur ?



  • Pour compléter ma réponse : je ne comprends pas l'intérêt d'utiliser un load-balancer (qui à priori ne fait pas de "load-balancing" si il a une seule cible) depuis le LAN si c'est pour accéder un service sur le LAN (ici Synology)  8)



  • Ce post est incompréhensible (pour moi).

    De plus, le formulaire n'est pas utilisé. (Le formulaire induit la compréhension !)

    Pas de formulaire /ou/ mauvaise présentation = pas d'aide !
    (D'ailleurs, et par avance, comment donner de l'aide … puisqu'on ne comprend pas le problème !)

    (Inutile de commencer à répondre autre chose : ce n'est pas clair !)



  • Désolé je ne savais pas qu'il fallait utiliser un formulaire (normalement je poste sur le forum anglais, mais j'avais la flemme)

    donc j'utilise Haproxy non pas pour faire du load balancing mais pour faire du reverse proxy (beaucoup plus léger que nginx). il me permet de pouvoir accéder à toutes les machines de mon réseau par leurs noms d’hôte et un port assigné (ex syno.mondomaine.com arrivera directement sur mon synology sur le port 5001)

    Le problème est que depuis le lan cela ne fonctionne pas car apparemment c'est le dns forwarder qui prends le dessus.

    bref je vais poser ma question sur le forum anglais.

    désolé et merci quand même pour votre aide

    belle journée.



  • j'utilise Haproxy non pas pour faire du load balancing mais pour faire du reverse proxy

    Comment voulez vous que l'on devine cela ?

    [Haproxy] beaucoup plus léger que nginx

    Ah bon ? Déjà que Haproxy n'est pas prévu pour faire du reverse proxy …

    L'accès à distance à un réseau s'effectue, normalement, via un VPN. (pfSense propose 2 VPN efficaces, sûrs et aisés à mettre en oeuvre : OpenVpn et Ipsec.)
    Si on configure correctement son VPN, il est aisé d'utiliser les définitions locales de noms de machines (qui seront les mêmes en local et à distance).

    Vous utilisez un outil, qui agirait 'comme un autre', c'est déjà une anomalie.
    Vous ne semblez pas avoir un dns local (qui serait idéal avec un VPN).
    Le tout sans explications ...

    Comment voulez vous être aidé ?



  • ben vous auriez pu deviner si vous connaissiez un tant soit peu haproxy….puisque bien sur,  on peut faire du reverse avec !

    http://lmgtfy.com/?q=haproxy+reverse

    bref laissez tomber… apparemment c'est pas vous qui pouvez m'aider !



  • Plutôt que de me (nous ?) répondre par le mépris (let me google that …),
    Plutôt que de me (nous ?) donnez des leçons (ce n'est pas vous pouvez aider ... vous auriez pu deviner ...),

    Vous devriez observer que

    • le titre du site haproxy.org est 'The Reliable, High Performance TCP/HTTP Load Balancer'
    • haproxy est D'ABORD connu pour sa fonction LoadBalancing (tous services)
      (et je ne suis pas seul à voir Haproxy comme cela : chris4916 en fait 2 posts !)

    Vous devriez observez, mais cela vous a certainement échappé, que

    • je vous ai indiqué une (la ?) façon simple et standard d'y arriver (qui s'appelle juste le dns split) et cela sans aucun artifice, avec ou sans serveur intermédiaire (en local).

    Bref, avant de me (nous ?) répondre de cette façon
    peut-être auriez vous l'humilité (mot étrange sans doute pour vous ?) de reconnaitre que vous avez très mal exposé votre problème ?

    Parce que, si, quand un problème est posé, le lecteur doit d'abord faire de la divination, c'est, assurément, que le problème est mal décrit.
    Vous auriez pu deviner Mr l'Agent ...

    Reconnaitrez vous une mauvaise, et très incomplète, présentation ?

    (J'avais bien écrit 'par avance' ... parce que je le voyais gros comme une maison; et ça n'a pas loupé ! Bref il n'y a rien à attendre ... c'est même à ça qu'on les reconnait !)

    NB : Je note que HAproxy fait aussi reverse proxy pour des machines uniques, mais c'est un usage très inhabituel, tellement inhabituel.



  • @jdh:

    Vous devriez observer que

    • le titre du site haproxy.org est 'The Reliable, High Performance TCP/HTTP Load Balancer'
    • haproxy est D'ABORD connu pour sa fonction LoadBalancing (tous services)
      (et je ne suis pas seul à voir Haproxy comme cela : chris4916 en fait 2 posts !)

    …/...

    NB : Je note que HAproxy fait aussi reverse proxy pour des machines uniques, mais c'est un usage très inhabituel, tellement inhabituel.

    :-\

    HAproxy est initialement conçu pour faire du load balancing, c'est évident mais je pense que tu as mal compris mes 2 messages :

    • mon premier message était une interrogation sur le mode effectivement utilisé car HAproxy, même si il fonctionne en "reverse proxy", a de ce point de vue des fonctionnalités bien limitées, en dehors de l'aspect load-balancer ou il excelle.
    • ceci dit, si ces fonctionnalités limitées te conviennent, c'est un usage (reverse proxy like) tout à fait acceptable. D'ailleurs je l'utilise comme ça pour accéder à mon webmail  ;D
    • le point que je trouve par contra très surprenant et qui est l"objet de mon deuxième message, c'est de vouloir accéder depuis le LAN à un service sur le LAN en rebondissant sur le reverse proxy qui ne ferait pas de load-balancing.

    Je m'explique :

    • si tu as sur ton LAN plusieurs serveur pour un même service et des besoins soit de haute disponibilité soit de répartition de charge, alors un load-balancer (type HAproxy) est tout à fait acceptable mais nécessite quelques précautions pour que les trames retour reviennent bien au proxy et pas directement au client.
    • si tu as en revanche un seul serveur, un HAproxy interne ne sert (à mon avis) à rien.

    L'interface pfSense relative au load-balancer précise bien, lors de la configuration de celui-ci que "normalement" seules les interfaces externes devraient écouter pour ce service  :-X

    Si c'est le cas, passer par l'interface externe de pfSense depuis son LAN pour accéder à un service sur le LAN, ça devient… compliqué et effectivement ça risque fort de ne pas fonctionner.

    La problématique ici me semble plus être liée au fait que HAproxy est utilisé entre le WAN et le LAN pour changer le port d'accès au service et il y a une incompréhension en terme de design. Le DNS ne fait que résoudre le nom pour fournir l'IP (ici Synology) sans impact que le port demandé.



  • 1er post :

    D'autant que HAproxy, fait, si je ne me trompe pas, de la redirection et non pas requête de type "proxy".
    C'est un loadbalancer TCP non ?

    D'ailleurs à ce propos, tu parles de HAproxy mais d'un seul Synology. Tu utilises le load-balancer vers un seul serveur ?

    2me post :

    Pour compléter ma réponse : je ne comprends pas l'intérêt d'utiliser un load-balancer (qui à priori ne fait pas de "load-balancing" si il a une seule cible) depuis le LAN si c'est pour accéder un service sur le LAN (ici Synology)

    Ces 2 posts (au moins sur ces phrases) montrent la surprise de voir utiliser HAproxy dans ce mode pour le moins inhabituel.

    De base HAproxy (même avec ce nom), est vu, par tous, comme un 'loadbalancer' : je ne compte les articles dans des revus telles Linux Magazine sur le paramétrage de HAproxy pour mettre en place des clusters de services variés (et pas seulement http).

    C'est aussi ma surprise, et je pense de tous les lecteurs, alors quand je lis 'vous auriez pu deviner', je dis arrêtez de nous prendre pour des imbéciles et allez vous faire foutre … (à lololo)

    C'est dit.



  • @lololo:

    donc j'utilise Haproxy non pas pour faire du load balancing mais pour faire du reverse proxy (beaucoup plus léger que nginx). il me permet de pouvoir accéder à toutes les machines de mon réseau par leurs noms d’hôte et un port assigné (ex syno.mondomaine.com arrivera directement sur mon synology sur le port 5001)

    Le problème est que depuis le lan cela ne fonctionne pas car apparemment c'est le dns forwarder qui prends le dessus.

    Si tu veux pouvoir accéder à ton Synology à la fois depuis le LAN et depuis internet en utilisant la même config "client", il suffit que (toutes les assertions suivantes sont liées par un "ET") :

    • le DNS interne pointe le nom de ton serveur "syno" vers Synology  (pas de HAproxy ici)
    • le DNS publique pointe le CNAME "syno.tondomaine" vers ton IP publique (sur laquelle écoute HAproxy)
    • le port d'écoute du Synology est le même que le port d'écoute du HAproxy pour ce service

    Depuis internet, tu accèdes au HAproxy qui fait le relai vers le service en interne
    Depuis le LAN tu accèdes en direct su Synology

    et ça marche  8)

    Si les ports sont différents… ça ne marche pas sauf à avoir une config client différente selon que tu es sur le LAN ou sur internet. Et ce n'est pas un problème de HAproxy  :P