uma aplicação para o controlador Ryu, fornecendo um serviço restful para inserção O código aqui hospedado faz parte de um trabalho de iniciação científica. Consiste em de regras de alto nível em um switch openflow.
Utilizamos Python 2.7 para escrever este código, e como já dito, o Ryu como controlador openflow. Usamos o OpenvSwitch, logo caso queira testar o código conecte o Ryu ao OpenvSwitch, pois não utilizamos as funcionalidades do Ryu como switch.
Abaixo descrevemos os serviços providos por nossa API:
URL | Método | Formato do JSON |
---|---|---|
/add_by_ip | POST | {"ip" : "<target_ip>"} |
/delete_by_ip | POST | {"ip" : "<target_ip>"} |
/add_by_mac | POST | {"mac": "<target_mac>"} |
/delete_by_mac | POST | {"mac": "<target_mac>"} |
/add_by_port | POST | {"port": "<port_number>"} |
/delete_by_port | POST | {"port": "<port_number>"} |
/add_blockbetweentimes | POST | {"ip" : "<target_ip>", "begin": "<begin_time>", "end": "<end_time>"} |
/delete_blockbetweentimes | POST | {"ip" : "<target_ip>", "begin": "<begin_time>", "end": "<end_time>"} |
/add_nonblockbetweentimes | POST | {"ip" : "<target_ip>", "begin": "<begin_time>", "end": "<end_time>"} |
/delete_nonblockbetweentimes | POST | {"ip" : "<target_ip>", "begin": "<begin_time>", "end": "<end_time>"} |
/add_by_protocol | POST | {"protocol": "<protocol_name>"} |
/delete_by_protocol | POST | {"protocol": "<protocol_name>"} |
/add_by_protocolport | POST | {"protocol": "<protocol_name>", "port": "<port_number>"} |
/delete_by_protocolport | POST | {"protocol": "<protocol_name>", "port": "<port_number>"} |
/list | GET | |
/lock | PUT | {"command": "block_all"} |
/unlock | PUT | {"command": "block_all"} |