20년 전 iChat 영상통화 다시 살려냈다
원제 Resurrecting iChat audio and video conferencing
112 포인트댓글 40
Key Point
Apple이 폐기한 20년 전 소프트웨어를 현대 인터넷에서 다시 작동시키기 위해 역공학과 프로토콜 구현을 직접 수행한 구체적인 사례로, 레트로 컴퓨팅 애호가들에게 바로 사용 가능한 해결책을 제공한다.
핵심 요약
- 2000년대 초 Apple의 iChat AV는 당시 가장 우수한 영상·음성 통화 소프트웨어였으나, Apple 서버 폐지로 인터넷을 통한 통화가 불가능해졌다.
- 2023년 Leopard/Snow Leopard OS X에서 iChat 통화를 되살리려 시도했을 때, iChat이 Apple의 SNATMAP 서버에서 공용 IP 주소를 받아오는 과정이 실패했다.
- SNATMAP 서버는 UDP 포트 5678을 통해 클라이언트의 공용 IP와 포트를 알려주는 역할을 하는데, Apple의 원본 서버는 더 이상 응답하지 않고 있었다.
- 2026년 LLM을 활용해 네트워크 패킷 캡처로부터 SNATMAP 프로토콜을 역공학하고 스펙 문서를 작성했다.
- SNATMAP 프로토콜은 16바이트 요청(타입, 논스, 클라이언트 로컬 IP·포트)과 16바이트 응답(타입, 논스, 외부 IP·포트)으로 구성된다.
- 시스템 엔지니어인 저자가 처음으로 UDP 기반 SNATMAP 서버를 Python으로 직접 작성했고, KVM/Proxmox 가상 머신 환경에서 NAT 라우터 2개를 거친 테스트 네트워크를 구축했다.
- /etc/hosts에 157.230.2.213을 configuration.apple.com으로 지정하면 저자의 공개 SNATMAP 서버를 통해 Leopard/Snow Leopard에서 iChat 영상·음성 통화가 가능해진다.
- 자체 호스팅을 원할 경우 웹 서버에서 /configurations/macosx/ichat/1/snatmap.txt 파일을 제공하고, 그 안에 SNATMAP 서버의 공용 IP와 포트 5678을 명시해야 한다.
- 최신 Logitech C920 같은 웹캠도 Leopard에서 작동하며, 저자와 Methodius는 실제 인터넷을 통해 iChat AV로 성공적으로 영상 통화했다.
- NAT 라우터가 포트 보존 NAT을 지원하면 추가 포트포워딩 없이도 P2P 연결이 가능하며, pfSense·OPNsense 같은 BSD 기반 라우터에서는 아웃바운드 NAT의 원본 포트 보존 옵션을 활성화해야 한다.