Netfilter 에서 패킷 큐잉(NF_QUEUE)하는 예제 어디 없을까요?

kjw2048의 이미지

패킷을 큐잉해서 유저공간에서 처리한다고 하는데...
도무지 메뉴얼도 없고...
어떻게 해야하는지 모르겠군요...
ㅠ_ㅠ

익명 사용자의 이미지

netlink socket 에대한걸 찾아보심 될듯...

mach의 이미지

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

kjw2048의 이미지

답변 감사합니다.

헌데 libipq에서 제공하는 API들로는 큐잉된 패킷의 IP헤더를 접근할수가 없더군요 -_-; (libpcap이랑은 다르게 말이죠;; )

보아하니 iptables에서 던져진 패킷이 ip_queue모듈을 통해서 유저프로그램에게 어떠한 정보를 주는거 같은데.. ip_queue.c 소스를 보니 별게 없더라는 -_-;; (정상패킷이냐; 에러난거냐...이런거정도밖에...)

그냥 새로운 넷필터 모듈을 짜야겠네요 :?

(-_-)/

mach의 이미지

kjw2048 wrote:
답변 감사합니다.

헌데 libipq에서 제공하는 API들로는 큐잉된 패킷의 IP헤더를 접근할수가 없더군요 -_-; (libpcap이랑은 다르게 말이죠;; )

기능적으로 libpcap이 하는것은 다 할 수 있습니다.
pcap과 비교시, 차이점중 장점은 패킷을 drop할 수 있다는 것이지요.
또한, 그냥 (또는, 수정해서) 보낼수도 있다는것이지요.
이러한 작업을 커널 모듈프로그램이 아닌, 전형적인 유저응용프로그램으로 가능하다는 것이 장점입니다.

넷필터 모듈짜는게 더 좋다고 생각하신다면, 그또한 좋은 방법이리고 생각합니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.