最近在做一个规约转换装置,需要实现的是主站与终端之间的协议转换,于是用了一个双网口的嵌入式设备,linux应用层编程,大致的网络图如下。
由于终端是TCP服务器,主站是TCP客户端,所以我的实现思路就是,利用嵌入式设备网口1模拟终端IP,网口2模拟主站IP,网口1建立侦听,主站与网口1建立链接,网口2与终端建立链接,然后实现中间的报文修改过滤与转发。但现在有一个问题。当与终端建立链接时,由于网口1地址与终端地址完全相同,应用程序就直接通过内部连接到了网口1上,而不是终端上。
在解决问题的过程中,我已经添加了路由表,并且在套接字编程中也绑定了网口地址,但是还是没有解决问题。
请问大家对这个问题有没有好的解决方案,或者这种报文转发与修改转发的有没有什么更好的思路。