使用Scapy向Mininet交换机注入流量 实验记录
用Python脚本及Scapy库写了一个简单的流量生成脚本,并打算使用该脚本往Mininet中的OpenvSwitch交换机注入流量。拓扑图如下:
h1(10.0.0.1) :h1-eth0 <=> s1-eth1: s1 :s1-eth2 <=> h2-eth0: h2(10.0.0.2)
生成流量的目的IP:nw_dst=10.0.0.2/32
;
注入流量的端口:s1-eth1
;
OVS此时已下好转发该流量的流表,主要作用是匹配该流量的目的IP地址,并转发到s1-eth2口。
然而,脚本往s1-eth1注入的流量全部被交换机丢弃,同时,使用ovs-ofctl dump-flows s1
查看流表信息发现流表根本没有匹配到该流量。
逐步debug:
- 1.流量脚本没有问题;
- 2.下发的流表规则没有问题;
- 3.Mininet内主机互ping也正常。
随后开始怀疑脚本注入流量的端口不对,使用ifconfig
查看端口信息,发现s1有三个端口,分别是s1
,s1-eth1
和s1-eth2
。
一试,发现当脚本往端口s1
注入流量时,流量被s1正常转发,流表也有匹配到流量的数据。算是意外的收获,记之。
2018.1.