我需要build立以下scheme:
当连接closures或发生其他一些事件(例如丢包,多次重传等等)时,事情将不起作用,我们需要做以下工作:
大概可以用haproxy和openvpn来模拟,但openvpn connect对于快速交换机来说太慢了,而且对于一个服务(比如说tcp端口)来说设置太复杂了。
[ – 就像一个端口的隧道 – ],并且server1上的本地客户端程序不需要重新连接(或build立一个新的连接)到server2上的服务器程序,当server1和server2
编辑:我不是说我需要保存tcp会话左右。
我需要像haproxy(工作在第7层),
当client_prog_1_srv_1连接本地主机haproxy_1_srv_1时,
haproxy_1_srv_1将(Internet)连接到haproxy_2_srv_2,
但是当haproxy_1_srv_1和haproxy_2_srv_2之间没有连接时,
如果外出IP在服务器2和3上不同,则不可能使用TCP构build这样的代理。
如果您控制了路由,并且可以使用路由度量标准,OSPF或类似的方法在不涉及NAT的情况下自动路由错误连接的数据包,则可能是可能的。 如果涉及到NAT,则可能不太复杂的解决scheme,例如,教您的客户重新连接错误。
如果真的必须这样devise,你可以使用任意播或故障转移来允许服务器2和3具有相同的外出IP,但是没有更多的细节,你的用例并不像你想要的那样有这个能力。
这是关于任意或通用的Linux程序的事情…他们没有字符[istics] …
您希望应用程序级别[第7层]networking,而是通用程序/协议。 http://tools.ietf.org/html/rfc3768(RFC 3768 –
加上LVS,突然你回来了,基本上坐在HAProxy上。 为了在第七层做到这一点,你将不得不编写自己的包装服务器来:
你的问题是复杂的…但是我相信那是因为你做了很多的假设。 一个VPN可能是一个很好的方法使这个复杂化,你永远不会得到它的工作。 如果你正确地告诉我们你需要做什么,我们可能会帮助你正确的方向。
它可以通过以下设置完成:
你有没有使用过VPN? 你连接你的计算机到VPN服务器,然后你在你的企业专用networking,然后你使用SSH到你的工作电脑,如果互联网连接下降一分钟,VPN尝试重新连接,但SSH是在超时重新发送期。 互联网连接是在一分钟后,vpn再次build立隧道,ssh继续,不需要重新连接(最终重发成功,超时发生之前)。 这是我需要的效果,但隧道必须通过中间服务器,因为它有一个更好的连接。 如果所有的tcpstream量都是由haproxies互相通话的话就可以完成。 但我认为这个设置非常复杂,openvpn(或隧道)重新连接速度慢。 注意haproxy是这个应用程序 – http://haproxy.1wt.eu/ ,它有一个tcp模式 – 和http代理的function非常相似。