NIC 도구와 진단: 서버에서 모듈 읽기
서버에는 show interface transceiver가 없지만 한 계층 아래에 같은 정보가 있습니다. NIC 드라이버가 모듈 EEPROM을 읽어 ethtool, 벤더 유틸리티를 통해 노출하며, Windows와 ESXi에서는 자체 명령을 통해 노출합니다. 이 페이지는 OS와 벤더별 도구, 각 도구가 보여주는 항목(식별 정보, DDM, FEC 카운터, 링크 상태, PCIe), 링크가 끊기거나 오류가 누적될 때 출력을 해석하는 방법을 정리합니다.
| 명령 | 표시 내용 |
|---|
ethtool eth0 | 링크 상태, 속도, 듀플렉스, 자동 협상, 지원/광고 모드, 포트 유형(FIBRE/DA) |
ethtool -m eth0(--module-info) | 디코딩된 EEPROM: 식별자, 벤더, PN, SN, 날짜, 컴플라이언스, 파장, 길이; 모듈에 있는 경우 DDM(온도, Vcc, 바이어스, Tx/Rx 파워, 임계값, 알람 플래그) |
ethtool -m eth0 raw on hex on | 바이트 단위 비교를 위한 원시 A0h(및 A2h) 덤프(메모리 맵) |
ethtool -m eth0 page 0x11 …(최신 버전) | 400G 이상 모듈의 CMIS 페이지 |
ethtool -i eth0 | 드라이버, 버전, 펌웨어/NVM 버전, 버스 주소 |
ethtool -S eth0 | 통계(CRC 오류 포함); 일부 드라이버에서는 FEC 정정/미정정 포함 |
ethtool --show-fec eth0 / --set-fec eth0 encoding rs | 설정된 FEC 모드와 활성 FEC 모드 |
ethtool -s eth0 speed 25000 duplex full autoneg off | 속도 강제 설정 |
ethtool -p eth0 5 | 포트를 식별하기 위해 포트 LED 점멸 |
ethtool --show-priv-flags eth0 | 드라이버별 플래그(예: link-down-on-close) |
그 밖의 Linux 정보원: sfp, module, link로 필터링한 dmesg(모듈 검증에 관한 드라이버 메시지), lspci -vv -s <addr>(LnkSta의 PCIe 링크 폭/속도), ip -s link show eth0(카운터), /sys/class/net/eth0/(캐리어, 속도).
벤더 도구
| 벤더 | 도구 | 주요 용도 |
|---|
| Nvidia / Mellanox | mlxlink -d <pci> -m -e -c | 모듈 정보와 DDM(-m), 아이 다이어그램/BER과 FEC(-e, -c), 링크 파트너; mlxlink … --fec_override, --speeds |
| Nvidia / Mellanox | mlxconfig -d <pci> q / set | 포트 유형(IB/ETH), 링크 유형, KEEP_ETH_LINK_UP, FEC 오버라이드, 브레이크아웃 |
| Nvidia / Mellanox | mst status, mlxfwmanager | 장치 목록, 펌웨어 |
| Nvidia / Mellanox | ibstat, ibportstate, iblinkinfo | InfiniBand 포트 상태, 폭, 속도(IB 패브릭) |
| Intel | ethtool -m | 기본 도구; Intel에는 전용 모듈 덤프 도구가 없음 |
| Intel | nvmupdate64e, epct64e | NVM 펌웨어 업데이트; 포트 구성(E810 포트 옵션, 예: 2×100G 대 4×25G) |
| Intel | dmesg | ixgbe/i40e/ice: unsupported module 메시지(광학 부품 호환성) |
| Broadcom | bnxtnvm, niccli | NVM, 포트 설정, FEC/AN, 트랜시버 정보 |
| Marvell | qedctl | — |
| AMD Solarflare | sfupdate, sfboot | 펌웨어, 포트 모드 |
| Chelsio | cxgbtool | — |
Windows
| 명령 | 표시 내용 |
|---|
Get-NetAdapter | 링크 상태, 속도 |
Get-NetAdapterAdvancedProperty -Name "Ethernet 2" | 속도/듀플렉스, FEC 모드, 점보 프레임 — Set-NetAdapterAdvancedProperty로 설정 가능 |
Get-NetAdapterHardwareInfo | PCIe 슬롯, 링크 폭/속도 |
Get-NetAdapterStatistics | 카운터 |
Intel PROSet: Get-IntelNetAdapter, Get-IntelNetAdapterSetting | Intel 전용 설정; 장치 관리자 → Link Speed 탭의 모듈 정보 |
Nvidia WinOF-2: mlx5cmd -Stat, mlxlink(Windows 빌드) | 모듈 정보와 링크 진단 |
| 이벤트 뷰어 → 시스템 | 지원되지 않는 모듈에 관한 드라이버 메시지 |
Windows 드라이버는 DDM을 노출하는 경우가 드뭅니다; 벤더 도구를 사용하거나 벤치에서 모듈을 읽으십시오.
VMware ESXi
| 명령 | 표시 내용 |
|---|
esxcli network nic list / get -n vmnic0 | 링크, 속도, 드라이버, 펌웨어 |
esxcli network nic stats get -n vmnic0 | 카운터 |
esxcli system module parameters list -m ixgben / set -m ixgben -p "…" | 지원되는 경우 드라이버 매개변수 |
esxcli intnet …(Intel 플러그인), esxcli mellanox … / mlxlink(Nvidia 플러그인) | 모듈 정보를 포함한 벤더 진단 |
vmkernel.log | “unsupported module”, 링크 플랩 |
esxcli hardware pci list | PCIe 링크 상태 |
출력 해석
| 관찰 내용 | 의미 | 다음 단계 |
|---|
ethtool -m: “Cannot get module EEPROM information: Operation not supported” | 드라이버가 노출하지 않거나, 포트에 모듈이 없거나, 모듈 I²C가 응답하지 않음 | dmesg 확인, 재장착, 다른 포트로 시도(읽기·쓰기 오류) |
식별 정보는 읽히지만 Link detected: no, Rx 파워 정상 | 속도/FEC/AN 불일치 | ethtool --show-fec, 스위치와 비교(FEC 및 AN) |
| Rx 파워 −40 dBm / “-inf” | 빛 없음 | 광섬유, 반대쪽 끝, 극성(링크 없음) |
| 바이어스와 Tx 파워는 정상, Rx는 한계치 | 커넥터 오염, 긴 링크 | 세정, 버짓 확인(Rx 파워와 버짓) |
| FEC 미정정 카운터 증가 | 한계에 다다른 링크 | DDM 수준, 케이블 등급, 온도(VDM 및 FEC 지표) |
| 1U 서버에서 온도 > 70 °C | 통풍 | 재배치, OCP 슬롯(포트와 PCIe) |
2×100G 카드에서 LnkSta: Speed 8GT/s, Width x8 | PCIe 병목 | 슬롯/분기 |
dmesg: unsupported module | 드라이버 화이트리스트 | NIC의 광학 부품 호환성 |
서버에서 모니터링
ethtool -m 출력은 파싱 가능합니다; cron 작업이나 ethtool 컬렉터를 사용하는 노드 익스포터가 DDM을 Prometheus 방식 모니터링으로 내보냅니다(모니터링).- Nvidia
mlxlink의 JSON 출력(--json)과 Intel ethtool -S의 FEC 카운터는 장애 전조 신호로 유용합니다(링크 신뢰성과 모니터링). - 폴링 간격은 30–60초면 충분합니다; DDM 자체는 아무리 빨라도 1초에 한 번 갱신됩니다.
CodingBox에서
ethtool -m raw on hex on과 CodingBox는 동일한 바이트를 읽습니다: 모듈이 NIC와 벤치에서 다르게 동작하면 두 덤프를 필드 단위로 비교하십시오 — 아무것도 다시 쓰지 않는 드라이버라면 동일한 데이터를 보여주며, 차이가 있다면 모듈 자체의 동적 페이지나 읽기 오류를 가리킵니다(Check transceiver, 도구로 DDM 읽기).