ROS 6.36의 Changelog를 보면 다음과 같은 항목이 있습니다.
*) firewall – added pre-connection tracking filter – “raw” table, that allow to protect connection-tracking from unnecessary traffic;
사실 리눅스에서 본래 지원해오던 부분입니다만, MikroTik에서는 이제야 적용을 시켜주네요.
Firewall에서 가장 많은 프로세서 리소스를 사용하는 부분은 Connection tracking인데, Raw table의 경우, Connection tracking 데이터를 수집하기 전 단계에서 해당 패킷을 처리하므로, 프로세서의 부하가 상당히 경감됩니다.. 다만, 이 경우에 사용할 수 있는 chain은 prerouting 그리고 output으로 제한되어 있지요.(Filter, NAT table등은 Connection tracking이 필수적이기 때문에 부하가 높을수밖에 없음)
본 테스트에서는 RB750과 HyenaeFE 프로그램을 사용하여 Filter table과 Raw table에서의 성능을 비교하고자 합니다.
RB750에 추가
/ip firewall raw
add action=drop chain=prerouting disabled=yes dst-port=80 log=no log-prefix="" protocol=tcp
/ip firewall filter
add action=drop chain=input disabled=no dst-port=80 log=no log-prefix="" protocol=tcp
HyenaeFE 설정(Network Interface를 바꾸고, Destination Pattern에서 두번째 %를 RB750의 IP로 바꿉니다. 첫번째 %는 무작위 MAC 주소, 두번째는 무작위 IP, @다음 숫자는 포트번호)
RB750의 준비가 되면 Execute 클릭.
첫번째, Filter rule로 80포트로의 Input Drop 할때 프로세서 점유율 73%.
Filter의 Rule을 Disable, Raw의 Rule을 Enable하고 다시 시작(RAW 필터 사용)할 때 프로세서 점유율 27%
프로세서 점유율이 상당히 낮아진 것을 볼 수 있습니다.