2013-06-12 1 views
0

나는 packet_mmap을 사용하여 시스템의 모든 패킷을 캡쳐하고 있지만 OS의 나머지 부분을 방해하는 어떤 방법도없는 것 같습니다. 나는 사용자 영역으로 들어오는 패킷에 대해 독점적 인 제어권을 가질 수 있기를 원하고 시스템의 다른 응용 프로그램으로 이동할지 여부를 결정하거나 패킷이 떨어지는 경우 기준에 따라 패킷을 필터링 할 수 있기를 원합니다.패킷 MMAP로 패킷을 필터링하고 있습니까?

이렇게하는 방법이 있습니까? 이 특정 주제에 대한 문서를 찾을 수없는 것 같습니다. 내가 원하는 것은 IP 스택에서 모든 들어오는 패킷을 제거하여 다른 프로그램이 가져 오지 못하게하고 패킷 단위로 패킷을 다시 삽입 할 수있게하는 것입니다.

답변

0

PACKET 소켓으로는 원하는 것을 수행 할 수 없습니다. 이러한 용도로는 설계되지 않았습니다.

대신 사용해야하는 것은 모든 들어오는 패킷을 대기열로 보내는 iptables 규칙과 함께 libnetfilter_queue입니다.

+0

이것은 제로 복사 디자인입니까? 그리고 그렇지 않다면, 이것의 제로 카피 버전이 있습니까? 어느 쪽이든, 응답 주셔서 감사합니다. – coder543

+0

@ coder543 : 나는 그렇게 생각하지 않습니다. – caf

+0

답변을 수락했지만 결국'netdev_rx_handler_register()'를 사용하여 패킷을 필터링하기 위해 핸들러를 등록하는 것이 더 효율적이라는 것을 알게되었습니다. – coder543