Biên dịch địa chỉ mạng

Biên dịch địa chỉ mạng ( - NAT) trong mạng máy tính là quá trình thay đổi thông tin địa chỉ IP trong gói tin đang được truyền qua một thiết bị định tuyến.

Khi dịch địa chỉ mạng sửa đổi thông tin địa chỉ IP trong các gói, việc triển khai NAT có thể khác nhau về hành vi cụ thể của chúng trong các trường hợp địa chỉ khác nhau và ảnh hưởng của chúng đối với lưu lượng mạng. Các chi tiết cụ thể của hành vi NAT thường không được các nhà cung cấp thiết bị có triển khai NAT ghi lại.

NAT cơ bản 
Loại NAT đơn giản nhất cung cấp việc biên dịch một - một cho một địa chỉ IP. Chuẩn RFC 2663 gọi loại NAT này là NAT cơ bản. Nó đôi khi cũng được gọi là NAT một-một. Trong kiểu phiên dịch này chỉ có địa chỉ IP, IP header, phần kiểm lỗi cần phải thay đổi (đối với TCP/UDP thì như vậy là đủ, nhưng một số giao thức tầng cao hơn có thể yêu cầu biên dịch nhiều hơn). NAT cơ bản có thể sử dụng để kết nối hai mạng máy tính có địa chỉ không tương thích.

Một tới nhiều NAT 

Thông thường trong một mạng máy tính, các máy trong mạng được gán địa chỉ IP riêng, mạng chỉ có một hoặc một vài địa chỉ công cộng được gán cho thiết bị trực tiếp kết nối với mạng toàn cầu. Để các máy trong mạng có thể kết nối với bên ngoài, người ta sử dụng loại NAT một-nhiều. Trong kiểu NAT này, thông tin ở bậc cao trong các gói gửi đi hơn như cổng TCP/UDP được thay đổi và lưu trữ một bảng biên dịch, các gói tin trả về sẽ được tham chiếu với bảng này để thay đổi số cổng trước khi gửi tới máy cần nhận. Trong chuẩn RFC 2663, người ta còn gọi loại NAT này là NAPT (network address and port translation: biên dịch địa chỉ mạng và cổng). Các tên gọi khác là PAT (port address translation: biên dịch địa chỉ cổng), giả dạng IP, quá tải NAT. Do đây là loại thường gặp nhất của NAT nên khi gọi NAT, ta ngầm hiểu đó là NAT một-tới-nhiều.

Như đã nói, phương pháp này cho phép kết nối hoạt động chỉ khi yêu cầu kết nối bắt nguồn từ bên trong mạng. Ví dụ một trình duyệt web từ bên trong có thể kết nối tới một trang mạng bên ngoài, nhưng một trình duyệt từ bên ngoài không thể truy cập vào một trang web bên trong. Tuy nhiên, hiện nay hầu hết các thiết bị NAT đều cho phép cấu hình các giá trị trong bảng biên dịch sử dụng trong thời gian dài, từ đó ta có thể thiết lập NAT tĩnh hay chuyển tiếp cổng để cho phép các truy cập từ mạng "bên ngoài" vào các dịch vụ trong mạng nội bộ.

Trong những năm giữa thập niên 90, NAT trở thành một công cụ phổ biến để giải quyết vấn đề cạn kiệt địa chỉ IPv4. Nó trở thành một chức năng thiết yếu trong thiết bị định tuyến cho các kết nối tại nhà và công ty nhỏ. Hầu hết các hệ thống sử dụng thiết lập NAT để cho phép nhiều máy chủ trong mạng cục bộ có thể kết nối mạng toàn cầu thông qua chỉ một địa chỉ IP công cộng.

Biên dịch địa chỉ mạng bị hạn chế bởi chất lượng của kết nối mạng và yêu cầu nghiêm ngặt trong việc cài đặt. Ngoài ra tất cả các kiểu NAT đều bẻ gãy chuẩn kết nối khi truyền thông với mạng toàn cầu. NAT-T (NAT traversal) được đề xuất để xử lý vấn đề này.

Phương pháp biên dịch

Loại NAT và NAT truyền tải, vai trò của việc bảo quản cổng cho TCP

Thực hiện

Thiết lập giao tiếp hai chiều

Tương tự phần mở rộng số điện thoại

Quy trình dịch thuật

Khả năng hiển thị của hoạt động

Ứng dụng

Kỹ thuật liên quan

Vấn đề và hạn chế

Phân mảnh và tổng kiểm tra

DNAT

SNAT

Biên dịch địa chỉ mạng động

NAT Hairpinning

NAT trong IPv6

Ứng dụng bị NAT ảnh hưởng

Ví dụ về phần mềm NAT 
 Chia sẻ kết nối Internet (ICS): Triển khai NAT & DHCP được bao gồm trong hệ điều hành máy tính để bànWindows
 IPFilter: đi kèm với (Open) Solaris, FreeBSD và NetBSD, khả dụng cho nhiều hệ điều hành giống như Unix
 ipfirewall (ipfw): Bộ lọc gói gốc FreeBSD
 Netfilter với iptables/nftables: bộ lọc gói Linux
 NPF: Bộ lọc gói gốc NetBSD
 PF: Bộ lọc gói gốc OpenBSD
 Dịch vụ định tuyến và truy cập từ xa: Triển khai định tuyến được bao gồm trong hệ điều hành Windows Server
 WinGate: triển khai định tuyến của bên thứ ba cho Windows

Xem thêm

 Anything In Anything (AYIYA) – IPv6 over IPv4 UDP, thus working IPv6 tunneling over most NATs
 
 Internet Gateway Device Protocol (IGD) – UPnP NAT-traversal method
 Teredo tunneling – NAT traversal using IPv6
 Carrier-grade NAT – NAT behind NAT within ISP.

Chú thích

Liên kết ngoài

 NAT-Traversal Test and results
 Characterization of different TCP NATs – Paper discussing the different types of NAT
 Anatomy: A Look Inside Network Address Translators – Volume 7, Issue 3, September 2004
 Jeff Tyson, HowStuffWorks: How Network Address Translation Works
 Routing with NAT (Part of the documentation for the IBM iSeries)
 Network Address Translation (NAT) FAQ – Cisco Systems

Kiến trúc Internet