Routes 通过另一个接口重定向以太网流量

Routes 通过另一个接口重定向以太网流量,routes,embedded,protocols,ethernet,dhcp,Routes,Embedded,Protocols,Ethernet,Dhcp,我正在做一个项目,我想通过另一个接口重定向以太网流量。设置如下所示: 我有一台可以上网的电脑。我也有一个MBED LPC1768板,我可以通过USB连接到我的电脑。我可以上传一个二进制文件到这个设备并运行它。例如,我可以让它充当键盘,并向计算机发送按键。我还可以让设备充当鼠标并发送鼠标事件 现在我希望该设备充当以太网接口。由于该设备是使用USB连接的,所以我考虑使用以太网over USB协议。我选择了在Linux和OS X上工作的USBCDC-ECM协议。插入设备时,设备被正确识别为以太网接口。

我正在做一个项目,我想通过另一个接口重定向以太网流量。设置如下所示:

我有一台可以上网的电脑。我也有一个MBED LPC1768板,我可以通过USB连接到我的电脑。我可以上传一个二进制文件到这个设备并运行它。例如,我可以让它充当键盘,并向计算机发送按键。我还可以让设备充当鼠标并发送鼠标事件

现在我希望该设备充当以太网接口。由于该设备是使用USB连接的,所以我考虑使用以太网over USB协议。我选择了在Linux和OS X上工作的USBCDC-ECM协议。插入设备时,设备被正确识别为以太网接口。此外,我在嵌入式设备上运行DHCP服务器,以便为计算机分配一个IP地址。请注意,该设备与外部世界没有工作的internet连接(计算机有一个)

因此,嵌入式设备可以捕获来自计算机的互联网流量。当设备收到数据包时,我想分析数据包,将其发送回计算机,并通过工作接口将其重定向

例如,我有一台笔记本电脑和一个工作接口
wlan0
。现在我插入设备。它被分配到接口
eth0
eth0
是我在计算机上的首选接口,因此所有通信都转到
eth0
。我在设备上捕获该流量,现在我想将该流量发送回计算机,并通过
wlan0
(或任何其他工作界面)进行路由。所以基本上,我想创建一个设备来捕获数据并将其发送回计算机,就像用于互联网流量的中间件USB设备一样

这可能吗?我不希望修改操作系统上的设置,而是让设备来管理它。我的主要操作系统是Ubuntu14.04,所以我现在不关心Windows或OSX。还有,有没有其他办法?也许USBCDC-ECM不是最好的选择


任何帮助都将不胜感激。

如果您有Linux操作系统,您可以使用iptables并指示LAN之外的所有通信都通过该接口。这是正确的方法。

为Internet连接共享(ICS)配置主机(MBED板连接的计算机),也称为网络桥接。如何做到这一点取决于主机的操作系统;例如:


在这种情况下,主机是DHCP服务器,并向设备提供地址;然后,设备本身必须是DHCP客户端而不是服务器

我不确定您试图实现什么,但是如果您的设备已经显示为以太网连接,您不能使用iptables将流量重定向到您的设备吗


否则,您可以让您的设备充当DNS服务器,处理传入的DNS查找并重定向它们。只是一个疯狂的想法。

这个问题太广泛了。你对实际的编程问题有什么特别的问题吗?你自己试过什么?你试过NXP论坛吗?如果它被分配了一个地址,那就是DHCP客户端而不是服务器。好的,在阅读了其他帖子后:你想让主板本身通过“另一个接口”(LPC1768实际上有一个以太网MAC片上接口)连接互联网,还是让PC作为主板和i-net之间的桥梁?对于后者:这实际上不是一个编程问题,而是关于管理的问题。@Clifford true,我在问题中编辑了它。计算机获得一个IP地址,设备将此IP地址提供给计算机。@Olaf板本身没有工作的internet连接。我想让它接收来自计算机的internet请求,分析这些数据包并将它们发送回计算机,但让它们通过有效的接口路由。Linux on ARM Cortex-M MCU?好的@奥拉夫;问题中不清楚,但可能是主机需要配置,并且可能正在运行Linux。@Clifford:我重新阅读了问题:是的,可能是这样。我确实把它理解为“正确的接口”和“另一个接口”的意思。然而,由于他没有澄清这一点(可能是他试图配置他的电脑而丢失了i-net?),这一切都是推测性的。这台计算机运行在Linux操作系统上。嵌入式设备(LPC1768)不运行Linux,而是运行我可以自己编译的二进制文件。@Devos50:很明显,LPC不运行Linux,因为在该硬件上几乎不可能运行Linux(ucLinux是否仍处于活动状态?)。您应该编辑您的问题以包含更多信息。它可能不是LPC,而是PC。你可能想要的是“反向连接”,只需搜索它(这也适用于android设备)。还要更正DHCP服务器上的该部分。那将是你的Linux PC。这与通过USB反向连接手机的过程不一样吗?