Một nguyên tắc cơ bản của CWMP (TR-069) là các thiết bị cuối CPE luôn chủ động khởi tạo kết nối. Máy chủ cấu hình tự động (ACS – Autoconfiguration Server) có thể sử dụng TR-069 Connection Request để kích hoạt thiết bị bắt đầu một phiên giao tiếp. Việc làm này thường sử dụng khi ACS cần liên lạc với CPE để cấu hình dịch vụ mới trên thiết bị trong giai đoạn thiết bị hoạt động.

Nhưng với thiết bị nằm sau NAT thì sao? TR-069 không thể liên lạc trực tiếp được với CPE bằng cách thông thường, mà cần phải nhờ các tiện ích, giao thức trung gian giúp ACS có thể bắt tay với CPE.

Vượt NAT bằng STUN

CWMP ban đầu được thiết kế tập trung vào các thiết bị hoạt động như gateway, ví dụ Modem ADSL, Modem GPON, ROUTER hay Access Point. Vì các thiết bị này có thể được truy cập trực tiếp từ internet, và dễ dàng khởi tạo kết nối với ACS qua TR-069 Connection Request. Yêu cầu kết nối từ ACS cơ bản là được thực hiện qua bản tin HTTP GET tới 1 URL định danh cho 1 CPE (URL này được gửi trong mỗi bản tin Inform tới ACS, như vậy ACS luôn biết được URL hiện tại của CPE là gì). Khi yêu cầu thành công bởi bản tin TR-069 Connection Request, thiết bị sẽ khởi tạo phiên làm việc bằng bản tin Inform với event đi kèm là 6 CONNECTION REQUEST.

Khi mà TR-069 được sử dụng quản lý cho nhiều loại thiết bị hơn, như Set Top Box, VoIP-phones. Nhưng, chúng được thiết kế và nằm phía sau các Gateway sử dụng NAT (Network Address Translation) và như thế URL xuất ra của các thiết bị này không sử dụng để kết nối từ ACS. Từ mong muốn quản lý được các thiết bị sau NAT, phụ lục Annex-G của TR-069 qui định về cách sử dụng giao thức STUN (Session Traversal for NAT) để nhận biết được yêu cầu kết nối HTTP GET từ ACS thông qua Gateway.

Vượt NAT bằng XMPP

STUN không phải là giải pháp tốt nhất. Nó dựa trên UDP, như vậy không đảm bảo được mọi yêu cầu kết nối CR là thành công. Và thực sự khó cài đặt đối với người mới. Là một giao thức mới hơn, TR-069 cũng qui định về sử dụng XMPP (eXtensible Messaging and Presence Protocol) để giúp cho Connection Request thành công. Qui định về đặc tả này định nghĩa trong phụ lục Annex-K of TR-069 Amendment trong lần sử đổi thứ 5.

Xem hướng dẫn cài đặt giao tiếp sử dụng XMPP để gửi yêu cầu kết nối tới thiết bị sau NAT

Để sử dụng tính năng này, CPE phải hỗ trợ cấu hình XMPPBasic:1XMPPConReq:1 theo mô hình dữ liệu CWMP. ACS sẽ tạo một kết nối đến XMPP server, và cấu hình CPE sử dụng XMPP Server này (thông qua TR-069 trong lần khởi động đầu tiên BOOTSTRAP của thiết bị). Các CPE sẽ tự nó thiết lập kết nối an toàn và thỏa thuận với XMPP Server này.

tr069-xmpp

Từ đây về sau, ACS có thể khởi tạo kết nối với CPE bằng Jabber ID của thiết bị thông qua XMPP Server. Yêu cầu kết nối này đơn giản là một bản tin XMPP IQ Stanza có chứa yêu cầu kết nối Connection Request đến máy chủ XMPP xác định "to" là địa chỉ của CPE và "from" là địa chỉ khớp với các Jabber ID.

Khi việc này hoàn tất, CPE sẽ khởi tạo một phiên CWMP tới ACS như bình thường qua HTTP. Sau khi có kết nối này rồi, thì ACS không cần quan tâm đến NAT nữa. Các trao đổi, cấu hình diễn ra bình thường!

About The Author