我有两台机器,每台机器有两个有效的网络接口,一个以太网接口eth0和一个tun / tap接口gr0.目标是使用接口gr0在机器A上启动TCP连接,然后让机器B的响应(ACK等)通过以太网接口eth0返回.因此,机器A在gr0上发出SYN,机器B在其自己的gr0上接收SYN,然后通过eth0发回其SYN / ACK. tun / tap设备是GNU Radio无线链路,我们只希望响应来自以太网.
最简单的方法是什么?我需要更多地研究TCP / IP,但我最初认为源欺骗输出数据包会告诉接收器响应欺骗地址(应该路由到eth0).这将涉及通过gr0将来自tun / tap接口的IP路由,并将其他流量留给eth0.
谢谢你的期待!
解决方法
您可以在每个系统的lo接口上添加一个额外的地址,并将这些新地址用作TCP连接端点.然后,您可以使用静态路由指示每台计算机到达另一台计算机的地址所使用的路径.
例如:
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.