피드로 돌아가기
I Built a Serverless VPN on Lambda MicroVMs — 12 Builds, 5 Dead Ends, 1 Working Architecture
Dev.toDev.to
Infrastructure

TUN 드라이버 부재를 veth와 SOCKS5로 극복한 Serverless VPN 구현

I Built a Serverless VPN on Lambda MicroVMs — 12 Builds, 5 Dead Ends, 1 Working Architecture

Vivek V.2026년 6월 27일7advanced

Context

AWS Lambda MicroVM의 Firecracker 커널 내 CONFIG_TUN 부재로 인한 TUN/TAP 장치 생성 불가 상황 분석. 기존 WireGuard 및 Boringtun 같은 Userspace VPN 솔루션이 커널 모듈 및 TUN 드라이버 의존성으로 인해 작동하지 않는 제약 발생.

Technical Solution

  • TUN 드라이버 없이 네트워크 레이어 접근을 위해 커널이 지원하는 veth pair와 Network Namespace 활용
  • WebSocket Tunnel(wstunnel)을 통한 TCP 트래픽의 WSS 래핑으로 MicroVM Ingress 제약 해결
  • microsocks 기반 SOCKS5 프록시 서버를 구축하여 TCP 트래픽의 외부 인터넷 라우팅 처리
  • iptables MASQUERADE 설정을 통한 MicroVM eth0 인터페이스 기반의 NAT 처리 및 트래픽 송출
  • /ready 훅 대신 /run 훅에 네트워크 설정을 배치하여 런타임 시점의 가용 자원 확보 및 설정 적용

1. Firecracker 기반 환경에서 fork() 제한 시 데몬 프로세스에 --foreground 플래그 적용 여부 확인

2. 커널 모듈 로드 불가능한 환경에서 TUN/TAP 대체제로 veth pair 및 SOCKS5 프록시 검토

3. MicroVM 이미지 업데이트 시 additionalOsCapabilities 및 훅 설정 초기화 가능성을 고려한 이미지 관리 전략 수립

4. 네트워크 설정 작업 시 빌드 타임(/ready)과 런타임(/run) 훅의 실행 시점 차이 구분

원문 읽기