한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L4 인터넷 회선

통신사 공유 IP (CGNAT) Carrier-grade NAT

원인 ID isp-cgnat · 주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발, 인프라팀·네트워크 인프라

그림과 실험이 있는 원본 카드로 열기 →

모바일망과 일부 통신사는 여러 가입자가 IP 하나를 나눠 쓰며 유휴 연결의 매핑을 짧은 시간 안에 지웁니다.

왜 통신사 장비가 수많은 가입자의 세션 테이블을 관리 → 그러면 세션 테이블 한도, 짧은 유휴 타임아웃 → 화면에서는 가만히 있다 접속 끊김, 같은 IP를 쓰는 사람들이 한꺼번에 차단되는 오탐

증상
접속 끊김, 접속 불가·무한 로딩
요인
손실
누가 겪나
특정 지역·통신사
언제
가만히 있다가
담당
주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발, 인프라팀·네트워크 인프라
게임개발팀 할 일
클라이언트: 가장 짧은 유휴 타임아웃(모바일망은 30초 안팎인 경우도 있음)의 절반 이하 간격으로 하트비트 보내기(통신사 CGNAT 매핑은 안에서 나가는 패킷으로만 확실히 갱신되므로 클라이언트가 보냄), 끊기면 자동 재접속. 서버: 하트비트에 응답하고 일정 시간 못 받으면 연결을 먼저 정리, 매핑이 바뀌어 주소·포트가 달라져도 세션 토큰으로 같은 플레이어로 이어 받기, IP 하나를 여러 사람이 나눠 쓸 수 있으니 IP 기준 차단 정책은 신중히(계정·기기 기준과 함께 판단).
인프라팀 할 일
방화벽·DDoS 방어 장비의 IP당 연결 수·초당 새 연결 수 제한을 통신사 공유 IP에 맞게 조정(모바일 통신사 대역은 기준을 높이거나 예외로).
수치 감각
모바일망 UDP 유휴 타임아웃은 30초 안팎인 경우도 있습니다.
그래프에서는
연결이 한꺼번에 끊김 · 끊김 수(하트비트 타임아웃), 끊기기 전 유휴 시간(통신사별)
확인할 곳
접속 로그에서 한 IP에 동시에 붙은 계정 수와 통신사(ASN)를 보고 유휴 뒤 끊긴 연결의 유휴 시간을 통신사별로 모음. 유저 쪽은 공유기 화면의 인터넷(WAN) 주소를 확인
이러면 맞음
모바일 통신사 대역에서 한 IP에 여러 계정이 붙고 끊기기 전 유휴 시간이 30~60초 안팎으로 짧게 몰림. 공유기의 WAN 주소가 100.64.0.0/10(통신사 NAT용 공유 주소)이거나 서버가 보는 주소와 다름
이러면 아님
통신사와 상관없이 집 공유기 사용자에게 몰리면 “NAT 매핑 만료”
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. A Multi-perspective Analysis of Carrier-Grade NAT Deployment (IMC 2016) ACM
    측정된 NAT의 UDP 매핑 유지 시간 10~200초, 74%가 1분 이하, CGN 중앙값은 모바일망 65초·유선망 35초
  2. RFC 6888: Common Requirements for Carrier-Grade NATs (CGNs) IETF
    CGN은 가입자당 외부 포트 수 제한과 새 매핑 생성 속도 제한을 지원해야 함
  3. RFC 6269: Issues with IP Address Sharing IETF
    주소를 여럿이 나눠 쓰면 IP 기준 차단(penalty box)이 같은 주소의 다른 가입자까지 막음
  4. RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space IETF
    100.64.0.0/10은 통신사 NAT(CGN) 장비와 가입자 공유기 사이에 쓰는 공유 주소 대역

함께 보면 좋은 원인

같은 층: L4 인터넷 회선

같은 증상(접속 끊김)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기