关于linux双网卡做规约转换器的问题

张骢 2019-06-19 03:56:04
最近在做一个规约转换装置,需要实现的是主站与终端之间的协议转换,于是用了一个双网口的嵌入式设备,linux应用层编程,大致的网络图如下。

由于终端是TCP服务器,主站是TCP客户端,所以我的实现思路就是,利用嵌入式设备网口1模拟终端IP,网口2模拟主站IP,网口1建立侦听,主站与网口1建立链接,网口2与终端建立链接,然后实现中间的报文修改过滤与转发。但现在有一个问题。当与终端建立链接时,由于网口1地址与终端地址完全相同,应用程序就直接通过内部连接到了网口1上,而不是终端上。
在解决问题的过程中,我已经添加了路由表,并且在套接字编程中也绑定了网口地址,但是还是没有解决问题。
请问大家对这个问题有没有好的解决方案,或者这种报文转发与修改转发的有没有什么更好的思路。
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老马何以识途 2019-06-24
  • 打赏
  • 举报
回复
無法進入内核確實很難,可否考慮配合iptables,把雙方的數據包截斷?
张骢 2019-06-20
  • 打赏
  • 举报
回复
谢谢您提供思路,我们就是想实现冒充节点,欺骗双方,我也考虑过netfilter,但是我们用的别人的核心板,没有提供核心源代码,我的理解是netfilter编译需要核心源码,所以暂时没有实现。
老马何以识途 2019-06-20
  • 打赏
  • 举报
回复
冒充節點,欺騙雙方? 如果要實現這個功能,我想你應該用netfilter去做,截取路由之前的數據包進行處理。其他數據包也需要做手脚,不能讓整個網絡的轉發功能正常建立起來。

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧