我有几个节点来运行我的软件。启动后发现两个节点之间tcp连接异常。
假设 A 是领导者,正在监听端口 1234,B 应该连接 A。
在节点B上,使用ss,我可以看到:
$ss |grep A
tcp ESTAB 0 0 B:50144 A:1234
但在节点 A 上,运行时我什么也看不到ss |grep B
。
正如预期的那样,B 无法从此连接读取任何数据,这导致我的软件无法运行。
还有两个细节需要提及:
- 终止我的软件进程时运行 tcpdump,我可以看到两个节点上的数据包交互
- 有一个名为 b0 的网桥,它桥接在 eth0 上,并且与 eth0 具有相同的 ip
我的问题是:为什么会发生这种情况,我该如何解决它。
更新1:
运行 tcpdump
- 杀死节点B上的进程,B发送FIN给A,A回复RESET。
- 杀死节点 A 上的进程,A 不向 B 发送任何内容,反之亦然。即使 A 不再监听 1234,也可以从 B 看到连接。