尽管在SDN Floodlight控制器上启用了防火墙规则,但仍可对所有主机执行Ping操作

我正在远程运行Floodlight SDN控制器,并且具有2个交换机和2个主机的mininet拓扑。尽管可以使用REST API [curl命令]启用防火墙规则,但是我仍然可以ping通所有主机。

Mininet Topo-

sudo mn --topo=linear,2 --mac --controller=remote,ip=192.168.56.107 --switch=ovsk,protocols=OpenFlow13

Floodlight控制器-

sdn@sdn-controllers:~/floodlight$ sudo java -jar target/floodlight.jar

启用防火墙的REST API-

sh curl http://192.168.56.107:8080/wm/firewall/module/enable/json -X PUT -d ''

即使在启用防火墙规则之后,Pingall仍然可以工作-

尽管在SDN Floodlight控制器上启用了防火墙规则,但仍可对所有主机执行Ping操作

为什么流量没有被丢弃?我错过了什么?

y5897411 回答:尽管在SDN Floodlight控制器上启用了防火墙规则,但仍可对所有主机执行Ping操作

以下命令仅启用防火墙,并且默认情况下未启用防火墙中的任何规则来控制数据包流。假设控制器在本地主机上运行。

  

sh curl http://localhost:8080/wm/firewall/module/enable/json -X   PUT -d''

您可以使用以下命令检查防火墙状态,并验证防火墙是否真正启用:

  

sh curl http://localhost:8080/wm/firewall/module/status/json

默认情况下,除非创建明确的ALLOW规则,否则防火墙拒绝所有流量。 您可能需要通过查询/ wm / firewall / rules / json来检查现有规则的列表,以查看网络拓扑中是否存在任何ALLOW规则。

您可以在感兴趣的交换机上添加规则,如下所示,其中感兴趣的交换机ID应根据您的拓扑结构。让我们考虑switch1的ID为00:00:00:00:00:00:00:01。下面的命令为所有流通过交换机00:00:00:00:00:00:00:01添加一条ALLOW规则。

  

sh curl POST -d'{“ switchid:” 00:00:00:00:00:00:00:01“}”   http://localhost:8080/wm/firewall/rules/json

交换机中存在以上规则,将仅允许在连接到交换机1的主机之间执行ping操作。

让我们考虑h1的IP地址是10.0.1.1,h2的IP地址是10.0.1.2。

以下命令应为主机10.0.1.1和主机10.0.1.2之间的所有流添加一条ALLOW规则。请注意,未指定操作暗含ALLOW规则。

  

curl -X POST -d'{“ src-ip”:“ 10.0.1.1/32”,“ dst-ip”:“ 10.0.1.2/32”}'   http://localhost:8080/wm/firewall/rules/json

     

curl -X POST -d'{“ src-ip”:“ 10.0.1.2/32”,“ dst-ip”:“ 10.0.1.1/32”}'   http://localhost:8080/wm/firewall/rules/json

以上规则的存在应允许在提到的主机之间执行ping操作

要阻止主机之间的通信,您可能需要按照网络拓扑使用您感兴趣的主机IP地址如下添加DENY规则。

  

sh curl -X POST -d'{“ src-ip”:“ 10.0.1.1/32”,“ dst-ip”:   “ 10.0.1.2/32"、"nw-proto":"ICMP"、"action":"DENY”}'   http://localhost::8080/wm/firewall/rules/json

以上规则的存在将阻止所提及主机之间的ping -现在pingall命令应显示输出,以使主机10.0.1.1(h1)和10.0.1.2(h2)之间的ping不成功。在这种情况下,以下命令还应显示在h1和h2之间没有发生ping操作

  

h1 ping h2

本文链接:https://www.f2er.com/3134150.html

大家都在问