0

我在 Virtualbox 上设置 Mininet 并运行以下拓扑:

sudo mn --topo single,3 --mac --switch ovsk --controller=remote,ip=192.168.56.1,port=6653

我还在主机中运行了泛光灯控制器。

当 ping mininet 下的所有主机时,它们的响应没有问题。

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防火墙全部禁用。

4

1 回答 1

0

防火墙在启用时默认拒绝所有流量,除非ALLOW创建了明确的规则。

添加ALLOW流通过的规则,例如交换机 100: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 到 hostA 的规则,只允许特定主机(例如 hostA( 10.0.0.3) 和 hostB( ))进行通信。10.0.0.7ALLOW

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

于 2015-12-05T07:43:24.490 回答