안녕하세요!
현재 Firewall과 Staticflow 적용을 테스트 중입니다.
테스트 도중 아래와 같은 현상이 발견되어 문의 드립니다.
Abbr.:sf-XXX: Staticflow 'XXX'
fw-YYY: Firewall 'YYY'
OFS, ofs: Openflow Switch
OpenIRIS: 2.0.9---
[현상-1]1. sf-1 를 적용한다. DNS 질의에 대한 패킷을 미러링 하기 위한 static flow 입니다.
curl -d '{"name":"dnsquerymirroring-req", "switch": "00:00:00:23:20:83:40:71", "priority": "1000", "eth_type": "0x0800", "active": "true", "instructions": [ {"apply_actions": [{"output":"2"}, {"output":"1"}]} ] , "ip_proto": "0x0011", "udp_dst": "53", "ipv4_dst": "192.168.10.10" }' http://localhost:8080/wm/staticflowentry/json
* ip_proto 값의 0x0011은 제가 소스를 수정하여 적용하였습니다.2. fw-1 를 설정한다. 아직 Firewall 은 실행하지 않은 상태입니다.
curl -X POST -d '{"tp-dst": "53", "wildcard-tp-dst": "false", "action": "ALLOW"}' http://localhost:8080/wm/firewall/rules/json
>> 1번은 적용하며 패킷이 미러링 됩니다. 이 상태에서 2번을 적용하는 순간 해당 ofs에 적용되었던 sf-1이 해제가 됩니다.
curl http://localhost:8080/wm/staticflowentry/list/{switch}/json
을 통해 확인한 결과 static flow가 존재하지 않는 것을 확인하였습니다.
다시 적용시키기 위해서
curl http://localhost:8008/wm/staticflowentry/reload/json
을 실행시켰습니다.
[현상-2]1. sf-1 을 적용한다.
2. Firewall 을 구동시킨다.
curl http://localhost:8080/wm/firewall/module/enable/json
>> 1번을 적용하면 패킷이 미러링 됩니다. 이 상태에서 2번을 적용하는 순간 [현상-1]과 같이 ofs에 적용되었던 sf-1 이 해제가 됩니다.
역시 [현상-1]과 같은 방법으로 static flow 을 재적용하였습니다.결론적으로 말하면 Firewall 관련된 요청이 처리되는 경우, ofs에 적용되었던 static flow가 적용해제되는 현상이 발생하고 있습니다.
Firewall 구동 여부에 상관없이 Firewall을 추가/삭제 하는 경우에, static flow가 적용해제되고 있습니다.
이 부분의 의도된 것인지, 아니라면 버그로 보여지는 것 같습니다.
============================
이 rule의 의도는 목적지의 서비스 포트가 53인 패킷만 허용을 하기 위합니다.
curl -X POST -d '{"tp-dst": "53", "wildcard-tp-dst": "false", "action": "ALLOW"}' http://localhost:8080/wm/firewall/rules/json
그런데, rule 을 적용시킨 후, ofs의 flow 정보를 보며는 목적지 서비스 포트가 53이 아닌 패킷들도 output 값이 설정된 것을 확인하였습니다.
제가 작성한 firewall rule 에 대해서 조언 좀 부탁드립니다.
감사합니다.