1

我愿意建立一个网络设备的原型。假设该设备透明地操纵以太网数据包。假设有两个网络接口卡,其中一个卡连接到外部支路(即eth0),另一个连接到内部支路(即eth1)。

在附图中的典型网络布局中,它将放置在路由器和 LAN 的交换机之间。

我的计划是编写一个在内核驱动程序级别挂钩的软件,并对传入和传出的数据包做任何我需要做的事情。

例如,一个“传出”数据包(位于 eth1)将被操纵并传递到另一个 NIC(eth0),然后应该将其传输到下一个希望

我的问题是:

  1. 这是可行的吗?
  2. 那些网卡将没有IP地址,这应该是一个问题吗?

提前感谢您的回答。

(不,市场上还没有这样的设备,所以请,“为什么要重新发明轮子”的答案风格无关紧要)

典型网络图 http://img163.imageshack.us/img163/1249/stackpost.png

4

3 回答 3

2

我建议libipq,这似乎正是你想要的:

Netfilter 提供了一种机制,用于将数据包从堆栈中传递出来以排队到用户空间,然后将这些数据包接收回内核,并通过一个裁决指定如何处理这些数据包(例如 ACCEPT 或 DROP)。这些数据包也可以在重新注入内核之前在用户空间中进行修改。

于 2010-01-10T10:45:03.880 回答
0

显然,这是可以做到的。我实际上正在尝试使用scapy构建它的原型

于 2010-01-10T10:28:17.117 回答
0

只要将 NIC 设置为混杂模式,它们就可以捕获网络上的数据包,而无需为其设置 IP 地址。我知道这是可以做到的,因为有很多公司生产相同类型的设备(例如:Juniper Networks、Cisco、F5、Fortinet 等。)

于 2012-04-25T14:08:46.117 回答