스크랩

€39 아끼려고 브레드보드로 만든 수동 이더넷 탭, 성능은 진짜였다

€39 아끼려고 브레드보드로 만든 수동 이더넷 탭, 성능은 진짜였다

이런 걸 왜 만들었을까?

집에 있는 스마트 TV가 대기 상태에서 대체 무슨 트래픽을 주고받는지 궁금했던 개발자가 있습니다. 시중에는 Throwing Star LAN Tap이라는 €39짜리 수동 네트워크 탭 제품이 있는데, 굳이 사지 않고 RJ45 브레이크아웃 보드와 미니 브레드보드로 직접 복제품을 만들어 버렸습니다. 결과는 놀랍게도 실용적이었습니다.

수동 이더넷 탭이란?

수동(Passive) 탭은 라우터와 대상 기기 사이에 끼워 넣는 아주 단순한 인라인 장치입니다.

  • 전원, 소프트웨어, 설정이 전혀 필요 없음
  • 오가는 신호를 그대로 복사해서 별도의 모니터 포트 2개로 흘려보냄
  • 물리적으로 트래픽을 네트워크에 다시 주입할 수 없어서, 실수로 DoS를 일으킬 위험도 없음

즉, 도청은 하되 절대 끼어들 수는 없는 구조라 안전하게 트래픽을 관찰할 수 있습니다.

배선의 핵심: 기가비트를 일부러 100Mbps로 떨어뜨리기

탭에는 RJ45 잭 4개(J1~J4)가 있습니다.

  • J1(컴퓨터) ↔ J2(라우터): 8핀을 그대로 직결해 일반 패치 케이블처럼 동작
  • J3: J1의 TX 페어(1·2번 핀)를 받아서 한쪽 방향 트래픽을 모니터링
  • J4: J2의 TX 페어를 받아서 반대 방향 트래픽을 모니터링
  • J3·J4의 1·2번 핀은 아예 연결하지 않아, 모니터링 장비가 실수로도 송신을 못 하게 막음

여기서 재미있는 트릭이 하나 나옵니다. 기가비트 이더넷은 4개 페어를 모두 사용하기 때문에 이렇게 2페어만 탭 해서는 신호를 온전히 볼 수 없습니다. 그래서 220pF 세라믹 커패시터 2개를 모니터 잭의 미사용 페어(파란색·갈색 페어)에 브리지시켜 일부러 기가비트 자동 협상을 방해합니다. 그 결과 링크 속도가 100Mbps로 강제 다운그레이드되고, 100BASE-TX는 딱 2페어만 쓰기 때문에 이 탭 구조로 완벽하게 관찰할 수 있게 되는 것이죠.

"브레드보드로 신호가 멀쩡할까?" 걱정과 실제 결과

100BASE-TX는 125MHz로 동작하는데, 브레드보드의 인접한 행 사이에는 보통 2~5pF의 기생 커패시턴스가 존재하고 임피던스도 정확히 맞지 않습니다. 프로덕션 환경이라면 당연히 문제가 되겠지만, 인라인 배선이 워낙 짧다 보니 실험 목적으로는 신호가 전혀 흐트러지지 않았습니다.

실제 스마트 TV와 라우터 사이에 이 탭을 끼우고 데스크톱을 모니터 포트에 연결해 캡처한 결과는 다음과 같습니다.

  • 7.5분 동안 2,769패킷, 평균 14kbps 캡처
  • 전체 프레임에서 CRC 오류 0건, 링크는 100Mbps로 안정적으로 유지
  • TV는 5분도 안 되는 사이 239.255.255.250으로 SSDP NOTIFY 패킷을 877번 전송
  • IPv4·IPv6 양쪽에서 동일한 서비스를 mDNS로도 브로드캐스트
  • 같은 네트워크의 다른 스마트 기기(192.168.3.7)는 브로드캐스트 프레임을 버스트로 34개 전송
  • 라우터(192.168.2.254)는 이 모든 트래픽에 IGMP 쿼리로 응답

대기 상태의 스마트 TV가 생각보다 훨씬 부지런히 제어·탐색 트래픽을 뿌리고 있다는 걸 눈으로 확인한 셈입니다.

댓글에서 나온 대안들도 흥미롭습니다

  • 관리형 스위치가 있다면 포트 미러링 기능으로 훨씬 간단하게 같은 걸 할 수 있다는 의견
  • 더 저렴하고 조악하게는 펀치다운 키스톤 잭 2개로도 비슷한 수동 탭을 만들 수 있다는 링크 공유
  • 옛날 10BASE-T 시절의 원시적인 이더넷 허브(모든 포트가 서로 브로드캐스트)를 떠올리는 사람들도 있었는데, 이런 방식은 충돌에 취약해서 이후로는 거의 사장됐다는 설명

마치며

비싼 상용 장비 대신 부품함에 있는 저렴한 부품 몇 개로 원하는 기능을 재현해낸, 전형적이면서도 유쾌한 DIY 해킹 사례입니다. 네트워크 트래픽을 눈으로 직접 들여다보고 싶다면, 굳이 완제품을 사지 않고도 브레드보드 하나로 충분히 시작해볼 수 있다는 걸 보여줍니다.


원문: https://news.hada.io/topic?id=31043