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.

== 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.

==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