ESP32 dual-W5500 transparent Ethernet bridge
ESP32 dual-W5500 transparent Ethernet bridge
Overview
Project at a Glance
Parameter | Specification / Fact |
|---|---|
Project Title |
|
Developer / Author | felomousa |
Repository URL | |
Primary MCU | Espressif ESP32 (Dual-Core Tensilica LX6, 240 MHz) |
Ethernet Chipset | WIZnet W5500 (2 Units in MACRAW Mode) |
Host Interface | SPI Bus (Shared SCLK/MOSI/MISO, Dual CS/SCS) |
Firmware Framework | ESP-IDF / C++ Native Implementation |
Software License | Open Source (MIT License) |
System Architecture
CS1 and CS2).
+-----------------------------------------------------------------------------------+
| POWER PATH |
| [ 5V / 3.3V Power Source ] ---> [ ESP32 VCC/GND ] |
| ---> [ W5500 #1 VCC/GND ] |
| ---> [ W5500 #2 VCC/GND ] |
+-----------------------------------------------------------------------------------+
+-----------------------------------------------------------------------------------+
| DATA PATH (Layer 2) |
| |
| [ Ethernet Segment A ] [ Ethernet Segment B ] |
| | | |
| v v |
| +--------------+ +--------------+ |
| | W5500 #1 | | W5500 #2 | |
| | (MACRAW S0) | | (MACRAW S0) | |
| +--------------+ +--------------+ |
| | | |
| (SPI CS1) (SPI CS2) |
| | +-----------------------------------------+ | |
| +----> | Shared SPI Bus (MOSI, MISO, SCLK) | <----+ |
| | Controlled by ESP32 Core 0/1 DMA | |
| +-----------------------------------------+ |
+-----------------------------------------------------------------------------------+
Features
Role of W5500
Official Specs vs. Actual Implementation Parameters
Feature Parameter | W5500 Official Datasheet Spec | Project Implementation Value |
|---|---|---|
Hardwired TCP/IP Stack | L3/L4 Hardware Engines (TCP, UDP, ICMP, IPv4, ARP, PPPoE) | Bypassed completely (Unused) |
Socket Allocation | 8 Hardware Sockets supported | 1 Socket Used per W5500 (Socket 0 set to MACRAW) |
Socket Protocol Mode |
|
|
SPI Interface Clock | Up to 80 MHz max SPI clock | 공개 자료에 없음 (ESP32 SPI default ~20–40 MHz) |
Interrupt / Polling | INT Pin Hardware Interrupts supported | Polling driven via main MCU loop |
Driver Software Layer | Official WIZnet ioLibrary / BSD Socket API | Direct Register Manipulation via SPI Driver |
Target Port / Addressing | Port numbers required for L4 Sockets | Not Applicable (Layer 2 MAC raw streaming) |
Developer Reuse Point
w5500_macraw.cpp)Related Existing Contents in Maker Site
Comparative Parameter | felomousa/w5500-macraw-bridge | W5500 LoRa Telemetry Bridge | ESP32 Ethernet-WiFi L2 Bridge |
|---|---|---|---|
Maker Article Link | N/A (External GitHub) | ||
Network Architecture | Dual W5500 (Wired to Wired) | Dual W5500 (Wired via Wireless LoRa) | Single W5500 + ESP32 Wi-Fi |
Operating Layer | Layer 2 (Ethernet MACRAW) | Layer 4 / Application (Modbus TCP) | Layer 2 (Ethernet-to-WiFi Bridge) |
Hardwired Stack Usage | Bypassed completely | Used (Hardware TCP/IP Sockets) | Hybrid (W5500 Driver + ESP Netif) |
Hardware Topology | Inline MITM Hardware Pass-Through | Point-to-Point Wireless Extension | Wired LAN to Wireless AP Bridge |
Market & Application Value
WIZnet Strategic Value
Validation & Limitations
Validated Features
MACRAW socket mode.Technical Limitations
Summary
felomousa/w5500-macraw-bridge repository demonstrates a compact hardware solution for transparent Layer 2 Ethernet bridging using an ESP32 and two WIZnet W5500 modules. By operating both W5500 modules in MACRAW socket mode, the system bypasses standard TCP/IP network layers to pass raw frames directly across a shared SPI controller. This architecture provides an accessible reference for building low-cost network TAPs, inline protocol analyzers, and embedded security filtering tools using standard WIZnet hardware.
FAQ
Q1: Why use MACRAW mode instead of regular W5500 TCP/UDP socket modes?
Q2: Can the bridge be detected by an attacker or network management software?
Q3: Does this setup require two separate SPI buses on the ESP32?
==================
Overview
Project at a Glance
Parameter | Specification / Fact |
|---|---|
Project Title |
|
Developer / Author | felomousa |
Repository URL | |
Primary MCU | Espressif ESP32 (Dual-Core Tensilica LX6, 240 MHz) |
Ethernet Chipset | WIZnet W5500 (MACRAW 모드로 동작하는 2개 모듈) |
Host Interface | SPI Bus (SCLK/MOSI/MISO 공유, 독립 듀얼 CS/SCS 사용) |
Firmware Framework | ESP-IDF / C++ 네이티브 구현 |
Software License | Open Source (MIT License) |
System Architecture
CS1, CS2)을 사용하여 단일 SPI 버스에 연결된 2개의 W5500 모듈을 개별적으로 제어합니다.
'ETHERNET PORT A'에서 들어온 'LAYER 2 RAW PACKETS'가 W5500 #1의 MACRAW 모드를 거쳐 ESP32로, 다시 ESP32에서 W5500 #2의 MACRAW 모드를 거쳐 'ETHERNET PORT B'로 이동하는 전체적인 데이터 흐름.
이 구성도를 통해 위즈네트 W5500이 단순한 TCP 연결 칩이 아니라, 사용자 정의 네트워크 브리지나 보안 TAP과 같은 정교한 L2 하드웨어를 구축할 수 있는 강력한 기능(MACRAW)도 가지고 있음.
W5500을 2개 사용하는 'Dual-W5500' 아키텍처는 단순히 연결성을 보장하는 차원을 넘어, "임베디드 네트워크 디바이스의 독립적 제어권과 데이터 경로(Path)의 완전한 분리"를 가능하게 만드는 차원이 다른 네트워크 아키텍처입니다.
Dual-W5500이 하이브리드보다 가지는 결정적 의의와 "W5500을 2개 써서 더 할 수 있는 일"은 다음과 같습니다.
① 투명 네트워크 탭 (Hardware Network TAP / Active Monitoring)
어떻게 작동하나?: 스위치나 PC와 장비 사이에 징검다리처럼 2개의 W5500을 직렬로 연결합니다. (A포트 ↔ W5500 #1 ↔ MCU ↔ W5500 #2 ↔ B포트)
무엇을 더 하나?: A와 B 사이를 와이어드 속도로 그대로 통과(Forwarding)시키면서, MCU가 중간에서 지나가는 모든 패킷을 감시(Sniffing), 미러링, 기록할 수 있습니다. 기존 라우팅이나 스위칭을 전혀 방해하지 않는 In-line 네트워크 감시 장비가 됩니다.
② OT / 산업용 엣지 침입 방지 시스템 (In-line Hardware Firewall / IDS)
어떻게 작동하나?: 패킷이 W5500 #1로 들어오면 MCU가 MACRAW 수준에서 패킷 헤더나 데이터 필드를 검사합니다.
무엇을 더 하나?: 인가되지 않은 IP, 변조된 Modbus/TCP 패킷, 악의적인 산업용 명령이 감지되면 W5500 #2로 전달하지 않고 하드웨어 단에서 즉시 드롭(Drop/Block)시킵니다. 바이패스 기능과 차단 기능을 완벽히 겸비한 소형 하드웨어 방화벽 역할을 수행합니다.
③ OT망과 IT망의 물리적/논리적 '망분리 디바이스' (Dual-Homed Gateway / Air-Gap Effect)
어떻게 작동하나?: W5500 #1은 내부 산업용 제어망(OT)에, W5500 #2는 상위 기업망(IT / Cloud)에 각각 연결합니다.
무엇을 더 하나?: 두 네트워크 간에 IP 포워딩(Routing)을 완전히 차단하고, MCU 내부 메모리 버퍼를 통해서만 정의된 데이터(예: 온도, 생산량 등)만 넘겨줍니다. 두 W5500 간에 L2/L3 패킷이 직접 흘러가지 않으므로 스마트 공장 등에서 외부 해킹이 OT 네트워크로 침투하는 것을 하드웨어적으로 원천 봉쇄합니다.
④ 이더넷 프로토콜 변환 및 브리지 (Dual-Protocol Bridge)
어떻게 작동하나?: 한쪽 W5500은 표준 TCP/IP 망에, 다른 쪽 W5500은 특수 프레임이나 가상 LAN(VLAN Tagging), 프로피넷(PROFINET) 등 커스텀 L2 프레임 망에 연결합니다.
무엇을 더 하나?: MCU가 중간에서 포맷 변환, VLAN 태깅/데그 및 패킷 변환을 실시간으로 수행하여 서로 다른 네트워크 환경을 완벽하게 이어줍니다.
⑤ 실시간 하드웨어 이중화 패스 (Zero-Downtime Redundancy - Ring/Daisy-Chain)
어떻게 작동하나?: 2개의 W5500을 이용해 데이지 체인(Daisy-Chain) 형태로 장비들을 링(Ring) 구조로 연결합니다.
무엇을 더 하나?: 한쪽 케이블이 끊어져도 반대쪽 W5500 포트를 통해 즉시 복구되는 Ring Topology(RSTP 등)를 구축하여, 0.001초의 끊김도 허용하지 않는 초고신뢰성 산업용 가동 환경(High Availability)을 만듭니다.
+-----------------------------------------------------------------------------------+
| POWER PATH |
| [ 5V / 3.3V Power Source ] ---> [ ESP32 VCC/GND ] |
| ---> [ W5500 #1 VCC/GND ] |
| ---> [ W5500 #2 VCC/GND ] |
+-----------------------------------------------------------------------------------+
+-----------------------------------------------------------------------------------+
| DATA PATH (Layer 2) |
| |
| [ Ethernet Segment A ] [ Ethernet Segment B ] |
| | | |
| v v |
| +--------------+ +--------------+ |
| | W5500 #1 | | W5500 #2 | |
| | (MACRAW S0) | | (MACRAW S0) | |
| +--------------+ +--------------+ |
| | | |
| (SPI CS1) (SPI CS2) |
| | +-----------------------------------------+ | |
| +----> | Shared SPI Bus (MOSI, MISO, SCLK) | <----+ |
| | Controlled by ESP32 Core 0/1 DMA | |
| +-----------------------------------------+ |
+-----------------------------------------------------------------------------------+
Features
Role of W5500
Official Specs vs. Actual Implementation Parameters
Feature Parameter | W5500 Official Datasheet Spec | Project Implementation Value |
|---|---|---|
Hardwired TCP/IP Stack | L3/L4 하드웨어 엔진 (TCP, UDP, ICMP, IPv4, ARP, PPPoE) | 전체 바이패스 (사용 안 함) |
Socket Allocation | 8개 하드웨어 소켓 지원 | W5500당 1개 소켓 사용 (소켓 0을 MACRAW로 설정) |
Socket Protocol Mode |
|
|
SPI Interface Clock | 최대 80 MHz SPI 클럭 지원 | 공개 자료에 없음 (ESP32 SPI 기본값 약 20–40 MHz) |
Interrupt / Polling | INT 핀 기반 하드웨어 인터럽트 지원 | 메인 MCU 루프 기반 폴링(Polling) 방식 |
Driver Software Layer | 공식 WIZnet ioLibrary / BSD Socket API | SPI 드라이버를 통한 직접 레지스터 조작 |
Target Port / Addressing | L4 소켓별 포트 번호 설정 필수 | 해당 없음 (Layer 2 MAC 레벨 단순 스트리밍) |
Related Existing Contents in Maker Site
Comparative Parameter | felomousa/w5500-macraw-bridge | W5500 LoRa Telemetry Bridge | ESP32 Ethernet-WiFi L2 Bridge |
|---|---|---|---|
Maker Article Link | 해당 없음 (외부 GitHub) | ||
Network Architecture | Dual W5500 (유선 간 직접 중계) | Dual W5500 (LoRa 무선 구간 경유) | Single W5500 + ESP32 Wi-Fi |
Operating Layer | Layer 2 (Ethernet MACRAW) | Layer 4 / Application (Modbus TCP) | Layer 2 (이더넷-Wi-Fi 브리지) |
Hardwired Stack Usage | 전체 바이패스 | 사용 (하드웨어 TCP/IP 소켓) | 하이브리드 (W5500 드라이버 + ESP Netif) |
Hardware Topology | 인라인 MITM 하드웨어 패스스루 | 점대점(P2P) 무선 네트워크 연장 | 유선 LAN을 무선 AP 브리지로 전환 |
Market & Application Value
WIZnet Strategic Value
Validation & Limitations
Validated Features
MACRAW 소켓 모드를 사용한 성공적인 Layer 2 순수 패킷 송수신 동작.Technical Limitations
Summary
felomousa/w5500-macraw-bridge 저장소는 ESP32와 2개의 WIZnet W5500 모듈을 사용하여 투명한 Layer 2 이더넷 브리지를 구현하는 초소형 하드웨어 솔루션을 보여줍니다. 두 W5500 모듈을 MACRAW 소켓 모드로 구동함으로써, 시스템은 표준 TCP/IP 네트워크 레이어를 우회하여 단일 SPI 컨트롤러를 통해 원본 프레임을 직접 전달합니다. 이 아키텍처는 WIZnet 하드웨어를 활용하여 저비용 네트워크 탭, 인라인 프로토콜 분석기, 임베디드 패킷 필터링 도구를 제작하고자 하는 개발자들에게 매우 실용적인 참조 자료를 제공합니다.
FAQ
Q1: 일반적인 W5500 TCP/UDP 소켓 모드 대신 MACRAW 모드를 사용하는 이유는 무엇인가요?
Q2: 네트워크 관리 소프트웨어나 공격자가 이 브리지 장치의 존재를 감지할 수 있나요?

