我们在AWS上设置了测试环境,现在我们希望将来自生产机器的传入UDP流量复制到测试环境,以了解它如何与实际数据配合使用。
我们的设备将消息发送到在我们的生产机器上运行的侦听器上的特定端口(我们无法更改端口)。我们已经在测试环境中设置了相同的侦听器,因此我们只需要将流量复制到它。 没有必要将发送者的IP欺骗到测试环境(监听器不会发回任何数据)。
我们认为这是一件很常见的事情,但要找到任何好的解决方案并不容易。 我们尝试在生产中运行名为Samplicate的程序,但在使用它时我们必须在不同的端口上运行侦听器,然后在该端口上运行Samplicate,将流量重定向到生产和AWS。这是非常危险的,因为如果Samplicate由于某种原因失败(我们不确定它是否足够可靠),重定向失败并且监听器将不会被馈送,因此系统将会中断。如果解决方案不必监听设备发送消息的真实端口,那会好得多。因此,即使由于某种原因重复失败,系统仍会继续工作 无论如何,即使以这种方式我们也无法获得Samplicate工作(我们确实收到了数据,但系统运行不正常。可能Samplicate损坏了数据包,或者我们只是没有正确设置)。 / p>
任何人都可以提出建议吗?这真的是非常罕见且难以实施吗?
P.S。我们已经看到了一些如何在本地网络中执行此类操作的示例,但我们需要将流量复制到不同的主机(AWS)..
非常感谢您的帮助。
答案 0 :(得分:1)
It's been solved now. We've found that it's much easier just to write our own sniffer in C and send UDP packets directly to test environment. We used libcap library to achieve this.
This way the traffic is not interrupted and the production is not under risk.
http://www.binarytides.com/packet-sniffer-code-c-linux/ this link helped a lot.