Dịch địa chỉ mạng (NAT) là một tính năng cho phép dịch địa chỉ IPv4. Nó thường được sử dụng nhất để dịch các địa chỉ IPv4 riêng tư sang các địa chỉ IPv4 có thể định tuyến công cộng. Tính năng này giải quyết việc cạn kiệt không gian địa chỉ IPv4. Chúng ta hãy xem xét kỹ hơn NAT là gì bằng cách kiểm tra các cơ chế khác nhau liên quan đến việc triển khai tính năng này. Thông qua bài viết này, chúng ta cũng sẽ so sánh NAT với Dịch địa chỉ cổng (PAT) và chúng ta sẽ kiểm tra chức năng quan trọng của từng loại. Trước tiên, hãy bắt đầu với Bảng so sánh và tổng quan giữa hai công nghệ: Bảng so sánh NAT và PAT Bảng sau đây tóm tắt sự khác biệt giữa NAT và PAT: Một số thuật ngữ Tùy thuộc vào ngữ cảnh, thuật ngữ NAT có thể đề cập đến một số điều. Đầu tiên và quan trọng nhất, nó là một thuật ngữ bao gồm tất cả các chức năng NAT. NAT có thể được chia thành hai thành phần chính: NAT cơ bản thực hiện dịch địa chỉ IP một-một. Điều này cũng có thể được gọi là "NAT một-một" hoặc đơn giản được gọi là NAT. Dịch địa chỉ cổng (PAT) thực hiện dịch từ một đến nhiều địa chỉ IP. Các tên khác của điều này bao gồm giả mạo IP và quá tải NAT. Chính tính năng này đã kéo dài thời gian tồn tại của không gian địa chỉ IPv4. Cả hai điều này đều được định nghĩa trong RFC 2663. Cả hai đều có thể được áp dụng tĩnh hoặc động từ một nhóm các địa chỉ được xác định trước. NAT diễn ra ở đâu? NAT là một cơ chế Lớp 3 và được thực hiện trong bộ định tuyến (hoặc thiết bị tường lửa). Thông thường, nó được thực hiện ở rìa mạng nơi mạng LAN doanh nghiệp cục bộ kết nối với Internet. NAT có thể dịch bất kỳ địa chỉ IPv4 nào sang bất kỳ địa chỉ IPv4 nào khác, tuy nhiên, như đã đề cập trước đây, kịch bản phổ biến nhất của việc triển khai NAT là dịch các địa chỉ IPv4 riêng tư không thể định tuyến, như được định nghĩa trong RFC 1918 thành các địa chỉ IPv4 công cộng có thể định tuyến. Dải địa chỉ IPv4 riêng quen thuộc với hầu hết chúng ta như sau: 10.0.0.0 – 10.255.255.255 (10.0.0.0/8) : Lớp A 172.16.0.0 – 172.31.255.255 (172.16.0.0/12) : Lớp B 192.168.0.0 – 192.168.255.255 (192.168.0.0/16) : Lớp C Bây giờ chúng ta hãy kiểm tra NAT và PAT và xem cách chúng hoạt động và so sánh. Khi chúng ta sử dụng thuật ngữ NAT, chúng ta đang đề cập đến NAT cơ bản. NAT cơ bản (Network Address Translation - Dịch địa chỉ mạng) Khi một gói đi qua một bộ định tuyến hỗ trợ NAT, các địa chỉ IPv4 được tìm thấy trong trường nguồn và trường đích có thể được thay thế hoặc dịch sang một tập hợp địa chỉ IPv4 khác. Ví dụ, hãy xem sơ đồ sau: Khi lưu lượng truy cập đi từ PC đến PC, nó sử dụng địa chỉ IP riêng nguồn là 10.0.0.1. Khi gói đi qua bộ định tuyến NAT, địa chỉ IP nguồn đó sẽ được thay thế bằng hoặc được dịch sang địa chỉ công cộng là 150.150.0.1. Lưu lượng truy cập trở lại từ PC đến PC cũng được dịch, nhưng lần này, địa chỉ đích được dịch, từ 150.150.0.1 trở lại 10.0.0.1. Các địa chỉ này có tên cụ thể: Inside local address : Địa chỉ IP được gán cho một máy chủ trên mạng bên trong. Đây là địa chỉ được cấu hình như một tham số của HĐH máy tính hoặc được nhận thông qua các giao thức cấp phát địa chỉ động như DHCP. Inside global address : Địa chỉ IP công cộng được NIC hoặc nhà cung cấp dịch vụ chỉ định đại diện cho một hoặc nhiều địa chỉ IP cục bộ bên trong với thế giới bên ngoài. Outside local address : Địa chỉ IP của máy chủ bên ngoài khi nó xuất hiện với mạng bên trong. Outside global address : Địa chỉ IP được chủ sở hữu máy chủ chỉ định cho một máy chủ trên mạng bên ngoài. Địa chỉ được cấp phát từ địa chỉ có thể định tuyến toàn cầu hoặc không gian mạng. Trên sơ đồ trên, các địa chỉ sau đây tương ứng với từng loại: Inside local address: 10.0.0.1 Inside global address: 10.150.0.1 Outside local address: 10.100.10.1 Outside global address: 10.100.10.1 PAT (Port Address Translation - Dịch địa chỉ cổng) PAT có thể được sử dụng để ánh xạ nhiều địa chỉ cục bộ bên trong thành một địa chỉ toàn cầu bên trong, do đó cho phép hàng chục hoặc thậm chí hàng trăm máy tính nội bộ chia sẻ một địa chỉ IPv4 có thể định tuyến duy nhất. Điều này đạt được bằng cách tận dụng việc sử dụng các cổng TCP hoặc UDP trong Lớp truyền tải để đảm bảo tính duy nhất của mỗi giao tiếp diễn ra. Mặc dù cùng một địa chỉ toàn cục bên trong được sử dụng cho nhiều máy tính, mỗi cổng Lớp vận chuyển khác được sử dụng để phân biệt giữa các luồng dữ liệu. Ví dụ, hãy xem sơ đồ sau: Ở đây, bạn có thể thấy ba máy tính ở bên trong với ba địa chỉ IP khác nhau. Chúng được dịch bằng cách sử dụng PAT sang cùng một địa chỉ IP bên ngoài là 200.100.10.1 nhưng sử dụng các số cổng khác nhau. Tổ hợp địa chỉ IP / số cổng là định danh duy nhất của mỗi luồng. Bộ định tuyến NAT đủ thông minh để thực hiện phiên dịch thích hợp để mỗi luồng tương ứng chính xác với máy chủ thích hợp và giao tiếp có thể diễn ra thành công. Hạn chế của các loại NAT Sau đây là một số hạn chế của cả NAT và PAT mà bạn nên lưu ý khi nào triển khai các tính năng này: Vì số cổng TCP và UDP được sử dụng để ánh xạ một đến nhiều địa chỉ IPv4, nên chỉ lưu lượng TCP và UDP mới có thể được dịch bằng PAT. Tuy nhiên, phần lớn lưu lượng mạng là TCP hoặc UDP, do đó hạn chế này không đáng quan tâm. NAT thuộc loại có thể gây ra sự cố trong giao tiếp của một số dịch vụ mạng sử dụng nhiều luồng dữ liệu, chẳng hạn như phiên Thoại qua IP (VoIP) và FTP. Số lượng bản dịch mà một bộ định tuyến có thể thực hiện phụ thuộc vào tài nguyên CPU và bộ nhớ của nó. Ngay cả khi bộ định tuyến có đủ tài nguyên CPU và bộ nhớ, PAT có giới hạn cứng là 65536 mục PAT tối đa trong bảng của nó tại một thời điểm cho mỗi địa chỉ toàn cục bên trong (vì nó sử dụng số cổng có phạm vi từ 0 đến 65535). NAT hỗ trợ IPv6 trong cái được gọi là NAT66, tuy nhiên, nó thường không được triển khai vì nó không cần thiết vì việc cạn kiệt không gian địa chỉ không phải là vấn đề với IPv6. Bài viết liên quan: Cấu hình NAT, PAT trên thiết bị định tuyến Router Cisco