首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不知道本地程序的情况下通过不同路线的隧道端口

在不知道本地程序的情况下通过不同路线的隧道端口
EN

Server Fault用户
提问于 2013-09-20 16:23:02
回答 3查看 334关注 0票数 0

我需要设立以下计划:

  • server1:泛型程序在本地连接到代理,然后由代理连接到server2。
  • 一切正常,直到服务器之间的连接。
  • 当连接中断或发生其他事件(例如丢包、许多重传等)时,事情将无法工作,我们需要执行以下操作:
    1. 将当前连接“重新路由”到具有相同代理程序的第三个服务器( server1 )的server3
    2. 服务器3‘S与server2的连接正常,
    3. 因此,本地通用程序不重新连接,甚至不关心连接问题。
    4. 另外一边的本地通用程序(在server2上)也不知道还有另一条路线。

也许,这可以用fast和openvpn来模拟,但是openvpn连接对于快速交换机来说太慢了,而且对于一个服务来说设置太复杂了(比如tcp端口)。

-就像港口的隧道-和server1上的本地客户端程序不需要重新连接(或建立新的连接)到server2上的服务器程序,因为server1和server2之间发生了一些事情。

有人能为linux?

下的tcp代理重路由程序提供建议吗?

编辑:我并不是说我需要保存tcp会话。

我需要类似haproxy的东西(在第7层工作),

  • 当client_prog_1_srv_1连接本地主机haproxy_1_srv_1时,
  • haproxy_1_srv_1连接(因特网)到haproxy_2_srv_2
  • haproxy_2_srv_2连接到server_prog_2_srv_2 (绑定并本地连接),
  • 但是当haproxy_1_srv_1和haproxy_2_srv_2之间没有联系时,
    • haproxy_1_srv_1连接到haproxy_3_srv_3,
    • 它连接到haproxy_2_srv_2并重用haproxy_2_srv_2和server_prog_2_srv_2之间打开的连接。
    • 进程之间的连接是通过互联网进行的,到终端程序(客户端、服务器)的连接总是本地的。
EN

回答 3

Server Fault用户

发布于 2013-09-20 16:46:46

如果传出的It在服务器2和3上不同,则不可能使用TCP构建这样的代理。

如果您控制了您的路由,并且可以使用路由度量、OSPF或类似的方法来自动将数据包路由到错误的连接上,这可能是可能的,如果不涉及NAT。如果涉及NAT,可能有不那么复杂的解决方案,例如,教您的客户端在错误时重新连接。

如果它确实必须像这样设计,那么您可能可以使用anycast或故障转移来允许服务器2和3具有相同的传出IP,但是如果没有更多的细节,您的用例听起来就不像是您具有此功能的东西。

票数 1
EN

Server Fault用户

发布于 2013-09-20 19:28:03

关于任意或通用的linux程序.他们没有角色特性..。

您希望应用程序级别的第7层联网,但在通用程序/协议上。https://www.rfc-editor.org/rfc/rfc3768 (RFC 3768 -

加上LVS,突然你又回来了,本质上就是坐在HAProxy上。为了在第七层执行此操作,您必须编写自己的包装服务器,以便:

  1. 接受前端的所有连接
  2. 监视后端可用服务器/路由的列表
  3. 通过活动服务器/路由直接通信

你的问题是..。复杂..。但我相信这是因为你做了很多假设。VPN很可能是一个很好的方法,可以使这件事复杂化,以至于你永远无法让它发挥作用。如果你能准确地告诉我们你需要做什么,我们也许能帮助你朝着正确的方向前进。

票数 1
EN

Server Fault用户

发布于 2013-09-21 01:57:46

这可以通过以下设置来完成:

  1. 在两个边缘服务器上使用openvpn+haproxy(在tcp模式下)的专用网络,而在中间服务器上只有haproxies。
  2. 每个openvpn都在本地连接到一个带有config的haproxy:“一个普通服务器和一个备份服务器”,haproxy会进行一次检查,以验证应该使用哪一台服务器。
  3. 检查显示haproxy必须使用备份,因此haproxy将连接切换到中间服务器。连接被拆掉了。
  4. 立即发生openvpn重新连接,但这一次tcp连接将从边缘- proxy >备份链接“路由”到中间proxy,后者反过来将代理到第二边缘-proxy,第二边缘openvpn是用后者到达的。注openvpn不知道沿途有三个代理。
  5. 私有地址(位于另一边)暂时不可用,因此在双方的应用程序的已建立连接之间会出现超时。
  6. openvpn重新构建连接,私有网络再次运行,所有私有地址都可用,双方的应用程序都可以从超时中恢复。
  7. 在双方的第7层应用程序上没有重新连接。丢失了一些数据包,触发了一些在隧道网络上重新传输一段时间,但最终一切正常。

你用过vpn吗?您将计算机连接到vpn服务器,然后在公司专用网络中,然后对工作计算机使用ssh,如果Internet连接中断一分钟,vpn将尝试重新连接,但ssh在超时期间正在重传。Internet连接在一分钟后上升,vpn再次构建隧道,ssh继续进行,不需要重新连接(在超时之前,最终重传是成功的)。这就是我需要的效果,但是隧道必须通过一个中间服务器,因为它有一个更好的连接时间。如果所有的tcp流量都是由互相交谈的代理来执行,则可以这样做。但我认为这个设置非常复杂,openvpn (或隧道)重新连接的速度很慢。注意,has是这个应用程序-- http://haproxy.1wt.eu/,它具有tcp模式--在功能方面非常类似于http代理。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/540536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档