我需要将一些 L2 数据包(自定义)作为 Linux 中的传入数据包注入特定接口,以测试在其上运行的一些应用程序。
是否有任何库(首选python)/示例可以提供帮助?我正在浏览 Scrapy 库,但看起来它只能将数据包作为传出数据包注入网络?
我需要将一些 L2 数据包(自定义)作为 Linux 中的传入数据包注入特定接口,以测试在其上运行的一些应用程序。
是否有任何库(首选python)/示例可以提供帮助?我正在浏览 Scrapy 库,但看起来它只能将数据包作为传出数据包注入网络?
如果您有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
让我们知道怎么回事