10GbE DAC 케이블의 EEPROM을 조작해서 25Gbps를 뽑아낸 이야기
요약
기사 전체 정리
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 케이블로 교체 시도도 했지만 패드가 뜯어져서 포기
댓글
댓글
댓글을 불러오는 중...