Giải Thích Các Loại NAT: Tại Sao Kết Nối Của Bạn Hoạt Động Khác Khi Dùng Router

Các loại NAT - sơ đồ cho thấy cách bộ định tuyến NAT xử lý dịch địa chỉ mạng cho nhiều thiết bị

Hiểu rõ các loại NAT là bước đầu tiên để lý giải tại sao thiết bị của bạn đôi khi gặp khó khăn khi kết nối Internet. Một cuộc gọi video bị ngắt, một trò chơi không thể vào phòng chờ, hay ứng dụng VoIP hoạt động tốt ở nhà nhưng lại trục trặc ở văn phòng - tất cả đều có thể bắt nguồn từ network address translation (NAT), một khái niệm nền tảng quyết định cách thiết bị của bạn tiếp cận Internet. Nắm được NAT hoạt động như thế nào, tại sao có nhiều loại NAT khác nhau và mỗi loại tạo ra những hạn chế gì trong thực tế sẽ giúp bạn tiết kiệm hàng giờ xử lý sự cố và đưa ra quyết định thông minh hơn cho hệ thống mạng của mình.

Điểm chính cần nhớ:

  • Network address translation (NAT) cho phép nhiều thiết bị dùng chung một địa chỉ IP công cộng, nhưng đồng thời tạo ra các hạn chế kết nối tùy theo loại NAT.
  • Các loại NAT mở, trung bình và nghiêm ngặt (hay Type 1, 2, 3 theo thuật ngữ console) ảnh hưởng trực tiếp đến kết nối ngang hàng (peer-to-peer), chơi game và giao tiếp thời gian thực.
  • Double NAT - tức là chạy hai router nối tiếp nhau - là nguyên nhân phổ biến gây ra các lỗi kết nối khó giải thích trong môi trường gia đình và doanh nghiệp nhỏ.
  • Có những cách khắc phục cụ thể cho từng loại NAT, từ bật UPnP đến cấu hình DMZ hoặc yêu cầu IP tĩnh từ nhà cung cấp dịch vụ Internet (ISP).

NAT là gì?

Mỗi thiết bị kết nối Internet đều cần một địa chỉ IP. Vấn đề là kho địa chỉ IPv4 toàn cầu đã cạn kiệt. RFC 1918 giải quyết một phần vấn đề này bằng cách định nghĩa các dải địa chỉ IP riêng tư (chẳng hạn 192.168.x.x và 10.x.x.x) có thể tái sử dụng trong bất kỳ mạng nội bộ nào. Một NAT router đứng ở ranh giới giữa mạng riêng tư và Internet, dịch các địa chỉ riêng tư thành địa chỉ IP công cộng duy nhất mà ISP cấp cho bạn.

Khi laptop của bạn gửi yêu cầu đến một máy chủ web, NAT router sẽ viết lại địa chỉ nguồn từ IP riêng tư của bạn (ví dụ 192.168.1.50) thành IP công cộng trước khi chuyển tiếp gói tin. Khi phản hồi quay về, router đảo ngược quá trình dịch và chuyển dữ liệu đến đúng thiết bị. Từ góc nhìn của Internet, mọi thiết bị trong mạng của bạn trông như một máy duy nhất.

Cơ chế này rất tiện lợi và thực tế, nhưng tạo ra một hệ quả phụ: các kết nối vào từ bên ngoài không được yêu cầu trước sẽ không có đích đến rõ ràng. Router không biết thiết bị nội bộ nào cần nhận gói tin mà không ai yêu cầu. Chính sự mơ hồ đó là lý do tại sao các loại NAT khác nhau ra đời để xử lý theo những cách khác nhau.

NAT router dịch địa chỉ IP riêng tư thành một IP công cộng duy nhất trong quá trình network address translation

Phân tích các loại NAT

Thuật ngữ có thể khác nhau đôi chút tùy theo ngữ cảnh - console chơi game hay lý thuyết mạng - nhưng cách hoạt động thực tế đều có thể ánh xạ rõ ràng. Dưới đây là cách các loại NAT chính hoạt động trong thực tế.

Full Cone NAT (NAT mở / Type 1)

Khi một thiết bị mở kết nối ra ngoài, router tạo một ánh xạ chấp nhận bất kỳ gói tin vào nào được gửi đến IP công cộng và port đó, bất kể nguồn gửi là ai. Đây là loại NAT cho phép nhiều nhất. Kết nối peer-to-peer, game nhiều người chơi và ứng dụng thời gian thực đều hoạt động trơn tru. Loại này thường gặp khi thiết bị của bạn kết nối trực tiếp với modem mà không qua router, hoặc khi thiết bị được đặt vào DMZ của router.

Address-Restricted Cone NAT (NAT trung bình / Type 2)

Router chỉ cho phép gói tin vào từ địa chỉ IP bên ngoài mà thiết bị nội bộ đã từng liên lạc trước đó. Port bên ngoài không quan trọng. Đây là loại NAT phổ biến nhất trên các router gia đình và đạt được sự cân bằng hợp lý giữa bảo mật và khả năng kết nối. Hầu hết các game online và cuộc gọi video đều hoạt động tốt ở đây, dù một số trường hợp peer-to-peer cần thêm bước đàm phán.

Port-Restricted Cone NAT

Gói tin vào chỉ được chấp nhận nếu đến từ đúng địa chỉ IP và số port mà thiết bị nội bộ đã liên lạc trước đó. Loại này hạn chế hơn address-restricted NAT. Các công cụ giao tiếp thời gian thực có thể gặp khó khăn trừ khi sử dụng STUN hoặc TURN relay server để xuyên qua.

Symmetric NAT (NAT nghiêm ngặt / Type 3)

Mỗi kết nối ra ngoài được cấp một ánh xạ port bên ngoài riêng biệt, và gói tin vào chỉ được chấp nhận từ đúng đích mà thiết bị nội bộ đã kết nối ban đầu. Hai thiết bị cùng nằm sau symmetric NAT không thể thiết lập kết nối peer-to-peer trực tiếp. NAT nghiêm ngặt thường gặp trên tường lửa doanh nghiệp và một số thiết bị cấp ISP. Đây là loại bảo mật nhất nhưng gây gián đoạn nhiều nhất cho các ứng dụng thời gian thực.

Loại NAT Thuật ngữ Console Quy tắc kết nối vào P2P / Chơi game
Full Cone Mở / Type 1 Chấp nhận mọi nguồn Xuất sắc
Address-Restricted Cone Trung bình / Type 2 Chỉ IP đã biết Tốt
Port-Restricted Cone Trung bình / Type 2 IP + port đã biết Khá
Symmetric Nghiêm ngặt / Type 3 Chỉ đúng đích ban đầu Kém

Port Address Translation và vai trò của nó

Port address translation (PAT) thường được dùng thay thế cho NAT, nhưng có một sự khác biệt quan trọng. Trong khi NAT cơ bản ánh xạ một IP riêng tư với một IP công cộng, PAT ánh xạ nhiều IP riêng tư vào một IP công cộng duy nhất bằng cách theo dõi số port riêng biệt cho mỗi phiên kết nối. Khi router của bạn xử lý đồng thời lưu lượng từ laptop, điện thoại và smart TV, chính PAT đang gánh vác phần lớn công việc đó.

PAT là lý do router của bạn có thể phân biệt luồng Netflix trên TV với phiên duyệt web trên laptop dù cả hai đều xuất hiện từ cùng một IP công cộng. Mỗi kết nối ra ngoài được cấp một port nguồn riêng trong bảng dịch. Khi phản hồi đến, router khớp port đích với đúng thiết bị nội bộ.

Đây cũng là lý do tại sao các ứng dụng phụ thuộc vào số port cụ thể có thể bị lỗi khi đứng sau NAT router. Nếu hai thiết bị cùng sử dụng port nguồn 5000, router phải ánh xạ lại một trong số đó, và nếu ứng dụng nhận kỳ vọng một port cố định, kết nối sẽ thất bại. Đây là sự cố phổ biến với SIP-based VoIP và một số giao thức peer-to-peer cũ.

Vấn đề Double NAT

Double NAT xảy ra khi hai router thực hiện dịch địa chỉ nối tiếp nhau. Tình huống điển hình: ISP của bạn cung cấp thiết bị modem-router tích hợp đã thực hiện NAT. Bạn kết nối thêm router của mình vào đó để có Wi-Fi tốt hơn hoặc kiểm soát nhiều hơn. Lúc này mọi thiết bị trong mạng của bạn phải đi qua hai lớp NAT trước khi ra Internet.

Triệu chứng khá tinh tế nhưng rất khó chịu. Các quy tắc port forwarding bạn cài trên router bên trong không có tác dụng vì router bên ngoài không biết cần chuyển tiếp lưu lượng đến đó. UPnP có thể hoạt động không nhất quán. VPN client có thể không thiết lập được tunnel. Console chơi game hầu như luôn báo NAT nghiêm ngặt hoặc trung bình dù bạn đã cấu hình router bên trong đúng cách.

Bạn có thể xác nhận double NAT bằng cách so sánh địa chỉ WAN IP hiển thị trong trang quản trị router với IP công cộng thực của bạn. Nếu chúng khác nhau và WAN IP nằm trong dải địa chỉ riêng tư (10.x.x.x, 172.16-31.x.x hoặc 192.168.x.x), bạn đang ở sau double NAT. Hãy dùng công cụ tra cứu IP của chúng tôi để tìm IP công cộng thực và so sánh với địa chỉ WAN mà router báo cáo.

Cách khắc phục sạch nhất là đặt thiết bị của ISP vào chế độ bridge, tắt chức năng NAT của nó để chỉ router của bạn xử lý việc dịch địa chỉ. Nếu ISP không cho phép chế độ bridge, bạn có thể đặt router bên trong vào DMZ của router bên ngoài, về cơ bản cho nó một đường thẳng ra Internet.

Ví dụ thực tế: Console chơi game sau router

Hãy tưởng tượng bạn kết nối PlayStation 5 với router gia đình. WAN IP của router là 203.0.113.45 (IP công cộng thực từ ISP). Console của bạn được cấp địa chỉ riêng tư 192.168.1.10.

Khi bạn khởi động một game nhiều người chơi, console kết nối đến máy chủ matchmaking của game tại 198.51.100.22 trên port 3478. Router tạo một bản ghi PAT: nội bộ 192.168.1.10:49152 ánh xạ đến bên ngoài 203.0.113.45:49152. Máy chủ matchmaking phản hồi và phiên hoạt động bình thường. Đến đây mọi thứ vẫn ổn.

Bây giờ game cố thiết lập kết nối voice chat peer-to-peer trực tiếp với người chơi khác. Console của người đó gửi gói tin thẳng đến 203.0.113.45:49153. Nếu router của bạn chạy address-restricted cone NAT, nó kiểm tra xem 192.168.1.10 có từng liên lạc với IP của người chơi kia không. Nếu máy chủ matchmaking đã giới thiệu họ với nhau, câu trả lời là có, và kết nối thành công. Nếu router chạy symmetric NAT, nó đã cấp port bên ngoài khác nhau cho mỗi luồng ra, nên gói tin vào đến một port mà router không có bản ghi nào, và nó bị hủy. Voice chat thất bại trong im lặng.

Cách khắc phục trong trường hợp này là bật UPnP (để console có thể yêu cầu ánh xạ port nhất quán), đặt IP riêng tư tĩnh cho console và thêm quy tắc port forwarding, hoặc đặt console vào DMZ. Mỗi cách đều có đánh đổi được trình bày trong phần tiếp theo.

Các bước cải thiện loại NAT của bạn

Cách khắc phục phù hợp phụ thuộc vào thiết lập cụ thể của bạn và mức độ bảo mật bạn sẵn sàng đánh đổi để lấy khả năng kết nối. Dưới đây là các lựa chọn thực tế nhất, sắp xếp từ ít xâm lấn đến nhiều xâm lấn nhất.

1. Bật UPnP trên router

Universal Plug and Play cho phép ứng dụng tự động yêu cầu ánh xạ port từ router. Hầu hết router tiêu dùng đều hỗ trợ tính năng này. Đăng nhập vào trang quản trị router (thường tại 192.168.1.1 hoặc 192.168.0.1), tìm cài đặt UPnP trong mục Nâng cao hoặc cài đặt WAN, rồi bật lên. Khởi động lại thiết bị cần cải thiện NAT và kiểm tra lại. UPnP tiện lợi nhưng có rủi ro bảo mật trên mạng có thiết bị không tin cậy, vì vậy chỉ dùng trên mạng gia đình đáng tin cậy.

2. Cấu hình port forwarding tĩnh

Gán IP riêng tư tĩnh cho thiết bị bạn muốn cải thiện (thông qua DHCP reservation trong router), sau đó tạo quy tắc port forwarding ánh xạ port bên ngoài cần thiết đến IP nội bộ của thiết bị đó. Cách này bảo mật hơn UPnP vì bạn kiểm soát chính xác port nào được mở. Kiểm tra tài liệu của ứng dụng cụ thể để biết port nào cần thiết.

3. Giải quyết double NAT

Như đã mô tả ở trên, đặt thiết bị của ISP vào chế độ bridge hoặc đặt router của bạn vào DMZ của thiết bị ISP. Nếu bạn đang đánh giá các công cụ SaaS phụ thuộc vào mạng, double NAT là một trong những điều đầu tiên cần loại trừ khi sản phẩm hoạt động không nhất quán ở các văn phòng khác nhau. Bạn cũng có thể kiểm tra xem địa chỉ IP của mình có bị đưa vào danh sách chặn nào do định tuyến sai cấu hình hay không bằng cách dùng công cụ kiểm tra IP blacklist của chúng tôi.

4. Yêu cầu IP công cộng tĩnh

Nếu ISP cấp cho bạn IP động thay đổi theo định kỳ, port forwarding nhất quán có thể bị gián đoạn. IP công cộng tĩnh có thêm một khoản phí nhỏ hàng tháng với hầu hết ISP nhưng giúp port forwarding ổn định và đơn giản hóa cấu hình truy cập từ xa. Đối với doanh nghiệp chạy các công cụ SaaS yêu cầu inbound webhook hoặc API callback, chi phí này thường xứng đáng.

5. Cân nhắc chuyển sang IPv6

IPv6 loại bỏ hoàn toàn nhu cầu dùng NAT vì mỗi thiết bị được cấp một địa chỉ duy nhất toàn cầu. IPv6 (RFC 8200) ngày càng được nhiều ISP và hệ điều hành hỗ trợ. Nếu ISP của bạn cung cấp IPv6, bật nó trên router có thể giải quyết nhiều vấn đề liên quan đến NAT cho các ứng dụng hỗ trợ dual-stack networking. Kiểm tra phiên bản IP và kết nối hiện tại của bạn bằng công cụ kiểm tra địa chỉ IP của chúng tôi.

6. Dùng VPN có hỗ trợ NAT traversal

Một số giao thức VPN, bao gồm WireGuard, xử lý NAT traversal tốt và có thể cung cấp cho thiết bị sau NAT nghiêm ngặt một đường kết nối cởi mở hơn. Điều này đặc biệt hữu ích cho nhân viên làm việc từ xa kết nối về mạng doanh nghiệp từ môi trường gia đình có NAT hạn chế. Lưu ý rằng thêm VPN sẽ tăng độ trễ, điều này quan trọng với các ứng dụng thời gian thực. Tài liệu WireGuard trình bày chi tiết về cách xử lý NAT traversal.

Mẹo chẩn đoán nhanh: Nếu bạn nghi ngờ địa chỉ IP của mình đang gây ra sự cố kết nối ngoài phạm vi NAT, hãy kiểm tra xem nó có xuất hiện trong bất kỳ danh sách chặn dựa trên DNS nào không. Router cấu hình sai và địa chỉ ISP dùng chung đôi khi bị gắn cờ. Xem hướng dẫn của chúng tôi về cách xóa IP khỏi danh sách đen để có hướng dẫn từng bước chi tiết.

Kết luận

Các loại NAT không chỉ là khái niệm mạng trừu tượng. Chúng có tác động trực tiếp và có thể đo lường được đến việc ứng dụng của bạn có kết nối ổn định hay không, hiệu suất dịch vụ peer-to-peer ra sao, và liệu các quy tắc port forwarding của bạn có thực sự hoạt động hay không. Hiểu sự khác biệt giữa full cone, address-restricted và symmetric NAT cung cấp cho bạn một khung chẩn đoán cụ thể thay vì phải đoán mò. Riêng tình huống double NAT đã chiếm một số lượng đáng ngạc nhiên các ticket hỗ trợ trong các sản phẩm SaaS phụ thuộc vào kết nối vào. Hãy bắt đầu với các bước chẩn đoán ở trên, xác định loại NAT và cấu trúc mạng bạn đang làm việc, rồi áp dụng cách khắc phục đúng mục tiêu thay vì thử ngẫu nhiên các cài đặt router.

Công cụ tra cứu địa chỉ IP hiển thị IP công cộng và thông tin kết nối

Kiểm tra ngay IP công cộng và thông tin kết nối của bạn

Xem địa chỉ IP công cộng thực của bạn, phát hiện double NAT và hiểu chính xác mạng của bạn hiển thị như thế nào với Internet - tất cả trong một công cụ miễn phí.

Dùng thử công cụ miễn phí →

NAT cơ bản ánh xạ một IP riêng tư với một IP công cộng. Port address translation (PAT) ánh xạ nhiều IP riêng tư vào một IP công cộng duy nhất bằng cách gán số port riêng biệt cho mỗi phiên kết nối. Hầu hết router gia đình dùng PAT, đó là lý do nhiều thiết bị có thể dùng chung một IP công cộng cùng lúc mà không xung đột.

So sánh WAN IP hiển thị trong trang quản trị router với IP công cộng thực của bạn (kiểm tra bằng công cụ tra cứu IP). Nếu WAN IP của router nằm trong dải địa chỉ riêng tư (10.x.x.x, 172.16-31.x.x hoặc 192.168.x.x) thay vì khớp với IP công cộng của bạn, bạn đang ở sau double NAT.

UPnP có thể chuyển bạn từ NAT nghiêm ngặt sang trung bình hoặc mở bằng cách cho phép ứng dụng tự động yêu cầu ánh xạ port. Tuy nhiên, nó chỉ hoạt động khi chỉ có một lớp NAT duy nhất. Nếu bạn đang bị double NAT, UPnP trên router bên trong sẽ không có tác dụng vì router bên ngoài vẫn chặn lưu lượng vào không được yêu cầu.

Symmetric NAT cấp một port bên ngoài riêng biệt cho mỗi kết nối ra ngoài khác nhau. Khi một peer từ xa cố kết nối lại bằng port mà nó quan sát được, router không có bản ghi khớp và hủy gói tin. Hai thiết bị cùng nằm sau symmetric NAT không thể dự đoán ánh xạ port của nhau, khiến kết nối peer-to-peer trực tiếp không thể thực hiện được nếu không có relay server.

Với lưu lượng IPv6, câu trả lời là có. IPv6 cấp địa chỉ duy nhất toàn cầu cho mỗi thiết bị, loại bỏ nhu cầu dịch địa chỉ. Tuy nhiên, hầu hết mạng vẫn mang lưu lượng IPv4 song song với IPv6, nên các vấn đề NAT vẫn tồn tại với kết nối IPv4 cho đến khi Internet chuyển đổi hoàn toàn, điều mà với hầu hết môi trường vẫn còn nhiều năm nữa.