Para criar uma contenção para bloquear o tráfego da VLAN 100 na porta 1 do switch 00:00:00:00:00:00:00:01
, execute o seguinte comando:
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"switch": "00:00:00:00:00:00:00:01", "interface": 1, "match": {"vlan": 100}}'
Resultado: "contention created successfully ID 6a3c2d9afdd94136"
Remover o bloqueio (somente pelo ID da regra):
curl -H 'Content-type: application/json' -X DELETE http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"block_id": "6a3c2d9afdd94136"}'
Resultado: "contention deleted successfully ID 6a3c2d9afdd94136"
Para criar uma contenção para bloquear o tráfego do IPv4 10.1.0.254
na VLAN 100 na porta 1 do switch 00:00:00:00:00:00:00:01
, execute o seguinte comando:
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"switch": "00:00:00:00:00:00:00:01", "interface": 1, "match": {"vlan": 100, "ipv4_dst": "10.1.0.254"}}'
Resultado: "contention created successfully ID 85b47cd567bb4b44"
Para criar uma contenção para bloquear o tráfego do IPv4 10.1.0.254
na VLAN 100 e protocolo UDP na porta 1 do switch 00:00:00:00:00:00:00:01
, execute o seguinte comando:
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"switch": "00:00:00:00:00:00:00:01", "interface": 1, "match": {"vlan": 100, "ipv4_dst": "10.1.0.254", "ip_proto":17}}'
Resultado: "contention created successfully ID 8b47dda543cc4ad3"
Para listar as contenções existentes, execute o seguinte comando (duas opções):
curl -s http://127.0.0.1:8181/api/hackinsdn/containment/v1/ ou curl -X GET -H 'Content-type: application/json' http://127.0.0.1:8181/api/hackinsdn/containment/v1/
O NAPP não permite que regras duplicadas sejam criadas:
Adicionar regra:
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"switch": "00:00:00:00:00:00:00:01", "interface": 1, "match": {"vlan": 100}}'
Resultado: "contention created successfully ID 6a3c2d9afdd94136"
Adicionar a mesma regra novamente:
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/hackinsdn/containment/v1 -d '{"switch": "00:00:00:00:00:00:00:01", "interface": 1, "match": {"vlan": 100}}'
Resultado: "RULE already exists in the list. Contentation doesn’t created"
Além dos testes apresentados, é possível criar regras também com match para IPV6. Para isso, considere a VLAN101. É possível também adicionar no match o "ipv6_src" ou "ipv6_dst".