我需要在Linux中将某些L2数据包(定制的)作为传入数据包注入特定接口,以testing运行在其上的一些应用程序。
有什么库(python首选)/例子,可以帮助吗? 我正在浏览Scrapy库,但看起来它只能将数据包作为传出数据包注入networking?
如果你有可用的本地linux bridge
模块,那么你可以用这种方式使用它。 创建一个桥梁
brctl addbr <brname>
现在创建一个虚拟eth
对(默认名称veth0
, veth1
)。 veths连接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
让我们知道怎么回事