30/03/2026
Chia sẻ
8737 lượt xem

Văn phòng bạn có nhiều máy tính, điện thoại, camera, máy in. Tất cả đều dùng Internet qua cùng một đường truyền. Nhưng nếu kiểm tra IP mà các website bên ngoài nhìn thấy, chỉ có một địa chỉ duy nhất. Cơ chế đó là NAT, viết tắt của Network Address Translation.

NAT không phải chỉ là tính năng của router gia đình. NAT là kiến trúc mạng nền tảng có mặt trong mọi văn phòng, trung tâm dữ liệu và hệ thống cloud production. Bài này giải thích NAT là gì, NAT hoạt động ra sao, các loại NAT thực tế gặp nhiều nhất, và khi nào nên (hoặc không nên) dùng NAT.

NAT là gì?

NAT là kỹ thuật dịch địa chỉ mạng, cho phép thiết bị dùng IP private trong mạng nội bộ giao tiếp với Internet thông qua một hoặc một nhóm IP public. Thay vì mỗi thiết bị cần một địa chỉ IP public riêng, NAT giúp nhiều thiết bị chia sẻ cùng một IP public.

IP private và IP public: nền tảng để hiểu NAT

Sơ đồ NAT cho thấy 3 thiết bị LAN với IP private 192.168.1.10 đến .12 được router dịch thành IP public 203.x.x.x trước khi ra Internet

  • IP private là địa chỉ dùng trong mạng nội bộ. Các dải địa chỉ private được quy định trong RFC 1918 gồm: 10.0.0.0/8, 172.16.0.0/12 và 192.168.0.0/16. Thiết bị bên ngoài Internet không thể kết nối trực tiếp tới các địa chỉ này.
  • IP public là địa chỉ duy nhất trên Internet, do nhà cung cấp dịch vụ Internet (ISP) cấp. Thiết bị bên ngoài có thể tìm và kết nối tới IP public.

Vấn đề cốt lõi nằm ở giới hạn địa chỉ. Không gian địa chỉ IPv4 chỉ có 2³² = 4.294.967.296 địa chỉ (khoảng 4,3 tỷ), nhưng số thiết bị kết nối Internet đã vượt con số đó từ lâu. IANA, cơ quan quản lý địa chỉ IP toàn cầu, đã phân phối hết pool trung tâm vào tháng 2/2011; các tổ chức quản lý khu vực (RIR) lần lượt cạn kiệt từ 2011 (châu Á) đến 2015 (Bắc Mỹ).

NAT ra đời để kéo dài tuổi thọ của địa chỉ IPv4, cho phép hàng triệu thiết bị dùng IP private mà vẫn truy cập được Internet thông qua một pool IP public ít hơn nhiều.

Vấn đề NAT giải quyết

Cụ thể, NAT xử lý bốn vấn đề chính:

  • Tiết kiệm địa chỉ IPv4 public: nhiều thiết bị private chia sẻ một IP public thay vì mỗi thiết bị cần một địa chỉ riêng.
  • Kết nối Internet cho mạng nội bộ: thiết bị dùng IP private vẫn có thể truy cập Internet mà không cần IP public riêng.
  • Ẩn cấu trúc mạng nội bộ: bên ngoài chỉ nhìn thấy IP public, không thấy địa chỉ và sơ đồ mạng bên trong.
  • Linh hoạt quản trị: dễ thêm hoặc thay đổi thiết bị trong mạng nội bộ mà không ảnh hưởng đến địa chỉ ra ngoài Internet.

NAT không tạo ra Internet, mà là lớp dịch thuật đứng giữa, cho phép mạng private và Internet giao tiếp với nhau.

Bốn thuật ngữ địa chỉ thường gặp trong tài liệu NAT

Thuật ngữ

Ý nghĩa

Ví dụ

Inside Local

IP private của thiết bị trong mạng nội bộ

192.168.1.10

Inside Global

IP public mà thiết bị đó được dịch sang khi ra Internet

203.x.x.x

Outside Local

IP của thiết bị bên ngoài nhìn từ góc mạng nội bộ

8.8.8.8

Outside Global

IP thực của thiết bị bên ngoài trên Internet

8.8.8.8

Trong hầu hết các trường hợp thực tế, Outside Local và Outside Global giống nhau. Hai khái niệm quan trọng nhất cần nhớ là Inside Local (IP private nguồn) và Inside Global (IP public sau khi NAT dịch).

NAT hoạt động như thế nào?

Ví dụ đơn giản: mạng Wi-Fi gia đình

Mạng gồm:

  • Laptop: 192.168.1.10
  • Điện thoại: 192.168.1.11
  • Router với IP public: 203.x.x.x (do ISP cấp)

Khi laptop truy cập một website:

  1. Laptop gửi request từ IP private 192.168.1.10, port nguồn 52341, tới server 8.8.8.8, port 443.
  2. Router nhận request và NAT thay địa chỉ IP nguồn từ 192.168.1.10 thành IP public 203.x.x.x, đồng thời ghi lại ánh xạ này vào bảng NAT.
  3. Server website chỉ nhìn thấy request đến từ 203.x.x.x. Server không biết gì về laptop hay mạng nội bộ bên trong.
  4. Khi server phản hồi, gói tin đến 203.x.x.x. Router tra bảng NAT và chuyển về đúng laptop 192.168.1.10.

Cùng lúc đó, điện thoại 192.168.1.11 cũng đang xem video. Router dùng port khác nhau để phân biệt kết nối của hai thiết bị, dù cả hai đều đi qua cùng một IP public.

Bảng NAT: bộ nhớ của router

Mockup terminal router hiển thị lệnh show ip nat translations với bảng ánh xạ từ 192.168.1.10:52341 và 192.168.1.11:52342 sang IP public 203.x.x.x với port tương ứng

Bảng NAT là nơi router lưu lại thông tin ánh xạ giữa IP/port nội bộ và IP/port public. Không có bảng này, router không biết phản hồi từ Internet phải trả về thiết bị nào.

Thiết bị nội bộ

Port nội bộ

IP public sau NAT

Port sau NAT

192.168.1.10

52341

203.x.x.x

61001

192.168.1.11

52342

203.x.x.x

61002

NAT dịch những thông tin nào?

Tùy tình huống, NAT có thể dịch các thông tin sau:

  • Địa chỉ IP nguồn (thường gặp nhất khi thiết bị nội bộ truy cập Internet)
  • Địa chỉ IP đích (dùng khi cần chuyển traffic từ ngoài vào server nội bộ)
  • Port nguồn hoặc port đích (kết hợp để phân biệt nhiều kết nối dùng chung một IP public)

Trong mạng gia đình và văn phòng nhỏ, NAT thường đi cùng PAT (Port Address Translation). PAT là kỹ thuật dùng port để phân biệt kết nối, cho phép hàng chục thiết bị chia sẻ một IP public duy nhất mà không bị xung đột.

Các loại NAT phổ biến

So sánh ba loại NAT phổ biến

Static NAT: một đổi một, cố định

Static NAT ánh xạ cố định một IP private với một IP public. Ví dụ: server nội bộ 192.168.1.20 luôn được dịch thành IP public 203.x.x.10.

Static NAT phù hợp khi server nội bộ cần được truy cập ổn định từ bên ngoài, ví dụ web server, mail server, hoặc camera IP cần xem từ xa. Bên ngoài biết địa chỉ cố định để kết nối vào.

Hạn chế là tốn IP public theo tỷ lệ 1:1. Static NAT không phù hợp khi có nhiều thiết bị cần ra Internet nhưng không cần nhận traffic từ ngoài vào.

Dynamic NAT: lấy IP public từ pool khi cần

Dynamic NAT không ánh xạ cố định. Khi một thiết bị nội bộ cần truy cập Internet, nó được cấp tạm thời một IP public từ pool có sẵn. Khi kết nối kết thúc, IP đó quay lại pool để thiết bị khác dùng.

Dynamic NAT phù hợp với môi trường có nhiều thiết bị nhưng không phải tất cả đều cần Internet cùng lúc. Tuy nhiên, nếu pool cạn IP trong giờ cao điểm, các thiết bị còn lại phải chờ.

Trên thực tế, Dynamic NAT vẫn cần số lượng IP public tương đối lớn. Trong hầu hết môi trường hiện đại, PAT hiệu quả hơn nhiều.

PAT (NAT Overload): nhiều thiết bị, một IP public

PAT, còn gọi là NAT Overload, là loại phổ biến nhất trong thực tế. PAT cho phép hàng chục hoặc hàng trăm thiết bị cùng dùng một IP public bằng cách phân biệt kết nối qua port nguồn.

Mỗi thiết bị trong mạng khi ra Internet được router gán một port riêng trên IP public. Router theo dõi ánh xạ này trong bảng NAT và dùng nó để định tuyến phản hồi về đúng thiết bị.

Router gia đình, văn phòng nhỏ, và phần lớn gateway doanh nghiệp đều chạy PAT. Trong hầu hết trường hợp, “NAT” không có thêm thông tin nghĩa là PAT.

SNAT và DNAT: theo chiều traffic

SNAT và DNAT phân loại NAT theo hướng dịch địa chỉ:

  • SNAT (Source NAT) thay đổi địa chỉ nguồn của gói tin. Đây là cơ chế khi thiết bị nội bộ gửi traffic ra Internet, và router thay IP private nguồn thành IP public.
  • DNAT (Destination NAT) thay đổi địa chỉ đích của gói tin. Dùng khi cần chuyển traffic từ bên ngoài vào một server cụ thể trong mạng nội bộ, ví dụ port forwarding trỏ port 80 trên IP public về web server 192.168.1.20:80.

Trong tài liệu Linux/iptables và một số hệ thống tường lửa, SNAT và DNAT là cách chia NAT phổ biến hơn Static/Dynamic/PAT.

NAT được dùng ở đâu trong thực tế?

Router gia đình và văn phòng nhỏ

Mọi thiết bị trong mạng LAN (laptop, điện thoại, TV, camera) đều dùng IP private. Router đứng ở ranh giới, chạy PAT để giúp tất cả thiết bị đó ra Internet qua một IP public do ISP cấp.

NAT hoạt động hoàn toàn ngầm. Mỗi lần truy cập web, xem video, gửi email hay dùng app, NAT đã dịch địa chỉ trước khi gói tin rời router.

Mạng doanh nghiệp

Doanh nghiệp có hàng trăm thiết bị kết nối Internet: máy tính, máy chủ, camera giám sát, máy in, thiết bị IoT, điện thoại VoIP. NAT giúp toàn bộ hệ thống đó dùng chung một dải IP public nhỏ mà không cần cấp phát riêng cho từng thiết bị.

Một số hệ thống doanh nghiệp còn dùng NAT kết hợp với firewall, VPN và access control list để kiểm soát luồng traffic ra ngoài. NAT tập trung điểm ra Internet, tạo điều kiện để ghi log và kiểm soát toàn bộ outbound traffic ở một chỗ.

Cloud và private subnet

Mockup AWS VPC Console hiển thị NAT Gateway "nat-gw-prod" trạng thái Available trong subnet-public-1a, kèm sơ đồ kiến trúc Private Subnet đến NAT Gateway đến Internet Gateway

Trong kiến trúc cloud, server backend thường đặt trong private subnet để giảm bề mặt tấn công. Server trong private subnet không có IP public, nên traffic từ Internet không thể kết nối trực tiếp vào. Đây là thiết kế đúng, nhưng chính các server đó thường cần kết nối ra ngoài: gọi API thanh toán, tải package cập nhật, gửi webhook, kết nối dịch vụ bên thứ ba. Nếu không có cơ chế NAT, chúng không làm được điều này.

NAT Gateway giải quyết bài toán đó. Trên AWS, NAT Gateway đặt trong public subnet và có Elastic IP (IP public cố định). Route table của private subnet cấu hình để mọi traffic ra Internet đi qua NAT Gateway này. Kết quả là server backend có thể gọi ra ngoài, nhưng Internet không thể kết nối ngược vào.

Một EC2 trong private subnet cần gọi API của cổng thanh toán hoặc chạy apt-get update. Thay vì gắn public IP trực tiếp cho EC2, hệ thống route outbound traffic qua NAT Gateway ở public subnet. EC2 có Internet outbound nhưng không có inbound từ Internet.

Theo tài liệu chính thức của AWS VPC, để đảm bảo high availability, nên tạo NAT Gateway ở mỗi Availability Zone chứa tài nguyên cần Internet outbound, tránh để một NAT Gateway trở thành single point of failure.

NAT khác gì với firewall, proxy, DHCP và port forwarding?

NAT và firewall

NAT dịch địa chỉ IP và port. Firewall kiểm soát traffic được phép đi qua hay bị chặn, dựa trên rule về IP, port, giao thức hoặc trạng thái kết nối.

Hai kỹ thuật thường triển khai song song trên cùng một thiết bị, nhưng chúng làm việc khác nhau. NAT chỉ dịch địa chỉ, không chặn traffic nguy hiểm. Muốn chặn, phải có firewall với policy rõ ràng.

NAT và proxy

NAT hoạt động ở tầng mạng và transport, trong suốt với người dùng. Ứng dụng không cần cấu hình gì để đi qua NAT.

Proxy hoạt động ở tầng ứng dụng và đóng vai trò trung gian rõ ràng. Proxy có thể đọc, lọc, cache hoặc ghi log request ở mức HTTP. Ứng dụng thường cần cấu hình để biết dùng proxy.

NAT thay địa chỉ IP, proxy thay mặt ứng dụng.

NAT và DHCP

DHCP là giao thức cấp IP tự động cho thiết bị khi gia nhập mạng. NAT dùng IP đó để dịch khi thiết bị truy cập Internet.

Ví dụ thực tế: điện thoại kết nối Wi-Fi, router cấp IP 192.168.1.11 thông qua DHCP. Sau đó khi điện thoại truy cập YouTube, NAT trên router dịch IP 192.168.1.11 thành IP public. Hai kỹ thuật bổ sung nhau, không thay thế nhau.

NAT và port forwarding

Port forwarding là cách cấu hình để traffic từ bên ngoài đi vào đúng thiết bị hoặc dịch vụ trong mạng nội bộ. Ví dụ: trỏ port 8080 trên IP public về web server nội bộ 192.168.1.20:80.

Port forwarding là một trường hợp của DNAT: router dịch địa chỉ đích của traffic đến port cụ thể trên IP public thành IP:port của server nội bộ.

Ưu điểm và hạn chế của NAT

Infographic so sánh ưu điểm NAT và hạn chế

Ưu điểm của NAT

  • Tiết kiệm IPv4 public: hàng chục thiết bị dùng chung một IP public. Không có NAT, mỗi thiết bị cần một địa chỉ riêng và tổng số thiết bị kết nối Internet ngày nay đã vượt quá tổng số địa chỉ IPv4 tồn tại.
  • Giảm bề mặt tấn công: thiết bị trong mạng nội bộ không có IP public nên không thể bị kết nối trực tiếp từ Internet. Đây là lý do private subnet trong cloud là kiến trúc chuẩn cho server backend.
  • Dễ mở rộng mạng nội bộ: thêm thiết bị mới không cần cấp thêm IP public, không cần thay đổi cấu hình phía Internet.
  • Kiểm soát outbound traffic: vì mọi traffic ra ngoài đều qua NAT, quản trị viên có một điểm tập trung để ghi log và kiểm soát.

Hạn chế cần biết

  • Không thay thế firewall: NAT ẩn IP nội bộ, nhưng không chặn traffic độc hại đã vào được mạng, không lọc payload, không phát hiện tấn công. Cần firewall và security policy riêng.
  • Phức tạp hóa debug mạng: khi IP bị thay đổi qua NAT, việc trace một kết nối cụ thể từ log phức tạp hơn. Cần biết ánh xạ NAT mới gắn được IP public trong log với thiết bị nội bộ tương ứng.
  • Khó với ứng dụng cần kết nối hai chiều trực tiếp: VoIP, game online có tính năng P2P, và một số giao thức VPN gặp vấn đề với NAT vì chúng mong đợi IP public cố định hoặc kết nối khởi tạo từ cả hai phía. Cần thêm kỹ thuật như NAT traversal, STUN/TURN hoặc cấu hình port forwarding cụ thể.
  • Hiệu năng: mỗi gói tin qua NAT đều cần xử lý thêm. Trên thiết bị yếu hoặc khi lưu lượng rất lớn, NAT có thể trở thành điểm nghẽn.
  • Audit theo thiết bị khó hơn: nếu nhiều thiết bị chia sẻ một IP public qua PAT, log phía Internet chỉ thấy một địa chỉ. Cần kết hợp log bảng NAT mới biết được thiết bị cụ thể nào tạo ra traffic đó.

NAT có hỗ trợ bảo mật ở mức “ẩn IP nội bộ”, nhưng đó không phải bảo mật thật sự. Muốn bảo vệ hệ thống, cần firewall với rule rõ ràng, security group, access policy và giám sát liên tục.

Khi nào cần dùng NAT?

Các tình huống nên dùng NAT

  • Mạng nội bộ có nhiều thiết bị cần truy cập Internet nhưng chỉ có một hoặc vài IP public.
  • Server backend trong private subnet cần gọi API bên ngoài, tải package, hoặc kết nối dịch vụ bên thứ ba mà không muốn mở inbound từ Internet.
  • Cần public một dịch vụ nội bộ ra ngoài qua port forwarding (DNAT).
  • Cần chuẩn hóa IP nguồn khi gọi ra dịch vụ bên thứ ba cần allowlist IP cụ thể.

Các tình huống cần cân nhắc kỹ

  • Ứng dụng cần kết nối hai chiều trực tiếp: VoIP, game online nhiều người, P2P gặp vấn đề với NAT. Cần kiểm tra giao thức cụ thể trước.
  • Hệ thống yêu cầu hiệu năng cao: NAT thêm latency và CPU overhead. Với throughput rất lớn, NAT device cần được chọn kỹ.
  • Môi trường cần audit chi tiết theo từng thiết bị: nếu yêu cầu bảo mật hoặc pháp lý cần trace từng kết nối về đúng thiết bị nguồn, cần thêm cơ chế log bảng NAT có timestamp.
  • Cloud production với nhiều AZ: nếu dùng NAT Gateway trên AWS, đặt NAT Gateway ở mỗi AZ thay vì dùng chung một cái để tránh single point of failure và cross-AZ traffic charge.

Bảng chi tiết: 

Tình huống

Có cần NAT không?

Ghi chú

Thiết bị trong LAN truy cập Internet

Router thường xử lý sẵn

Server private subnet gọi API bên ngoài

Thường dùng NAT Gateway trong cloud

Website public cần nhận traffic từ Internet

Không chỉ NAT

Cần public IP, load balancer và firewall rule

Nhiều thiết bị chia sẻ một IP public

Thường dùng PAT/NAT Overload

Muốn chặn tấn công mạng

Không đủ

Cần firewall, security group và chính sách bảo mật

Kết luận: NAT là kiến trúc mạng nền tảng, không chỉ là tính năng router

NAT là kỹ thuật dịch địa chỉ mạng giúp thiết bị dùng IP private giao tiếp với Internet qua IP public. Trong mạng gia đình, NAT hoạt động ngầm và không cần can thiệp.

Khi thiết kế hệ thống doanh nghiệp hoặc cloud, việc hiểu rõ loại NAT nào đang dùng và NAT Gateway đặt ở AZ nào có thể là sự khác biệt giữa một hệ thống ổn định và một hệ thống có điểm nghẽn ẩn.

Tóm lại, có ba điều quan trọng bạn cần nắm:

  • PAT/NAT Overload là loại NAT gặp nhiều nhất trong thực tế, từ router gia đình đến văn phòng đến cloud gateway.
  • NAT Gateway trong cloud là thành phần kiến trúc quan trọng cho private subnet, không phải giải pháp vá tạm thời.
  • NAT ẩn IP nội bộ, nhưng không thay thế được firewall và chính sách bảo mật thật sự.

FAQ

NAT có phải là firewall không?

Không. NAT dịch địa chỉ mạng, còn firewall kiểm soát traffic được phép đi qua hay bị chặn dựa trên rule cụ thể. NAT có thể ẩn IP nội bộ, nhưng không lọc traffic độc hại và không thay thế firewall.

NAT có làm Internet chậm hơn không?

Có thể, nếu thiết bị NAT yếu hoặc lưu lượng rất lớn. Trong mạng gia đình và văn phòng thông thường, overhead của NAT nhỏ và không ảnh hưởng rõ rệt. Với hệ thống xử lý throughput cao, cần chọn thiết bị NAT phù hợp với tải thực tế.

NAT Overload và PAT có giống nhau không?

Hai thuật ngữ chỉ cùng một kỹ thuật trong hầu hết tài liệu: nhiều thiết bị private chia sẻ một IP public bằng cách dùng port để phân biệt kết nối. “NAT Overload” là thuật ngữ của Cisco; “PAT” phổ biến hơn trong tài liệu kỹ thuật chung.

NAT Gateway là gì?

NAT Gateway là dịch vụ hoặc thiết bị NAT thường dùng trong cloud để tài nguyên trong private subnet gửi traffic ra ngoài mà không cần public IP riêng. Trên AWS, NAT Gateway là dịch vụ managed, đặt trong public subnet, có Elastic IP cố định và hỗ trợ scale tự động theo bandwidth.

NAT có còn cần thiết khi dùng IPv6 không?

IPv6 có không gian địa chỉ đủ lớn để mỗi thiết bị có một địa chỉ public riêng, nên nhu cầu dùng NAT để tiết kiệm địa chỉ giảm đi đáng kể. Tuy nhiên trong thực tế hiện nay, NAT vẫn xuất hiện trong nhiều hệ thống vì lý do kiến trúc bảo mật (muốn giữ private subnet), tương thích hạ tầng cũ, hoặc trong môi trường chuyển đổi từ IPv4 sang IPv6 chưa hoàn tất.

SNAT và DNAT khác nhau thế nào?

SNAT (Source NAT) thay đổi địa chỉ nguồn của gói tin, dùng khi thiết bị nội bộ ra Internet. DNAT (Destination NAT) thay đổi địa chỉ đích, dùng khi cần chuyển traffic từ bên ngoài vào server nội bộ cụ thể. Port forwarding là trường hợp phổ biến nhất của DNAT.