Como obter pacotes enfileirados pelo filtro de pacotes do kernel?

1

Eu fiz um proxy HTTP simples que aceita conexões de clientes em uma porta fixa; os forks de proxy para todas as conexões de entrada, e o processo bifurcado lida com o fluxo de pacotes para a Internet e da Internet; um QOS simples é implementado, os pacotes são armazenados em três filas diferentes de acordo com seu nível de prioridade (mínimo, médio, máximo) e, em seguida, enviados em ordem de prioridade.

Até aí tudo bem, mas meu proxy não é exatamente onde deveria estar: o proxy está no meu laptop, e os clientes que se conectam ao proxy são apenas meu laptop: então o proxy está funcionando, mas isso não é um caso real (não quero um proxy em uma máquina local, quero "fora" dele).

Agora que a fase de testes acabou, eu quero migrar meu proxy em uma entidade externa, onde (eu acho) deveria ser: por exemplo, meu Raspberry Pi 2 mas antes de me informar para migrar esta questão, por favor, ouça sobre o meu problema. Eu li as perguntas no Raspberry Stack Exchange e elas são sobre sensores, como conectar o Pi a um monitor ou questões sobre Bluetooth.

Meu problema é sobre bibliotecas no sistema operacional subjacente, Raspbian, um SO derivado do Debian otimizado, então eu pensei que este Stack Exchange seria o lugar apropriado.

Eu tentei uma primeira abordagem com libnetfilter_queue (sempre com proxy no meu laptop) e com o iptables flag, NFQUEUE , eu tinha minha (s) fila (s) de pacotes (para copiar em uma fila minha, DROP deles e enviá-los novamente quando chegar a hora com um socket bruto): mas meu RPi pode ser multi-interface (pode ter até quatro dongles Wi-Fi inseridos, já que é um Access Point, mais a Ethernet cabo com o qual ele está conectado ao meu modem), e meu supervisor disse libnetfilter_queue não é adequado para o meu propósito, já que não pode lidar com mais de uma interface, e tem dificuldade em escolher qual interface usar para enviar pacotes. / p>

Em resumo: eu tenho um proxy no meu laptop, gostaria de migrá-lo no meu RPi (assim, além de ser um ponto de acesso, ele também deve oferecer QOS), mas não sei como redirecionar os pacotes de uma interface wlan0 (ou todos os quatro deles) para o meu proxy, projetado para escutar em uma porta passada para o programa main .

libnetfilter_queue is (aparentemente) não é uma opção, então qual biblioteca / API eu posso usar?

Isso faz parte da minha tese, então eu prefiro usar bibliotecas e / ou APIs para integrar com meu código, não para usar programas já existentes.

Obrigado pela sua ajuda.

    
por elmazzun 13.04.2016 / 12:01

0 respostas