예전에는 patch-o-matic에 포함되어 있었는데,
요근래 nth와 random을 사용할 일이 있어서 pom에 찾아보니 해당 기능이 안 보여서
리눅스 커널 소스(2.6.18)에 정식으로 들어갔나 싶어 찾아봐도 안 보여서
오래전 버전의 pom에 들어가 있는 nth를 커널 소스에 패치하고 사용하여보니
invalid option 에러가 나고 동작하지 않아, 오랜시간 구글링을 하였더니
해당 기능은 커널소스에 xtables안에 들어 있는
xt_statistic 모듈에 nth와 random이 들어 있다는 사실을 알게 되었습니다.
nth와 random모듈이 합쳐져서 xt_statistic 모듈이 되었다고 본 것 같습니다.
이것을 사용하기 위해서는 최신 리눅스 커널 소스(저는 2.6.18사용)와
최신 iptables소스 (전 svn으로 받음) 가 필요합니다.
커널 소스에서 xt_statistic모듈을 올리고 컴파일한 후, iptables를 컴파일하면
환경 구축은 완료입니다.
사용은 다음과 같이 합니다.
modprobe xt_statistic // xt_statistic모듈 로드
/usr/local/sbin/iptables -A PREROUTING -t mangle -i eth0 -m statistic --mode=nth --every 2 --packet 0 -j ROUTE --gw 192.168.0.2 --tee
위 예와 같이 -m statistic 으로 모듈을 지정하고 --mode=nth 로 statistic모듈중 nth를
사용한다는것을 지정해 준 다음 nth에 있던 every와 packet 옵션은 동일하게 사용합니다.
그런데 nth에 있었던 counter 옵션은 안 되었습니다.
옵션 이름이 바뀐건지 아예 없어진것인지는 소스 분석을 해 봐야 알겠지만
해당 사항은 아직까지 구글에서 검색해보아도 별 내용이 없었습니다.
최신 환경에서 nth, random 모듈을 사용하고자 하는 분들은 위와 같이 사용하시면 되겠습니다.