我有两台机器,每台机器都有两个有效的网络接口,一个以太网接口eth0
和tun/tap接口gr0
。我们的目标是使用接口gr0
在机器A上启动TCP连接,然后让机器B的响应(ACK等)通过以太网接口eth0
返回。因此,机器A在gr0
上发送SYN,机器B自己接收到SYN gr0
,但之后通过eth0
发送其SYN/ACK。 tun/tap设备是一个GNU Radio无线链路,我们只希望响应通过以太网传输。如何通过不同的接口路由TCP/IP响应?
完成此操作的最简单方法是什么?我需要对TCP/IP进行更多的研究,但是我最初认为来源欺骗传出数据包会告诉接收方对欺骗地址(应该被路由到eth0
)作出响应。这将涉及通过gr0
从tun/tap接口路由IP,并将其他流量保留为eth0
。
我们正在使用Linux和Python解决方案将是可取的。
感谢您的期待!
此外,识别内核对接收数据包做什么的好方法是什么?它丢弃它吗?发送到'/ dev/null'?是的,这可能是一个单独的问题。 – 2011-05-25 14:19:28
'netstat -s'的输出可能让你知道内核对数据包做了什么(丢弃/传递/连接计数),尽管只在聚合级别上。使用'tcpdump'或'wireshark'来查看线路上发生了什么。 – 2011-05-25 14:30:13
好吧,随着我的欺骗逼近,我看到收到的数据包,但没有响应产生。看起来好像内核由于某种原因默默丢弃数据包。 – 2011-05-25 14:37:00