본문으로 건너뛰기
0
r/jeffnews HN 약 4분

10GbE DAC 케이블의 EEPROM을 조작해서 25Gbps를 뽑아낸 이야기

devops

요약

10GbE DAC 케이블의 SFP EEPROM에 저장된 속도 메타데이터를 I2C로 수정하여 25Gbps 링크를 성공시킨 홈랩 해킹기. 실측 9.4Gbps에서 22.8Gbps로 점프. 모든 케이블이 되는 건 아님.

기사 전체 정리

10GbE DAC 케이블의 EEPROM을 조작해서 25Gbps를 뽑아낸 이야기

문제 상황

  • 홈랩을 10GbE에서 25GbE로 업그레이드하면서, NIC와 스위치만 바꾸면 될 줄 알았는데 기존 DAC(Direct Attach Copper) 케이블이 10Gbps로만 연결됨. 25Gbps NIC에 꽂아도 9.4 Gbps밖에 안 나옴
  • DAC 케이블 하나에 $15~$20이라 전부 교체하면 비용이 꽤 됨

SFP 커넥터의 비밀

  • SFP(Small Form-factor Pluggable) 커넥터 안에는 EEPROM이 있고, 여기에 벤더 ID, 제품 ID, 시리얼, 그리고 **지원 속도(nominal signaling rate)**가 메타데이터로 들어있음. NIC가 이 정보를 읽고 속도를 결정함

  • SFF-8472 스펙에 따르면 속도는 바이트 0x0c에 100 Mbaud 단위로 저장됨. 10G 케이블은 0x67(10,300 Mbaud), 25G 케이블은 0x0c에 0xFF를 넣고 바이트 0x42에 0x68(26,000 Mbaud)을 씀

  • 핵심 발상: "이 속도 필드를 바꾸면 어떻게 될까?"

실제 해킹 과정

  • Banana Pi BPI-R3 라우터($200 미만)의 SFP+ 포트를 이용해 I2C 버스로 EEPROM에 직접 접근. i2csfp 도구로 속도 바이트를 수정하고 체크섬을 갱신함

  • 양쪽 커넥터 모두 수정해야 함 (흥미롭게도 양쪽 끝의 EEPROM 데이터가 시리얼 번호까지 동일했음)

  • 결과: iperf3로 측정했더니 9.4 Gbps → 22.8~23.4 Gbps로 점프! 2.5배 속도 향상이 EEPROM 바이트 2개 바꾸는 걸로 달성됨

중요

> 10GbE DAC 케이블을 EEPROM 수정만으로 25GbE로 "업레이트"할 수 있음. 실측 22.8 Gbps. 다만 모든 케이블이 되는 건 아님 — 얇은 케이블(30AWG)이나 특정 제조 배치는 실패할 수 있음.

모든 케이블이 되는 건 아님

  • 10Gtek 케이블 여러 개로 테스트한 결과, 한 케이블은 수정 후에도 링크 자체가 안 올라옴

  • 안 되는 케이블의 특징: 10Gtek 로고에 노란 배경 없음, 리벳 대신 나사 사용, 케이블이 가장 얇음. 케이블 굵기(저항/차폐)가 원인일 수 있음

  • 26AWG가 30AWG보다 훨씬 두꺼우니 가능하면 26AWG를 선택할 것. 하지만 그것만으로 성공이 보장되진 않음

  • 커넥터를 분해해보니 Twinax 와이어가 핀 폭의 일부밖에 안 되는 초소형이고, 와이어가 크로스 연결돼 있음. Cat.8 케이블로 교체 시도도 했지만 패드가 뜯어져서 포기

핵심 포인트

  • SFP EEPROM 바이트 0x0c와 0x42 수정으로 10G→25G 속도 변경
  • Banana Pi BPI-R3의 SFP 포트로 I2C 직접 접근
  • 실측 9.4 Gbps → 22.8-23.4 Gbps
  • 일부 케이블(얇은 케이블, 특정 배치)은 링크 자체가 안 올라옴

인사이트

패시브 DAC 케이블이 물리적으로는 25G 신호를 전달할 수 있는데 EEPROM 메타데이터 때문에 제한되는 경우가 있다는 발견. 홈랩 운영자에게 $15-20 x N 절약 팁.

댓글

댓글

댓글을 불러오는 중...

devops

살면서 몰랐던 셸 트릭 모음 — 터미널에서 Backspace 꾹 누르기 이제 그만

대부분의 개발자가 ls, cd, grep 이후로 터미널 학습을 멈추는데, 셸에는 1989년부터 존재하던 생산성 트릭들이 가득함. POSIX 범용 단축키부터 Bash/Zsh 전용 기능까지, 하루 하나씩 익히면 터미널 생활이 완전히 달라짐.

devops

OCI에서 PostgreSQL HA 구성할 때, 페일오버 테스트는 통과하는데 프로덕션에서 깨지는 이유

OCI에서 PostgreSQL HA 클러스터의 VIP가 페일오버 시 자동으로 이동하지 않는 문제를 다룬다. AWS/Azure와 달리 OCI는 VIP가 VNIC에 명시적으로 바인딩되어 있어 OCI API 호출이 필요하며, 이를 해결하는 두 가지 프로덕션 검증된 방법(HAProxy vs OCI API 콜백)을 제시한다.

devops

Wine 11, 드디어 커널 수준에서 Windows 동기화 재설계 — FPS 678% 상승 레전드

Wine 11이 출시됐는데 이거 그냥 버전업이 아님. **NTSYNC**라는 커널 레벨 동기화 드라이버가 탑재되면서 일부 게임 FPS가 최대 678% 폭등했고, **WoW64** 아키텍처도 완성돼서 32비트 앱 실행에 더 이상 삽질 안 해도 됨. Proton이랑 Steam Deck도 혜택 받는 구조라 Linux 게이밍 역사상 손꼽히는 업데이트임.

devops

NixOS 찬양글 - 이게 바로 OS가 나아가야 할 방향 아님?

NixOS 유저가 왜 NixOS에 진심인지 열변을 토하는 글임. 핵심은 NixOS 자체보다 **Nix 패키지 매니저**의 선언적·재현 가능한 철학에 있고, LLM 코딩 에이전트 시대에 특히 더 찰떡이라고 함. Docker보다 낫다는 주장도 ㄹㅇ 공감 포인트.

devops

Cloudflare Workers 위에서 터미널 AI 코딩 에이전트를 통째로 돌리는 프로젝트

ghostty-web 터미널 UI + Durable Object + SQLite + Dynamic Worker Loader를 결합해 Cloudflare Workers에서 완전한 AI 코딩 에이전트 런타임을 구현한 Show HN 프로젝트. 세션별 파일시스템, 코드 실행 샌드박스, Worker 퍼블리싱, cron job까지 지원한다.