홈으로 돌아가기

러시아에서 Jami: P2P 메신저의 문제점과 기술적 해결책

러시아 네트워크에서 CGNAT와 차단으로 인한 분산형 메신저 Jami 작동 문제의 기술적 분석. IPv6 전환, QUIC 구현, P2P 중계 및 메쉬 라우팅을 통한 복원력 강화 등의 아키텍처 솔루션 제안.

왜 Jami가 러시아에서 작동하지 않는가: 엔지니어링 분석과 수정
Advertisement 728x90

러시아에서 자미(Jami)의 P2P 연결 문제와 기술적 해결책

분산형 메신저 자미(Jami)는 러시아 네트워크에서 CGNAT와 차단으로 인해 큰 장애를 겪고 있습니다. 직접 피어 투 피어 연결이 불안정해지죠. 기술적으로 유망하지만, 현재 ICE 프로토콜 설정과 TURN 서버 의존성은 오늘날 네트워크 제한을 감당하지 못합니다. 이 글에서는 엔지니어링 문제를 분석하고, 안정적인 성능을 위한 아키텍처 개편 단계를 구체적으로 제시합니다.

러시아 네트워크의 P2P 연결 문제

자미의 주요 불안정성은 러시아 ISP의 인터넷 인프라 처리 방식에서 비롯됩니다. 모바일 통신사의 CGNAT(Carrier Grade NAT)는 사용자에게 공인 IP를 빼앗아 수신 연결을 차단합니다. 특히 대칭 NAT(Symmetric NAT)는 STUN이나 UDP 홀 펀칭 같은 표준 기법이 자주 실패합니다.

주요 네트워크 장애 요인:

Google AdInline article slot
  • 모바일 사용자에게 공인 IP 없음.
  • CGNAT 뒤에서 ICE 프로토콜 고전.
  • turn.jami.net 같은 TURN 서버가 러시아에서 차단됨.
  • DTLS/TLS 지원 없이는 DPI 시스템이 TURN 트래픽 쉽게 탐지.

현재 아키텍처의 결함

자미는 분산형 철학과 어긋나게 중앙화된 구성 요소에 의존합니다. 네트워크 참여에 필요한 DHT 부트스트랩 노드가 차단될 수 있고, TURN 서버는 단일 실패 지점입니다. TURN 경유 트래픽은 지연을 유발하고 러시아 인터넷 규제 하에서 차단 위험이 큽니다.

릴레이 방식 비교:

  • 현재 TURN: 중앙 서버, 차단 쉽고 지연 폭증.
  • P2P 릴레이: 공인 IP 사용자 노드가 부하 분산, 분산형.
  • 메시 네트워크: 다중 노드 동적 라우팅, 최고의 탄력성.

자미 현대화 위한 기술적 해결책

이 네트워크 제한을 극복하려면 프로토콜과 아키텍처 전체 업그레이드가 필요합니다. 최우선: TURN 의존성 제거와 직접 연결 강화.

Google AdInline article slot

1단계: P2P 연결 강화

  • IPv6 우선: ICE 후보에서 IPv6 주소를 강제해 NAT 우회. 러시아 모바일 네트워크가 IPv6을 적극 지원해 사용자 70%까지 직접 연결 가능.
  • 강화된 UPnP: 포트 매핑 시도 늘리고 keepalive 간격을 15초로 줄여 NAT 세션 유지.
  • CGNAT 최적화 ICE: 포트 추론으로 대칭 NAT 예측하고 직접 링크 생성.

2단계: 차세대 전송 프로토콜

TCP/UDP 대신 QUIC 도입으로:

  • 내장 keepalive와 연결 마이그레이션으로 NAT 순회 부드럽게.
  • 헤드 오브 라인 차단 없는 멀티플렉싱.
  • 내장 TLS 1.3 암호화로 DPI 저항.
  • Wi-Fi와 모바일 데이터 간 원활 전환.

3단계: 릴레이 피어 활용 P2P 릴레이

공인 IP 노드가 CGNAT 사용자 릴레이 담당 시스템 도입:

  • 새 ICE 후보 유형: peer_relay.
  • DHT에 릴레이 가용성 게시.
  • 릴레이 거쳐도 종단 간 암호화.
  • 자가 조직화 네트워크: 공인 IP 사용자가 많을수록, 시스템 강력.

4단계: DHT 활용 극대화

완전 분산 텍스트·파일 전송 위해 libtorrent 통합:

Google AdInline article slot
  • 데이터 분배에 DHT 활용, 시그널링 한정 아님.
  • 비미디어 트래픽 중앙 서버 불필요.
  • 네트워크 탄력성 대폭 강화.

5단계: 메시 라우팅

장기: 동적 라우팅 오버레이 메시 구축:

  • BATMAN이나 OLSR 같은 프로토콜.
  • 다중 노드 통해 자동 최적 경로.
  • 신규 사용자가 많을수록, 네트워크 강력.

6단계: 코드베이스에서 TURN 완전 제거

이전 단계 완료 후 TURN 완전 삭제:

  • ICE에서 릴레이 후보 제거.
  • UI에서 TURN 설정 삭제.
  • TURN 없는 PJSIP 빌드로 공격 표면 축소.

최적화: 코디네이터 활용 홀 펀칭

릴레이 트래픽 줄이기 위해 공인 IP 노드를 초기 핸드셰이크 코디네이터로만 사용. 홀 펀칭 후 릴레이 이탈하고 순수 P2P 전환. 릴레이 안정성과 직접 효율성 결합.

핵심 요약

  • 러시아 모바일 CGNAT가 자미 P2P 최대 적.
  • TURN 의존으로 취약성과 지연 발생.
  • IPv6와 QUIC으로 대부분 NAT·차단 문제 해결.
  • 피어 P2P 릴레이가 분산형 TURN 대안.
  • TURN 완전 제거가 프로젝트 최종 목표.

— Editorial Team

Advertisement 728x90

다음 읽기