net_ratelimit() ? 어떤 역할을 하는 함수인가요?
글쓴이: doyaa / 작성시간: 수, 2005/01/05 - 10:57오전
안녕하세요. 커널안에 있는 네트워크쪽 소스를 살펴보면
다음과 같은 문장을 만나게 되는데..정확한 사용 이유를 모르겠습니다.
혹시 알고 계시는 분이 있으시면 답변 부탁드립니다.
제가 알고 있는 부분은 ,
net_ratelimit 은 DDoS 공격과 같은 보안때문에(?) ~
이 정도 수준입니다. ^^
if (net_ratelimit())
ND_PRINTK2(KERN_WARNING
"ICMP6 NS: bad DAD packet (wrong ip6 dst)\n");
Forums:
net_ratelimit()은 printk_ratelimit()과 같은
net_ratelimit()은 printk_ratelimit()과 같은 역할을 합니다. 단지 네트웍 코드에서 사용하기 편할려고 net_ratelimit()라는 함수를 따로 정의하였습니다. printk_ratelimit() 함수는 커널 메시지를 지나치게 많이 출력을 함으로써 시스템의 동작에 영향을 미치는 것을 막기 위해 도입한 함수입니다. 커널 코드는 이 함수를 불러서 일정한 시간 안에 출력한 메시지의 수가 정해진 수 이하인 경우에만 printk()를 호출하여 메시지를 출력합니다. 중요한 메시지인 경우는 이를 사용하지 않고 직접 printk()를 호출합니다.
이게 DoS 해킹 공격과 직접적인 연관을 가지지 않습니다. 해킹에 의해 커널이 메시지를 많이 뿌리게 되는 경우라면 이로 인한 시스템 마비를 막을 수는 있기는 하겠죠.
Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.
댓글 달기