Pergunta

Estou disposto a construir um protótipo de dispositivo de rede. Este aparelho é supor para manipular de forma transparente Ethernet pacotes. É suposto ter duas placas de interface de rede com um cartão ligado à perna de fora (ou seja, eth0 ) e outro para a perna interior (ou seja, eth1 ).

Em um layout de rede típico como na imagem em anexo, ele será colocado entre o router eo interruptor do LAN.

Meus planos são para escrever um software que ganchos no nível do driver kernel e fazer o que eu preciso fazer para pacotes de entrada e de saída.

Por exemplo, um pacote de "saída" (em eth1) iria ser manipulado e passado para a outra placa de rede (eth0) que, em seguida, devem ser transportados para o próximo esperança

As minhas perguntas são:

  1. É este factível?
  2. As NIC terá nenhum endereço IP, é que deve ser um problema?

Agradecemos antecipadamente por suas respostas.

(E não, não há tal dispositivo ainda no mercado, por isso, por favor "porque reinventar a roda" estilo de respostas são irrelevantes)

rede típica diagrama http://img163.imageshack.us/img163/1249/ stackpost.png

Foi útil?

Solução

Eu sugiro libipq , que parece fazer exatamente o que você quer:

Netfilter fornece um mecanismo para passar os pacotes para fora da pilha para fila para userspace, em seguida, receber esses pacotes de volta para o kernel com um veredicto especificando o que fazer com os pacotes (como ACCEPT ou DROP). Estes pacotes também pode ser modificado no espaço do usuário antes de reinjeção de volta para o kernel.

Outras dicas

Aparentemente, isso pode ser feito. Na verdade, estou tentando construir um protótipo dele usando scapy

enquanto as NICs estão definidas para modo promíscuo, eles pegam pacotes na rede sem a necessidade de um conjunto de endereços IP sobre eles. Eu sei que pode ser feito, pois há uma grande quantidade de empresas que produzem o mesmo tipo de equipamento (ou seja:. Juniper Networks, Cisco, F5, Fortinet ect)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top