Tunneler les ports par différents routes sans connaître les programmes locaux

Je dois configurer le schéma suivant:

Probablement, cela peut être simulé avec haproxy et openvpn, mais la connection openvpn est trop lente pour les commutateurs rapides, et la configuration est trop compliquée pour un seul service (disons le port tcp).

[C'est comme le tunneling d'un port-] et le programme client local sur server1 n'a pas besoin de se reconnecter (ou de créer une nouvelle connection) au programme server sur le server2, lorsque quelque chose se produit entre server1 et server2

Quelqu'un peut-il me conseiller pour ce programme tcp-proxy-reroute sous Linux?

Edit: Je ne voulais pas dire que j'ai besoin d'save la session tcp.

J'ai besoin de quelque chose comme haproxy (travail sur la couche 7)

  • lorsque client_prog_1_srv_1 connecte localhost haproxy_1_srv_1,

  • haproxy_1_srv_1 connecte (Internet) à haproxy_2_srv_2,

  • haproxy_2_srv_2 se connecte à server_prog_2_srv_2 (se lie et se connecte localement aussi),
  • mais lorsqu'il n'y a pas de connection entre haproxy_1_srv_1 et haproxy_2_srv_2,

    • haproxy_1_srv_1 pour se connecter à haproxy_3_srv_3,
    • qui se connecte à haproxy_2_srv_2 et réutilise la connection ouverte entre haproxy_2_srv_2 et server_prog_2_srv_2.
    • Les connections entre haproxes sont par Internet, les connections au programme final (client, server) sont toujours locales.

3 Solutions collect form web for “Tunneler les ports par différents routes sans connaître les programmes locaux”

Il n'est pas possible de build un proxy comme celui-ci avec TCP si les IP sortantes sont différentes sur les servers 2 et 3.

Il se peut que vous puissiez contrôler vos routes et utiliser des mésortingques de route, OSPF ou similaires pour apather automatiquement des packages autour de mauvaises connections, s'il n'y a pas de NAT impliqué. S'il y a du NAT impliqué, il existe probablement des solutions less complexes, par exemple, l'enseignement de votre client pour se reconnecter par erreur.

Si elle doit vraiment être conçue comme ceci, vous pouvez utiliser anycast ou failover pour permettre aux servers 2 et 3 d'avoir la même IP sortante, mais sans plus de détails, votre cas d'utilisation ne ressemble pas à quelque chose où vous auriez ont cette capacité.

Voici la question des programmes linux arbitraires ou generics … Ils n'ont pas de caractère [istics] …

Vous voulez un niveau d'application [couche 7] réseau mais sur un programme / protocole générique. http://tools.ietf.org/html/rfc3768 (RFC 3768 –

Ajouter sur LVS et soudain, vous êtes de return sont essentiellement assis sur HAProxy. Pour le faire à la couche sept, vous devrez écrire votre propre server wrapper:

  1. accepte toutes les connections sur l'avant
  2. Surveillez la list des servers / routes disponibles sur le backend
  3. trafic direct via un server / pathement actif

Votre question est … complexe … Mais je crois que c'est parce que vous faites de nombreuses hypothèses. Un VPN est probablement un bon moyen de compliquer cela jusqu'à ce que vous ne le mettez jamais au travail. Si vous nous dites EXACTEMENT ce que vous devez faire, nous pourrions vous aider à vous diriger dans la bonne direction.

Cela peut se faire avec la configuration suivante:

  1. réseau privé avec openvpn + haproxy (en mode tcp) sur les deux servers de bord et uniquement les haproxies sur les servers intermédiaires.
  2. Chaque openvpn se connecte localement à un haproxy avec config: "un server normal et un server de sauvegarde", une vérification est effectuée par l'haproxy à vérifier, quel server doit être utilisé.
  3. la vérification montre que haproxy doit utiliser la sauvegarde, donc haproxy commute la connection à un server intermédiaire. La connection est déchirée.
  4. une connection immédiate openvpn se produit – mais cette fois, la connection tcp va être "apathée" du lien edge-haproxy-> backup vers le middle-haproxy, qui à son tour proxy vers le second bord-haproxy, avec lequel le second bord openvpn est atteint. Note openvpn ne connaît pas trois haproxies le long de l'itinéraire.
  5. les adresses privées, de l'autre côté, ne sont pas disponibles pendant un certain time, de sorte qu'un décalage temporel se produit entre les connections établies des applications des deux côtés.
  6. openvpn construit la connection à nouveau, le réseau privé est à nouveau ouvert, toutes les adresses privées sont disponibles, les applications des deux côtés peuvent se rétablir à partir d'un décalage temporel.
  7. Aucun reconnection n'est faite sur les applications de la couche 7 des deux côtés. Perdu des packages, qui triggersnt certaines retransmissions sur le réseau tunnel pendant un certain time, mais à la fin, tout va bien.

Avez-vous déjà utilisé un vpn? Vous connectez votre ordinateur au server vpn, alors vous êtes dans votre réseau privé d'entreprise, puis utilisez ssh pour votre ordinateur de travail, si la connection Internet baisse pendant une minute, le vpn essaie de se reconnecter, mais le ssh est en train de retransmettre pendant le time mort période. La connection Internet est terminée après une minute, le vpn construit le tunnel à nouveau, le ssh continue, sans avoir besoin de se reconnecter (éventuellement les retransmissions réussissent, avant qu'un timeout ne soit effectué). C'est l'effet dont j'ai besoin, mais le tunnel doit passer un server central, car il a une meilleure connectivité pendant un certain time. Cela peut être fait si tout le trafic tcp est effectué par des haproxies qui se parlent. Mais je pense que cette configuration est très compliquée et l'openvpn (ou les tunnels) est lent dans les reconnections. Remarque haproxy est cette application – http://haproxy.1wt.eu/ , qui a un mode tcp – un terme de fonctionnalité très similaire au proxy http.

  • IPv6 IPsec entre deux réseaux natifs IPv6
  • login SSH refusée sur un port inhabituel
  • Utilisation de TomatoUSB et OpenVPN pour trafic tunnel IPv6
  • ssh root @ domain - Comment spécifier un mot de passe aussi?
  • Comment configurer un raccourci pour une connection SSH via un tunnel SSH
  • Une autre question SSH Tunneling
  • Transformez le stunnel du cert auto-signé en signé par CA cert
  • Routage de toutes datatables via un tunnel VPN avec ppp
  • Tunneler une IP publique vers une machine distante
  • Firewalls qui bloquent RDP sur le port 443
  • Connectez-vous deux ordinateurs mac / servers utilisant un tunnel ou VPN privé?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.