如何解决如何通过不同的接口路由TCP / IP响应?
| 我有两台机器,每台机器都有两个有效的网络接口,一个以太网接口eth0
和一个tun / tap接口gr0
。目标是使用接口“ 1”在计算机A上启动TCP连接,但随后使计算机B的响应(ACK等)通过以太网接口“ 0”返回。因此,机器A在ѭ1上发出SYN,而机器B在自己的ѭ1上接收SYN,然后通过then0ѭ发回它的SYN / ACK。 tun / tap设备是GNU Radio无线链接,我们只希望响应通过以太网来。
最简单的方法是什么?我需要对TCP / IP进行更多的研究,但是最初我想让源欺骗的输出数据包告诉接收者对欺骗的地址做出响应(应该将其路由到“ 0”)。这将涉及将来自tun / tap接口的IP通过“ 1”进行路由,而将其他流量留给“ 0”。
我们正在使用Linux,并且Python解决方案会更可取。
感谢您的光临!
解决方法
您可以在每个系统上的“ 10”接口中添加一个附加地址,并将这些新地址用作TCP连接端点。然后,您可以使用静态路由来指示每台计算机到达另一台计算机的“ 10”地址所采用的路径。
例如:
Machine A:
ip addr add 1.1.1.1/32 dev lo
ip route add 2.2.2.2/32 dev eth0 via <eth0 default gateway>
Machine B:
ip addr add 2.2.2.2/32 dev lo
ip route add 1.1.1.1/32 dev gr0
然后在机器A上绑定到1.1.1.1,并连接到2.2.2.2。
,您可能想启用火星数据包net.ipv4.conf.all.log_martians
的日志记录,并在受影响的接口上禁用反向路径筛选net.ipv4.conf.<interface>.rp_filter
。
该sysctl vars可通过/15ѭ实用程序和/或/proc
文件系统访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。