Có một quan niệm sai lầm chung giữa NAT (dịch địa chỉ mạng) và PAT (Dịch địa chỉ cổng), đó là những gì chúng ta chủ yếu sử dụng trong các bộ định tuyến gia đình.
NAT
Giả sử chúng ta có một mạng với cấu trúc liên kết sau:
Private_Network <-------> Bộ định tuyến <-------> The_INET
Giao diện của Bộ định tuyến được kết nối với Private_Network có một địa chỉ IP riêng , tức là một địa chỉ không phải là duy nhất trong The_INET . Mặt khác, trong trường hợp NAT , Bộ định tuyến có nhiều giao diện được kết nối với The_INET . Mỗi giao diện có một địa chỉ IP duy nhất trong The_INET . Bây giờ, hãy giả sử rằng Host_A và Host_B nằm trong Private_Network và cả hai đều muốn truy cập Website_X trong The_I Internet cùng một lúc. IP và cổng của Host_AGói của sẽ là:
IP nguồn: IP riêng của Host_A
Cổng nguồn: Cổng trên Host_A
IP đích: Cổng đích IP công cộng / duy nhất của Website_X
: Cổng mà máy chủ của Website_X đang lắng nghe
và theo cách tương tự cho một gói đến từ Host_B .
Nếu IP nguồn không thay đổi, thì Website_X sẽ trả lời địa chỉ IP là riêng tư, nghĩa là không phải là duy nhất và do đó gói sẽ không bao giờ có thể tìm lại được. Để giải quyết vấn đề đó, Bộ định tuyến kiểm tra xem một trong những địa chỉ IP duy nhất của anh ta được kết nối với The_INET không được sử dụng. Nếu đó là trường hợp, nó thực hiện ánh xạ sau:
Host_A 's tin IP ======= Router's_unique_IP_K
và bây giờ gói bắt đầu từ Host_A đi đến Website_X và hiện rời khỏi giao diện của Bộ định tuyến được kết nối với The_INET sẽ có dạng:
IP nguồn: Router's_unique_IP_K
Cảng Nguồn: Một cổng trên Host_A
Destination IP: Website_X 's công cộng / IP duy nhất
Destination Port: Một cổng nơi Website_X ' máy chủ s được nghe
Do đó, bạn có thể hiểu rằng có một liên kết một-một từ IP riêng sang IP công cộng. Do đó, khi một gói đến từ Website_X đến Bộ định tuyến , liên kết này được kiểm tra và địa chỉ IP đích được đổi lại thành địa chỉ riêng và được gửi thành công đến đúng máy chủ.
Như bạn có thể thấy, phương pháp này khá đơn giản, nhưng nó có một nhược điểm lớn: mỗi máy chủ riêng phải có một địa chỉ IP duy nhất, rất tốn kém, do đó chúng tôi chọn có ít địa chỉ IP duy nhất hơn máy chủ trong mạng riêng. Do đó, nếu tất cả các máy chủ riêng cố gắng truy cập The_INET cùng một lúc, chỉ một tập hợp con của chúng, bằng với số lượng địa chỉ IP công cộng có sẵn mà Bộ định tuyếnđã, sẽ có quyền truy cập và phần còn lại sẽ bị từ chối.
Để chống lại việc chúng tôi tạo ra PAT .
PAT
PAT là những gì mà phần lớn các bộ định tuyến gia đình của chúng tôi đang sử dụng. Hạn chế cơ bản là Bộ định tuyến có một địa chỉ IP duy nhất mà nó kết nối với The_INET , nhưng chúng tôi vẫn muốn cho phép nhiều máy chủ từ mạng riêng truy cập vào The_I Internet cùng một lúc.
Cách chúng tôi làm điều đó "tương tự" với cách NAT thực hiện với một điểm khác biệt chính: thay vì Bộ định tuyến giữ một nhóm địa chỉ IP, nó giữ một nhóm số cổng. Chính xác hơn, một gói đến Bộ định tuyến từ Host_A trong Private_Network được chuyển đến Website_X trongThe_INET sẽ có định dạng sau:
IP nguồn: IP riêng của Host_A
Cổng nguồn: Cổng trên Host_A
IP đích: Cổng đích IP công cộng / duy nhất của Website_X
: Cổng mà máy chủ của Website_X đang lắng nghe
Bây giờ Bộ định tuyến sẽ thực hiện hai nhiệm vụ:
- Nó sẽ thay đổi IP nguồn thành IP công cộng duy nhất của Bộ định tuyến VÀ
- Nó sẽ thay đổi Cổng nguồn thành một cổng từ một nhóm mà Bộ định tuyến đang duy trì và chưa được sử dụng, ví dụ: Port_Z
và bây giờ gói bắt đầu từ Host_A đi đến Website_X và hiện rời khỏi giao diện của Bộ định tuyến được kết nối với The_INET sẽ có dạng:
IP nguồn: Router's_unique_IP_K
Cảng Nguồn: Port_Z
Destination IP: Website_X 's công cộng / IP duy nhất
Destination Port: Một cổng nơi Website_X ' máy chủ s được nghe
và Bộ định tuyến sẽ giữ ánh xạ sau:
IP riêng của Host_A VÀ một cổng trên Host_A ======= Port_Z
Tại sao điều này làm việc?
Bây giờ khi một gói trở lại, Bộ định tuyến chỉ cần kiểm tra số cổng đích và thay đổi địa chỉ IP đích và số cổng đích theo ánh xạ được đề cập trước và gói được gửi thành công.
Nếu tôi chạy nhiều ứng dụng trên cùng một Máy chủ thì sao?
Các ứng dụng khác nhau sẽ có các cổng khác nhau, theo định nghĩa, do đó chúng sẽ được ánh xạ tới một cổng khác với Bộ định tuyến .
Điều gì xảy ra nếu nhiều Máy chủ cố gắng truy cập The_INET cùng một lúc và tất cả chúng đều sử dụng cùng một ứng dụng?
Theo định nghĩa, các Máy chủ khác nhau sẽ có các địa chỉ IP riêng khác nhau, do đó, chúng sẽ được ánh xạ tới một cổng khác với Bộ định tuyến .
PAT là cân bằng nguy hiểm trong một không gian màu xám của lớp chéo. Số cổng là một phần của Giao thức vận chuyển trong khi Bộ định tuyến được phép hoạt động theo Giao thức Internet. Vì vậy, về mặt kỹ thuật là những thứ không được các giao thức cho phép. Do đó, ít nhất là về mặt lý thuyết, những nguy cơ tiềm ẩn: nhóm cảng bị hạn chế. Do đó, nếu mạng riêng của tôi bao gồm 1000 Máy chủ lưu trữ và mỗi máy chủ đang chạy các ứng dụng port_pool / 10, bảng ánh xạ tại bộ định tuyến sẽ hết các mục có sẵn và quyền truy cập vào các ứng dụng sẽ bị từ chối.
Câu trả lời này vượt quá độ dài dự định của tôi, nhưng tôi hy vọng nó hữu ích.