Se utiliza la aplicacion de Ryu “rest_firewall.py” y el programa postman para manejar comandos rest.
Se crea una topologia de un switch y tres host.
“sudo mn –topo single,3 –controller remote –mac”
Luego se configura la versión de openflow que se va a utilizar.
“ovs-vsctl set Bridge s1 protocols=OpenFlow13”
Al comenzar el firewall bloquea toda comunicación y desactiva el switch.
Podemos activar el switch mediante:
“http://localhost:8080/firewall/module/enable/0000000000000001”
El estado se puede ver:
“http://localhost:8080/firewall/module/status”
Luego se añaden las reglas para permitir la conexión entre host haciendo un post:
“http://localhost:8080/firewall/rules/0000000000000001”
Pasandole por parámetros en la casilla “body” el parámetro de origen, destino y protocolo:
{“nw_src”: “10.0.0.1/32”, “nw_dst”: “10.0.0.2/32”, “nw_proto”: “ICMP”}
La regla debe ser bidireccional, se debe crear hacia ambas direcciones.
{“nw_src”: “10.0.0.1/32”, “nw_dst”: “10.0.0.2/32”, “nw_proto”: “ICMP”}
Con esto previo, se crearon dos reglas, uno para permitir ICMP de 10.0.0.1 a 10.0.0.2 y de 10.0.0.2 a 10.0.0.1.
Luego podemos probar que esto funciona, viendo no bloqueamos la comunicación entre el host 1 y el 2 pero no existe ninguna regla con el host 3 entonces no puede llegar hacia el.
Para eliminar una regla se puede hacer un delete:
“http://localhost:8080/firewall/rules/0000000000000001”
Agregándole en body, el ID de la regla:
{“rule_id”: “1”}
{“rule_id”: “2”}