最近在做一個規約轉換裝置,需要實作的是主站與終端之間的協議轉換,于是用了一個雙網口的嵌入式設備,linux應用層編程,大致的網路圖如下。

由于終端是TCP服務器,主站是TCP客戶端,所以我的實作思路就是,利用嵌入式設備網口1模擬終端IP,網口2模擬主站IP,網口1建立偵聽,主站與網口1建立鏈接,網口2與終端建立鏈接,然后實作中間的報文修改過濾與轉發。但現在有一個問題。當與終端建立鏈接時,由于網口1地址與終端地址完全相同,應用程式就直接通過內部連接到了網口1上,而不是終端上。
在解決問題的程序中,我已經添加了路由表,并且在套接字編程中也系結了網口地址,但是還是沒有解決問題。
請問大家對這個問題有沒有好的解決方案,或者這種報文轉發與修改轉發的有沒有什么更好的思路。
uj5u.com熱心網友回復:
冒充節點,欺騙雙方?如果要實現這個功能,我想你應該用netfilter去做,截取路由之前的數據包進行處理。其他數據包也需要做手腳,不能讓整個網絡的轉發功能正常建立起來。
uj5u.com熱心網友回復:
謝謝您提供思路,我們就是想實作冒充節點,欺騙雙方,我也考慮過netfilter,但是我們用的別人的核心板,沒有提供核心源代碼,我的理解是netfilter編譯需要核心原始碼,所以暫時沒有實作。uj5u.com熱心網友回復:
無法進入內核確實很難,可否考慮配合iptables,把雙方的數據包截斷?轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/118927.html
標籤:應用程序開發區
上一篇:小小的程式員
下一篇:新人求幫助,問題多多
