Como fazer um tap Ethernet passivo
(blog.lvmbdv.dev)- Para verificar diretamente o tráfego ocioso de uma smart TV, foi reproduzido um tap Ethernet passivo com uma placa breakout RJ45 e uma mini breadboard, em vez de comprar o Throwing Star LAN Tap de €39
- Esse tap fica em linha entre o roteador e o dispositivo-alvo, copiando o sinal para duas portas de monitoramento, e funciona sem alimentação, software ou configuração
- J1-J2 ficam como um cabo patch de 8 pinos ligado diretamente, enquanto J3 e J4 enviam cada par TX bidirecional para o par RX do equipamento de monitoramento, separando a observação por direção de tráfego
- Dois capacitores de 220 pF foram colocados nos pares não usados das portas de monitoramento para atrapalhar a autonegociação Gigabit, reduzindo o link para 100 Mbps e permitindo tap apenas dos dois pares do 100BASE-TX
- No teste com a smart TV, foram capturados 2.769 pacotes em 7,5 minutos, com média de 14 kbps, e o link de 100 Mbps foi mantido sem erros de CRC, mostrando que funciona bem o suficiente como tap passivo experimental
Tap Ethernet passivo feito com breadboard
- Ao ver o Throwing Star LAN Tap, a ideia era verificar quanto a smart TV se comunica, mas em vez de pagar €39, foi feito um clone em mini breadboard
- Um tap Ethernet passivo é um dispositivo simples em linha colocado entre o equipamento-alvo e o roteador
- Copia o sinal para duas portas extras de monitoramento
- Não é possível reinjetar tráfego fisicamente
- Não requer alimentação, software nem configuração
- As portas de monitoramento são somente recepção, então a chance de causar um DoS na rede por engano é baixa
-
Fiação e forçando 100 Mbps
- O tap tem 4 conectores RJ45
- J1 é ligado ao computador, J2 ao roteador
- J1 e J2 são ligados pino a pino e, eletricamente, funcionam como um cabo patch
- J3 monitora o tráfego do computador para o roteador
- O par TX de J1, nos pinos 1 e 2, é enviado ao par RX de J3, nos pinos 3 e 6
- J4 cuida do tráfego no sentido oposto
- O par TX de J2 é enviado ao par RX de J4
- Os pinos 1 e 2 de J3 e J4 ficam desconectados, para que o computador de monitoramento não possa transmitir
- Dois capacitores cerâmicos de 220 pF fazem a ponte nos pares não usados dos conectores de monitoramento
- C1 é ligado aos pinos 4-5 de J3, C2 aos pinos 7-8 de J4
- Esses capacitores quebram a autonegociação Gigabit nos pares azul e marrom, fazendo o link cair para 100 Mbps
- Ethernet de 100 Mbps usa apenas dois dos quatro pares, e essa configuração faz tap exatamente desses dois pares
- Se negociar em Gigabit, os dados se espalham pelos quatro pares, tornando difícil observar com esse tap
Montagem e resultados da captura
- O Throwing Star LAN Tap original usa uma PCB customizada, mas esta montagem foi feita com 4 placas breakout RJ45, 2 capacitores e uma mini breadboard
- O caminho em linha foi ligado diretamente entre J1 e J2 com 8 fios em um lado da breadboard
- O tap de monitoramento faz derivação a partir do caminho em linha
- J3 liga jumpers dos pinos 1 e 2 de J1 aos pinos 3 e 6 de J3
- J4 liga os pinos 3 e 6 de J2 aos pinos 3 e 6 de J4
- Os capacitores fazem a ponte diretamente nos pares não usados dos conectores de monitoramento
- Havia preocupação de que os efeitos parasitas da breadboard pudessem degradar o sinal
- 100BASE-TX opera a 125 MHz
- A capacitância parasita entre fileiras adjacentes da breadboard costuma ser de 2-5 pF, e a impedância também não casa
- Como os fios em linha são curtos, o sinal se manteve sem problemas
- É difícil usar breadboard em uma rede de produção, mas para experimentar com um tap passivo ela funciona bem o suficiente
- O tap foi colocado entre a smart TV e o roteador, e um desktop foi conectado à porta de monitoramento para fazer a captura
- Nos primeiros 7,5 minutos, foram observados 2.769 pacotes, com média de 14 kbps
- Em estado ocioso, a smart TV enviava principalmente tráfego de controle e de descoberta de dispositivos
- Em menos de 5 minutos, a TV enviou 877 pacotes SSDP NOTIFY para
239.255.255.250 - Tanto em IPv4 quanto em IPv6, os mesmos serviços e os mesmos anúncios eram transmitidos por mDNS
- Um dispositivo inteligente em outra sub-rede,
192.168.3.7, enviou 34 frames de broadcast em rajada - O roteador
192.168.2.254respondia a tudo com consultas IGMP
- Em todos os 2.769 frames, houve 0 erros de CRC, e a luz do link permaneceu estável em 100 Mbps
- Quando o adaptador USB Ethernet chegar, também será possível fazer tap do tráfego real de um notebook
1 comentários
Comentários no Lobste.rs
Se você tiver um switch configurável, há uma boa chance de ele oferecer suporte a espelhamento de porta para esse tipo de uso.
Se você não quiser construir um por conta própria, esse é o caminho mais fácil.
Pelo menos eu nunca vi um switch gerenciável voltado ao consumidor.
O ponto principal de um projeto desses parece ser a captura, então eu gostaria que a parte de captura de pacotes tivesse sido mais destacada.
Minha smart TV também gera uma quantidade enorme de tráfego indesejado em standby, além de mDNS e SSDP.
Como ainda não tenho um adaptador Ethernet USB para usar no notebook, a configuração de colocá-lo entre o desktop e a TV ficou bem incômoda.
Quando o adaptador chegar, acho que vou escrever um post mais interessante focado nessa parte.
Uma forma mais barata e mais tosca de fazer a mesma coisa é usar dois keystone jacks punch-down.
https://janitha.com/articles/passive-splice-network-tap/
Quando aprendi redes, lembro de terem me ensinado que existiam hubs Ethernet configurados para transmitir o lado de envio de cada porta para o lado de recepção de todas as outras portas.
Acho que isso já seria mais ou menos um meio-termo.
Claro, nunca vi um hub primitivo desses na prática. Talvez eu seja jovem demais…
Naturalmente, são suscetíveis a colisões e, por isso, não são lá muito confiáveis.
Nunca comprei um, mas vi o interior neste vídeo: https://youtu.be/QgrVVyIzecM?t=266
Isso me faz sentir velho ;-)
Depois disso, imagino que o risco de colisões tenha se tornado um problema grande demais.