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

Sách trắng lag game › L4 Đường truyền Internet

IP dùng chung của nhà mạng (CGNAT) Carrier-grade NAT

ID nguyên nhân isp-cgnat · Phụ trách chính Phát triển client (Đội phát triển game) · Phối hợp Phát triển server (Đội phát triển game), Hạ tầng mạng (Đội hạ tầng)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Mạng di động và một số nhà mạng cho nhiều thuê bao dùng chung một IP, và xóa ánh xạ (mapping) của kết nối nhàn rỗi sau một thời gian ngắn.

Vì sao Thiết bị của nhà mạng quản lý bảng phiên của rất nhiều thuê bao → Dẫn đến Giới hạn bảng phiên, idle timeout ngắn → Trên màn hình Để yên một lúc thì mất kết nối; những người dùng chung IP bị chặn cùng lúc do phát hiện nhầm

Triệu chứng
Mất kết nối, Không vào được·kẹt loading
Yếu tố
Mất gói
Ai gặp phải
Một khu vực hoặc nhà mạng
Khi nào
Sau khi để yên một lúc
Phụ trách
Phụ trách chính Phát triển client (Đội phát triển game) · Phối hợp Phát triển server (Đội phát triển game), Hạ tầng mạng (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Client: gửi heartbeat từ client với khoảng cách không quá một nửa idle timeout ngắn nhất (mạng di động có khi chỉ khoảng 30 giây), vì ánh xạ CGNAT của nhà mạng chỉ chắc chắn được làm mới bởi gói đi từ trong ra, mất kết nối thì tự động kết nối lại. Server: phản hồi heartbeat, nếu một thời gian không nhận được thì chủ động dọn kết nối trước, dùng session token để nối tiếp đúng người chơi đó dù ánh xạ đổi làm địa chỉ và cổng khác đi, thận trọng với chính sách chặn theo IP vì nhiều người có thể dùng chung một IP (xét kèm tiêu chí tài khoản, thiết bị).
Việc cần làm (Đội hạ tầng)
Điều chỉnh giới hạn số kết nối trên mỗi IP và số kết nối mới mỗi giây của tường lửa, thiết bị chống DDoS cho phù hợp với IP dùng chung của nhà mạng (nâng ngưỡng hoặc miễn trừ cho dải địa chỉ của nhà mạng di động).
Con số tham khảo
Idle timeout UDP của mạng di động có khi chỉ khoảng 30 giây.
Trên đồ thị
Rớt kết nối hàng loạt · Số lần mất kết nối (heartbeat timeout), thời gian nhàn rỗi trước khi bị ngắt (theo nhà mạng)
Chỗ cần xem
Trong log kết nối, xem số tài khoản cùng kết nối từ một IP và nhà mạng (ASN), rồi gom theo nhà mạng thời gian nhàn rỗi của các kết nối bị ngắt sau khi nhàn rỗi. Phía người chơi thì xem địa chỉ Internet (WAN) trên trang quản trị router
Đúng nếu
ở dải địa chỉ của nhà mạng di động, nhiều tài khoản cùng kết nối từ một IP, và thời gian nhàn rỗi trước khi bị ngắt dồn vào mức ngắn khoảng 30–60 giây. Địa chỉ WAN của router nằm trong 100.64.0.0/10 (dải địa chỉ dùng chung cho NAT của nhà mạng) hoặc khác với địa chỉ server nhìn thấy
Loại trừ nếu
dồn vào người dùng router gia đình bất kể nhà mạng → xem “Ánh xạ NAT hết hạn”
Cách kiểm tra
Cần log và chỉ số của server, client game

Nguồn

  1. A Multi-perspective Analysis of Carrier-Grade NAT Deployment (IMC 2016) ACM
    Thời gian giữ ánh xạ UDP của các NAT được đo là 10–200 giây, 74% không quá 1 phút; trung vị của CGN là 65 giây ở mạng di động, 35 giây ở mạng cố định
  2. RFC 6888: Common Requirements for Carrier-Grade NATs (CGNs) IETF
    CGN phải hỗ trợ giới hạn số cổng ngoài trên mỗi thuê bao và giới hạn tốc độ tạo ánh xạ mới
  3. RFC 6269: Issues with IP Address Sharing IETF
    Khi nhiều người dùng chung một địa chỉ, việc chặn theo IP (penalty box) chặn luôn cả các thuê bao khác cùng địa chỉ
  4. RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space IETF
    100.64.0.0/10 là dải địa chỉ dùng chung giữa thiết bị NAT của nhà mạng (CGN) và router của thuê bao

Nguyên nhân nên xem cùng

Cùng tầng: L4 Đường truyền Internet

Nguyên nhân ở tầng khác gây cùng triệu chứng (Mất kết nối)

Xem thẻ gốc có hình minh họa và thí nghiệm