Stun server là gì? Tổng quan những thông tin chi tiết về Stun server

1423
11-06-2022
Stun server là gì? Tổng quan những thông tin chi tiết về Stun server

Stun server là một giao thức mạng giữa Client (máy khách) và Server (máy chủ). Khi Stun Client thực hiện việc gửi yêu cầu đến Stun Server thì Stun Server sẽ ngay lập tức gửi lại thông tin địa chỉ IP công khai NAT router. 

Lúc này, NAT router sẽ thực hiện việc mở cổng để các thông tin được phép quay trở lại mạng. Vậy cụ thể, Stun Server là gì? Hãy cùng Bizfly Cloud tìm hiểu ngay trong bài viết dưới đây nhé!

Giao thức Stun là gì?

Giao thức Stun là một giao thức mạng giữa Server và Client, cho phép Client (máy khách) khám phá ra các địa chỉ IP mà Stun đứng sau NAT và số cổng cổng phía internet được NAT gắn liền với một cổng nội bộ bất kỳ. Các thông tin được tìm thấy sẽ được sử dụng cho mục đích thiết lập các kênh dữ liệu và giao tiếp UDP giữa hai host khác nhau nằm ở phía sau của NAT Router.

Công nghệ Stun thường được sử dụng cho mục đích khắc phục các sự cố truyền tải NAT do thiết bị NAT chặn quyền truy cập. Stun cũng sẽ biết được loại NAT nào đang được ứng dụng dựa trên phản hồi từ phía máy chủ. Port Restricted Cone, Restricted và Full Cone là ba loại NAT có khả năng làm việc tốt với hệ thống này.

Stun Server là gì? 

Stun Server là một bộ định tuyến cho phép máy khách có khả năng tìm được Port và địa chỉ IP mà thiết bị NAT đã sử dụng để thiết lập giao tiếp UDP giữa máy chủ và máy khách đồng thời cung cấp Voip để thiết lập cuộc gọi. Một máy chủ Stun sẽ đảm nhận vai trò gửi các phản hồi ràng buộc Stun đồng thời nhận các yêu cầu ràng buộc Stun. Stun Server thường sẽ được triển khai trên trang mạng công cộng.

Stun được khai báo trong RFC 3489 và Stun Server giao tiếp được thông qua Port UDP 3478. Stun Server sẽ có hai địa chỉ IP chính giúp đưa ra cho Stun Client gợi ý thử kết nối với địa chỉ IP và một số cổng Port khác.

NAT trong tiêu chuẩn Stun được phân thành bốn loại bao gồm NAT hình nón đầy đủ, NAT hình nón hạn chế, NAT hình nón hạn chế cổng và NAT đối xứng dựa theo chế độ ánh xạ từ địa chỉ IP Private, từ cổng đến địa chỉ IP Public và cổng.

Stun Server là một bộ định tuyến cho phép máy khách có khả năng tìm được Port và địa chỉ IP

Stun Server là một bộ định tuyến cho phép máy khách có khả năng tìm được Port và địa chỉ IP

Stun client là gì?

Stun client được định nghĩa là máy khách có nhiệm vụ tạo ra các yêu cầu Stun. Stun client có thể thực thi trên hệ thống đầu cuối (PC của người dùng hoặc chạy bên trong thành phần mạng).

Stun hoạt động như thế nào? 

Stun Server có khả năng thông qua tin nhắn trao đổi với Stun Client để phát hiện ra các thiết bị NAT đồng thời lấy địa chỉ IP và số Port được thiết bị NAT cấp phát cho Stun Client. Sau khi thiết lập thành công một kênh dữ liệu giữa các Stun Client, các máy khách này có thể truy cập lẫn nhau. Quá trình trao đổi Stun sẽ diễn ra theo hai giai đoạn chính là phát hiện NAT và Hole Punching:

- Phát hiện NAT:

+ Mỗi Stun Client sẽ gửi đến máy chủ Stun một yêu cầu ràng buộc.

+ Máy chủ Stun sau khi nhận được các yêu cầu ràng buộc sẽ lấy các địa chỉ IP nguồn và số Port đồng thời gửi đến máy khách các phản hồi ràng buộc. Các thuộc tính RESPONSE-ORIGIN, MAPPED-ADDRESS và XOR-MAPPED-ADDRESS sẽ được xuất hiện trong thông báo phản hồi liên kết.

+ Stun Client lấy địa chỉ IP và số Port từ phản hồi liên kết các thuộc tính MAPPED-ADDRESS hoặc XOR-MAPPED-ADDRESS đồng thời so sánh IP và Port thu được với IP và Port nguồn trong yêu cầu liên kết. Nếu chúng khác nhau thì chắc chắn một thiết bị NAT đã được sử dụng trước Stun Client.

- Hole Punching: Đây là một kỹ thuật được sử dụng để thiết lập các kết nối trực tiếp giữa các host giao tiếp phía sau NAT. Cụ thể, bằng cách tạo các mục nhập phiên NAT trên thiết bị NAT, nó sẽ thiết lập một kênh dữ liệu giữa các Stun Client trên thiết bị trung gian. Quy trình Hole Punching diễn ra như sau:

+ Stun Client thông qua BGP để lấy thông tin TNP bao gồm địa chỉ IP và số Port được dùng trước và sau NAT của một Stun Client khác. Khi Stun Client 1 cần giao tiếp với Stun Client 2 thì nó sẽ gửi các gói BGP cho Stun Client 2 để thông báo việc Hole Punching và thiết lập kênh dữ liệu.

+ Stun Client 1 và Stun Client 2 sẽ gửi cho nhau các yêu cầu ràng buộc để thực hiện Hole Punching. Stun Client 1 gửi đến Stun Client 2 hai yêu cầu ràng buộc cụ thể:

  • Thông báo A chứa địa chỉ IP và số Port sau NAT
  • Thông báo B chứa địa chỉ IP và số Port sau NAT

+ Stun Client 2 sau khi nhận được thông báo A và B sẽ tiến hành xử lý thông báo như sau:

  • Nếu Stun Client 1 và Stun Client 2 cùng nằm trên một mạng riêng (phía sau cùng một thiết bị NAT) thì thông báo A mới được gửi thành công.
  • Sau khi Stun Client 1 gửi đến Stun Client 2 thông báo B, thiết bị NAT tạo ra một mục để ghi lại phiên làm việc. Tuy nhiên, nếu NAT 1 hoặc NAT 2 không có mục nhập phiên thì thông báo B sẽ bị loại bỏ.

+ Stun Client 1 và Stun Client 2 sẽ liên tục gửi cho nhau các yêu cầu ràng buộc. Khi các mục nhập phiên được tạo ra trên cả NAT 1 và NAT 2 thì cả hai máy khách Stun đều có thể nhận được các yêu cầu ràng buộc từ nhau.

+ Sau khi Stun Client 2 nhận được yêu cầu ràng buộc từ Stun Client 1, nó sẽ gửi phản hồi ràng buộc đến Stun Client 1.

Stun Server có khả năng thông qua tin nhắn trao đổi với Stun Client

Stun Server có khả năng thông qua tin nhắn trao đổi với Stun Client

STUN được sử dụng để làm gì trong SD-WAN? 

Trong giải pháp SD-WAN, người dùng thường truy cập vào trụ sở chính của các điểm chi nhánh bằng địa chỉ IP riêng thông qua NAT nhằm mục đích tiết kiệm tài nguyên địa chỉ IP. Do đó, các CPE nhánh thường được triển khai cùng thiết bị NAT.

  • Địa chỉ IP sẽ thay đổi sau khi các gói được gửi bởi CPE đi qua các thiết bị NAT. Nếu địa chỉ IP sau thiết bị NAT không thể lấy được thì các kênh dữ liệu giữa các CPE sẽ không được thiết lập. Vì vậy, bạn cần thiết phải triển khai Stun trong SD-WAN để kích hoạt lưu lượng dịch vụ giữa các CPE thông qua thiết bị NAT.
  • Trong mạng truyền NAT, CPE và RR sẽ thông qua kênh quản lý để gửi yêu cầu đăng ký đến Master. Stun cần được triển khai trên CPE và RR để xác định xem thiết bị NAT có đang được triển khai giữa các CPE hay là không.

Nói chung, Stun Server là một máy chủ có khả năng cho phép các máy khách NAT có thể tạo lập các cuộc gọi với máy cung cấp Voip nằm phía ngoài mạng nội bộ. Chắc chắn với những nội dung hữu ích đã được Bizfly Cloud chia sẻ đã giúp bạn hiểu rõ Stun Server là gì và có thêm nhiều kiến thức thú vị về giao thức này.

Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

SHARE