我在Virtualbox上设置Mininet并运行以下拓扑:
sudo mn --topo single,3 --mac --switch ovsk --controller=remote,ip=192.168.56.1,port=6653
我还在主机上运行了泛光灯控制器。
在mininet下ping所有主机时,他们没有问题地回复。
mininet>pingall
当我使用REST API启用这样的防火墙时出现问题:
curl http://192.168.56.1:8080/wm/firewall/module/enable/json
在这种情况下,当我反复重复pingall命令时,要么没有收到回复,要么随机主机会重放。
例如,使用以下作为唯一规则:
curl -X POST -d '{"action":"ALLOW"}' http://192.168.56.1:8080/wm/firewall/rules/json
我认为应该允许所有主机之间ping,不起作用。
我不会老实地知道我是否遗漏了某些东西,或者这是一个错误,但我无法在文档中找到进一步的解释。
对于我使用win10进行的实验,Windows防火墙全部被禁用。
答案 0 :(得分:0)
除非创建明确的ALLOW
规则,否则默认情况下,防火墙会默认拒绝所有流量。
为流程添加ALLOW
规则以通过例如交换机1 00:00:00:00:00:00:00:01
curl -X POST -d '{"switchid": "00:00:00:00:00:00:00:01"}' http://localhost:8080/wm/firewall/rules/json
这将允许仅直接连接到switch1的主机之间的ping。如果网络中有更多交换机,则必须为每个交换机执行此操作,以允许连接到它们的主机之间进行通信。
但是,您只能通过从hostA到hostB以及hostB明确指定10.0.0.3
规则来允许特定主机(例如hostA(10.0.0.7
)和hostB(ALLOW
))进行通信。回到主持人。
curl -X POST -d '{"src-ip": "10.0.0.3/32", "dst-ip": "10.0.0.7/32"}' http://localhost:8080/wm/firewall/rules/json
curl -X POST -d '{"src-ip": "10.0.0.7/32", "dst-ip": "10.0.0.3/32"}' http://localhost:8080/wm/firewall/rules/json
另请注意:未指定操作意味着ALLOW
规则。
你还可以做更多,
有关更多信息,请参阅文档:Firewall REST API