Rota entre duas interfaces de rede com o mesmo endereço IP?

2

Gostaria de monitorar / registrar / analisar temporariamente o tráfego que entra e sai da minha casa. Eu também gostaria de manter inalterada a configuração atual do meu roteador. O roteador é um roteador doméstico sem fio, então não consigo acessá-lo facilmente. Então, estou pensando na seguinte configuração:

  • "corta" o cabo Ethernet entre o roteador doméstico e o modem de banda larga
  • "insira" uma caixa Linux com duas placas Ethernet, uma das quais se conecta ao modem de banda larga e uma ao roteador doméstico.

Se eu configurar as duas placas Ethernet como uma ponte, como eu poderia monitorar / log / analisar todo o tráfego que passa por cima dela?

Se eu configurá-lo como um roteador, é possível atribuir o mesmo endereço IP a ambas as placas Ethernet (a que recebi do meu provedor de banda larga) e ter o tráfego que vem em uma eth0 enviado na eth1, e vice versa? Como eu monitoraria / logaria / analisaria nessa configuração?

Estou interessado em coisas como:

  • com quais endereços IP minha casa fala (ou seja, todos os dispositivos em minha casa agregados) e quanto tráfego vai para lá?
  • quando acontece o tráfego?
  • quais portas estão sendo usadas?
  • Eu tenho alguns aparelhos de internet "hermeticamente selados" em minha casa (por exemplo, uma balança WiFi, AppleTV etc.). Se eu os pegar fazendo algo que eu não quero que eles façam - como enviar dados para um endereço IP do qual não gostei - posso usar essa configuração para "corrigir" o tráfego de rede, por exemplo, largue esses pacotes ou reencaminhe-os para outra caixa que eu controle. Idealmente, eu poderia fazer isso no nível do DNS (por exemplo, roteando algumas consultas DNS para um servidor DNS local) e em um nível de IP.

É claro que eu poderia configurar o NAT na caixa, mas isso cria sobrecarga e altera minha configuração de rede. Quem sabe se coisas como UPnP etc ainda funcionam se houver dois NATs seguidos. Eu sei como fazer o que eu quero fazer com o NAT, mas eu esperava que houvesse uma maneira mais inteligente que alguém pudesse me apontar.

(Isso foi movido de serverfault.com)

    
por Johannes Ernst 23.09.2013 / 23:22

1 resposta

4

Route between two network interfaces with same IP address?

Esta é uma declaração sem sentido. Os endereços IP devem ser únicos em uma rede - o TCP / IP confia nesse fato para operar corretamente.

No entanto -

Transparently bridge between two network interfaces

parece muito mais com o que você está tentando fazer.

Eu acredito que o Linux suporta pontes transparentes. Interfaces unidas a uma ponte funcionarão como um interruptor. É claro que você pode farejar o tráfego passando pela ponte com o Wireshark ou com a linha de comando equivalente, tshark . Eu nunca fiz isso com placas de rede físicas (normalmente são 1 placa de rede física e algo como um adaptador virtual para uma VPN) - essa é uma experiência que eu queria fazer há muito tempo (uma caixa antiga com 4 placas de rede) em um software switcH), mas deve funcionar. brctl é o comando que você deseja analisar.

Então, na caixa Linux do "meio", você precisa criar uma ponte, adicionar suas NICs a ela, e é isso. As NICs fazem parte de uma ponte e não recebem endereços IP individuais (como portas em um switch). Como um switch, ele encaminhará o tráfego na camada 2, não na camada 3, e os dispositivos de ambos os lados não saberão que há algo no meio.

iptables , a interface do Linux para o Netfilter, que é responsável pelo roteamento, filtragem de pacotes e mutilação de pacotes (modificação) é muito versátil e você provavelmente poderia fazer algo equivalente a isso, apesar de funcionar na Camada 3. / p>

No que diz respeito ao software que pode analisar o fluxo capturado, existem muitas ferramentas para fazer isso. Não é algo com o qual eu tenha sido envolvido em profundidade, mas uma vez que você é capaz de capturar pacotes com algo como o Wireshark, muitas opções estão abertas para você.

    
por 24.09.2013 / 00:44