我正在尝试模拟一个L3交换机,其中连接了多台计算机(没有VLAN或只有一个VLAN。)然后,我想配置该交换机以根据需要转发数据包,但是我没有运气。
(基本上模拟中间人攻击。)
ovs-vsctl add-br br0
:创建网桥(BR0)ovs-ofctl --strict add-flow br0 priority=1,tcp,nw_dst=192.168.0.4,actions=mod_nw_dst=192.168.0.3
:添加修改目的地IP的流。捕获要转到VM3的打包并将其转发到VM2(希望如此)。ovs-ofctl --strict add-flow br0 priority=1,tcp,nw_src=192.168.0.3,actions=mod_nw_src=192.168.0.4
:添加修改源IP的流。要使响应来自VM3。但是,很明显,这并不成功。
ping
从一个人到另一个人。 cURL
从一个人到另一个人。 mod_nw_dst
命令无效。从VM1,我只能看到来自VM3的原始响应,我想将其转发给VM2。我在Google上进行了很多搜索,并找到了许多有关跨VLAN转发的文章,但并不是在单个网桥中就这样。我的实现不正确吗?否则,这不是预期的功能吗?在那种情况下,模仿这些东西的最佳方法是什么?
谢谢!
编辑:ovs-ofctl dump-flows br0
的结果就是上面的命令。
cookie=0x0, duration=157469.378s, table=0, n_packets=0, n_bytes=0, priority=1,tcp,nw_src=192.168.0.3 actions=mod_nw_src:192.168.0.4
cookie=0x0, duration=157462.433s, table=0, n_packets=0, n_bytes=0, priority=1,tcp,nw_dst=192.168.0.4 actions=mod_nw_dst:192.168.0.3
cookie=0x0, duration=157534.866s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL