使用 UDP 负载均衡器测试源 IP 地址的 ncat 脚本

使用 UDP 负载均衡器测试源 IP 地址的 ncat 脚本

我在 Azure 负载均衡器后面有两个 Ubuntu 虚拟机。我观察到虚拟机发出的 UDP 数据包中设置的源 IP 地址存在一些不一致之处。我试图想出一个简单的ncat命令或脚本,可以在虚拟机上运行以测试源 IP。

我的想法是创建一个循环路径(注意,就脚本和测试而言,负载均衡器是透明的):

客户端 -> LB -> VM1 -> VM2 -> LB -> 客户端

我无法解决的是如何将命令通过 VM1 传递到 VM2 以使其执行与客户端的连接。

我认为 VM1 和 VM2 上的命令应该相同:

ncat --sh-exec "/bin/bash" -k -u -l 1235

客户端连接到 VM1 并向其发送一个命令,该命令传到 VM2 并使其执行 ncat 连接返回到客户端:

ncat -u 10.0.0.4 1235
echo "ncat -u $NCAT_REMOTE_ADDR $NCAT_REMOTE_PORT" | ncat -u 10.0.0.7 1235
```

The connection makes it to VM2 but not back to the client.

答案1

我找到了一种手动的方法来做到这一点。

在两台虚拟机上: ncat --sh-exec "/bin/bash" -k -u -l 1235

在客户端上:

ncat -u 10.0.0.4 1235
echo $HOSTNAME
vm1
ncat -u 10.0.0.5 1235
echo $HOSTNAME
vm2
ncat -u <client IP> 1235
hi

我没有监听返回到客户端的 UDO 数据包。我正在运行tcpdump以查看返回到客户端的路径上的源 IP 地址。

我想有一种更自动化的方式来进行设置。

相关内容