Tại sao STUN không hoạt động với NAT đối xứng?


7

Tôi đọc dòng này từ wikipedia .

" STUN hoạt động với ba loại NAT: NAT hình nón đầy đủ, NAT hình nón bị hạn chế và NAT hình nón bị hạn chế cổng . Trong trường hợp NAT hình nón bị hạn chế hoặc hình nón bị hạn chế cổng, khách hàng phải gửi một gói đến điểm cuối trước khi NAT sẽ cho phép các gói từ điểm cuối đến máy khách. STUN không hoạt động với NAT đối xứng "

Bất cứ ai có thể giải thích tại sao?

Câu trả lời:


6

Vì STUN (máy chủ bên ngoài), không thể biết cổng nào sẽ được cung cấp cho máy khách bởi thiết bị NAT. Trong NAT đối xứng, máy khách nhận được cổng duy nhất (ip: port trong nhóm tình huống) trên mỗi kết nối


13

Giả sử chúng ta có máy chủ STUN tại địa chỉ stun_addrvà máy chủ tại địa chỉ srv_addr. Sử dụng STUN thường đi như thế này:

  1. Máy khách kết nối với máy chủ STUN stun_addrthông qua thiết bị NAT. Thiết bị NAT dịch địa chỉ nguồn thànhnatted_addr_1
  2. Máy chủ STUN cho khách hàng biết địa chỉ mà nó nhận được kết nối, đó là natted_addr_1
  3. Máy khách liên lạc với máy chủ srv_addrthông qua thiết bị NAT và báo cho hệ thống bên ngoài sử dụng natted_addr_1nếu muốn tiếp cận máy khách
  4. Hệ thống bên ngoài gửi một cái gì đó cho khách hàng bằng cách sử dụng natted_addr_1

Điều này sẽ chỉ hoạt động nếu thiết bị NAT sử dụng natted_addr_1cho cả giao tiếp với máy chủ STUN và hệ thống bên ngoài khác. Cụ thể hơn, nó chỉ hoạt động nếu thiết bị NAT sẽ phân phối các gói đến bước 4 cho máy khách.

Một thiết bị NAT đối xứng sẽ sử dụng một bản dịch khác nhau trong bước 1 và 3 vì địa chỉ đích của lưu lượng là khác nhau. Trong bước 3, địa chỉ nguồn trong các gói đến máy chủ được dịch sang một số địa chỉ khác natted_addr_2.

Thiết bị NAT chỉ biết về các kết hợp địa chỉ nguồn và đích này và sẽ chỉ cho phép các địa chỉ này quay lại:

  • Từ stun_addrđếnnatted_addr_1
  • Từ srv_addrđếnnatted_addr_2

Thật không may, máy chủ đã được yêu cầu sử dụng natted_addr_1nhưng các gói từ srv_addrđịnh mệnh natted_addr_1sẽ bị thiết bị NAT từ chối vì Địa chỉ NAT: Hạn chế cổng tại chỗ.

Để chính xác hơn, 'địa chỉ' nên được thay thế bằng 'địa chỉ / cổng' trong câu trả lời này, vì các thiết bị NAT sẽ hoạt động với sự kết hợp của địa chỉ IP và số cổng.


Giải thích tuyệt vời. Điều này đã giúp tôi hiểu tại sao STUN không hoạt động cho các NAT đối xứng. Điều tôi vẫn đang vật lộn là, trong thế giới của WebRTC, các ứng cử viên được tạo qua STUN trên một địa chỉ hoặc cổng hạn chế hình nón NAT có thành công không? Dường như trong tất cả các trường hợp này, việc đục lỗ UDP sẽ thất bại. Tôi hiểu có đúng không?
Ternary

Điều này nghe có vẻ như một câu hỏi mới với tôi. Vì thuật ngữ về các loại NAT khác nhau có thể gây nhầm lẫn, nên bạn có thể hỏi một câu hỏi mới trên trang web với một số ngữ cảnh hơn, nếu bạn muốn.
Gerben

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.