我有一个这样的虚拟网络:
交换机是一个Open VSwitch,整个网络由Big Switch Floodlight控制器控制。
我正在尝试将两个流程设置为 switch1:
1) 捕获从 h1 到 h2 的任何数据包,并将它们的 dst-IP 和 dst-MAC 地址更改为 h3 的地址。
2) 捕获从 h3 到 h1 的任何数据包,并将它们的 src-IP 和 src-MAC 地址更改为 h2 的地址。
(检查问题底部以了解确切的 Floodlight REST API 请求)
因此,当我从 h1 ping h2 时,ping 应该转到 h3 并返回,但到目前为止我还没有成功。
这可以做到吗?如果是这样,我错过了什么?提前致谢!
小网设置:
sudo mn --topo single,3 --controller remote
Floodlight REST API 请求:
查找 IP 和 MAC 地址并使用 jq 解析:
curl localhost:8080/wm/device/ | jq '.[]|{mac,ipv4}'
设置第一个流程(注意,如果您自己尝试,MAC地址可能不同):
curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"redirection", "src-ip":"10.0.0.1", "dst-ip":"10.0.0.2", "src-mac":"7a:b9:87:ee:d2:b7","dst-mac":"a6:77:bf:8f:c4:db", "ether-type":"0x0800","active":"true","actions":"set-dst-ip=10.0.0.3,set-dst-mac=c2:65:e3:d3:6c:11"}' localhost:8080/wm/staticflowentrypusher/json
设置第二个流程:
curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"redirection2", "src-ip":"10.0.0.3", "dst-ip":"10.0.0.1", "src-mac":"c2:65:e3:d3:6c:11","dst-mac":"7a:b9:87:ee:d2:b7", "ether-type":"0x0800","active":"true","actions":"set-src-ip=10.0.0.2,set-src-mac=a6:77:bf:8f:c4:db"}' http://localhost:8080/wm/staticflowentrypusher/json