2015-11-11 66 views
0

我們在AWS上建立了測試環境,現在我們希望將來自生產計算機的傳入UDP流量複製到測試環境,以瞭解它如何與真實數據配合使用。AWS:如何將UDP流量從PRD複製到測試環境?

我們的設備將消息發送到在特定端口上運行在我們生產機器上的偵聽器(我們無法更改端口)。我們在測試環境中設置了相同的偵聽器,所以我們只需要將流量複製到它。 有沒有必要欺騙發件人的IP到測試環境(監聽器不會發回任何數據)。

我們認爲這是一件非常常見的事情,但要找到一個很好的解決方案並不容易。 我們嘗試在生產環境中運行名爲Samplicate的程序,但在使用它時,我們必須在不同端口上運行偵聽器,然後在該端口上運行Samplicate,將流量重定向到生產和AWS。這是非常危險的,因爲如果Samplicate出於某種原因失敗(我們不確定它是否足夠可靠),重定向失敗並且監聽器不會被饋送,因此係統將會中斷。如果解決方案不必在設備發送消息的真實端口上收聽,那將會好得多。因此,即使因某種原因複製失敗,系統仍繼續工作 無論如何,即使以這種方式,我們也無法獲得Samplicate的工作(我們確實收到了數據,但系統運行得不是很好,也許Samplicate損壞了數據包,或者我們只是沒有沒有正確設置)。

任何人都可以提出建議嗎?這真的很不尋常,很難實現嗎?

P.S.我們已經看到一些示例如何在本地網絡中執行此類操作,但我們需要將流量複製到不同主機(AWS)。

非常感謝您的幫助。

+0

您的測試和生產環境是否具有相同的IP?如果是這樣,您可以使用tcpdump捕獲數據包,請複製pcap文件並使用tcpreplay重播它 – alnet

+0

不,生產位於我們的本地服務器上,測試環境位於Amazon Web服務上。所以他們有不同的IP。也許我們應該考慮在它們之間建立VPN .. –

+0

我想你可以操縱pcap文件並更改IP。看看這裏:http://tcpreplay.synfin.net/wiki/tcprewrite – alnet

回答

0

現在已經解決了。 我們發現只要在C中編寫我們自己的嗅探器並直接發送UDP數據包到測試環境就容易多了。 我們使用libcap庫來實現這一點。

通過這種方式,流量不會中斷,生產不會受到風險。

http://www.binarytides.com/packet-sniffer-code-c-linux/ 此鏈接幫助了很多。