커널 패킷 필터에 의해 대기열에 있는 패킷을 얻는 방법은 무엇입니까?

커널 패킷 필터에 의해 대기열에 있는 패킷을 얻는 방법은 무엇입니까?

고정된 포트에서 클라이언트로부터의 연결을 받아들이는 간단한 HTTP 프록시를 만들었고, 포크된 프로세스는 인터넷과의 패킷 흐름을 처리하며, 패킷은 세 가지 다른 위치에 저장됩니다. 우선순위(최소, 중간, 최대)를 기준으로 대기열을 만든 다음 우선순위에 따라 전송합니다.

지금까지는 괜찮았지만 내 프록시가 정확히 있어야 할 위치에 있지 않습니다. 프록시는 내 노트북에 있고 프록시에 연결해야 하는 클라이언트는 내 노트북에 있습니다. 따라서 프록시는 작동하지만 이것은 작동하지 않습니다. 실제 사례입니다(내 로컬 컴퓨터에서 프록시를 사용하고 싶지 않고 "외부"에 있기를 원합니다).

이제 테스트 단계가 끝났으므로 에이전트를 외부 엔터티로 마이그레이션하고 싶습니다. 예를 들어 Raspberry Pi 2가 되어야 합니다.하지만마이그레이션에 대해 말씀하시기 전에 먼저 제 질문을 들어주세요. Raspberry Stack Exchange에서 질문을 읽었는데 센서, Pi를 모니터에 연결하는 방법 또는 Bluetooth에 관한 질문이 전부였습니다.

내 질문은 최적화된 데비안 파생 운영 체제인 기본 운영 체제 Raspbian의 라이브러리에 관한 것이므로 이 Stack Exchange가 올바른 장소라고 생각했습니다.

나는 첫 번째 접근 방식 libnetfilter_queue(항상 랩톱에서 프록시 사용)을 시도하고 플래그를 사용하여 iptables패킷 NFQUEUE큐(큐에 복사 DROP하고 시간이 다 되면 다시 보냅니다) 원시 소켓을 갖습니다. 그러나 내 RPi는 아마도 멀티일 것입니다. -인터페이스됨(액세스 포인트이기 때문에 최대 4개의 Wi-Fi 어댑터와 모뎀에 대한 이더넷 케이블이 연결될 수 있음), 감독자는 여러 인터페이스를 처리할 수 없기 때문에 내 목적에 적합하지 않다고 libnetfilter_queue말했습니다 패킷을 보내는 데 사용할 인터페이스를 선택하기가 어렵습니다.

요약: 랩톱에 프록시가 있고 이를 RPi로 마이그레이션하고 싶지만(액세스 포인트가 되는 것 외에도 QOS를 제공해야 함) 패킷을 내 An 인터페이스(또는 4개 모두) wlan0프로그램에 전달된 포트를 수신하도록 설계된 프록시입니다 main.

libnetfilter_queue(분명히) 옵션이 아닙니다. 그렇다면 어떤 라이브러리/API를 사용할 수 있나요?

이것은 내 논문의 일부이므로 기존 프로그램을 사용하는 것보다 라이브러리 및/또는 API를 사용하여 내 코드와 통합하는 것을 선호합니다.

당신의 도움을 주셔서 감사합니다.

관련 정보