Câu trả lời ngắn: Theo dõi kết nối NAT
Một điều cần nhớ là phần lớn các Bộ định tuyến trên internet IPv4 là Bộ định tuyến NAT.
Hầu hết các triển khai NAT đều thực hiện theo dõi thông minh, Khi bạn gửi UDP từ máy khách nội bộ đến một nơi nào đó, bạn sẽ có Cổng đích và Cổng nguồn.
Nếu lưu lượng truy cập đến với các cổng bị đảo ngược, thì lưu lượng đó sẽ được chuyển trở lại ứng dụng khách của bạn và được cho phép trong hầu hết các tường lửa.
NAT/Tường lửa có theo dõi sẽ phát hiện các gói này có liên quan và chuyển tiếp chúng trở lại.
Ví dụ dựa trên nhận xét với người phục vụ
trên cảng 5000
UDP
- Khách hàng gửi một gói cho
máy chủ: 5000
, nguồn khách hàng: 5001
- Bộ định tuyến NAT đầu tiên sẽ thấy một gói có ip nguồn và cổng của
khách hàng: 5001
, và điểm đến máy chủ: 5000
.
- Bộ định tuyến gửi cái này theo cách của nó và sẽ có
NATip:NATport
- Máy chủ nhận được điều này và tạo phản hồi cho
NATip:NATport
mà có nguồn máy chủ: 5000
- NAT nhận được cái này và có nguồn
máy chủ: 5000
điểm đến NATip:NATport
, khớp với gói đã được gửi đi (nhưng bị đảo ngược nguồn và đích)
- NAT gửi cái này đến
khách hàng: 5001
còn nguồn máy chủ: 5000
IP+cổng nguồn và ip+cổng đích tạo ra một tổ hợp có thể được theo dõi. (có nhiều chi tiết hơn, nhưng đây là điều cơ bản)
Một số đọc thêm Nhưng tôi nên tìm kiếm tài liệu tốt hơn về điều này và không chỉ tham khảo bằng chứng giai thoại từ những gì tôi đã thấy.