4

我需要将一些 L2 数据包(自定义)作为 Linux 中的传入数据包注入特定接口,以测试在其上运行的一些应用程序。

是否有任何库(首选python)/示例可以提供帮助?我正在浏览 Scrapy 库,但看起来它只能将数据包作为传出数据包注入网络?

4

1 回答 1

4

如果您有bridge可用的本机 linux 模块,那么您可以通过这种方式使用它。创建桥梁

brctl addbr <brname>

现在创建一个虚拟eth对(默认名称veth0, veth1)。veth 是连接的 L2 设备

ip link add type veth
ifconfig veth0 up
ifconfig veth1 <some_ip> up

现在将您的特定接口(比如说eth0)和一对的一侧添加veth到这个桥接器中。

brctl addif <brname> eth0
brctl addif <brname> veth0

这会将这两个接口都添加到网桥中。现在,当您在 上发送流量时veth0,您应该也可以打开它eth0(基于正常的 L2 交换机功能)。要发送流量,veth0您只需将流量注入veth1其中,因为它们都是内部连接的。所以假设你想使用tcpreplay,就做

tcpreply -i veth1 yourpcap.pcap

让我们知道怎么回事

于 2013-01-29T04:47:45.723 回答