TR-369 / USP
¿Cómo encuentra un Agente USP a su Controlador? DHCP, DNS-SD y mDNS
Respuesta corta
Un Agente USP necesita el Endpoint ID, las credenciales y el rol de su Controlador, y cómo llegar a él (MTP, dirección, puerto y ruta). TR-369 permite que vengan del firmware, de un Controlador de confianza, de un mecanismo de arranque o de la red. Por DHCP, la opción 125 (17 en DHCPv6) puede entregar su URL o FQDN y su Endpoint ID, y DNS-SD resuelve el resto.
¿Sabías que…?
- Para pedir los datos del Controlador por DHCP, el Agente envía el número de empresa del Broadband Forum, 3561, y el texto “usp” en la opción 124 de DHCPv4 o en la 16 de DHCPv6.TR-369 §3.3
- Los mismos códigos de subopción, del 25 al 29, llevan los datos del Controlador tanto en la opción 125 de DHCPv4 como en la 17 de DHCPv6.TR-369 §3.3.1
- Desde USP 1.2, el descubrimiento por DHCP le entrega al Agente el Endpoint ID del Controlador.TR-369 Issue History
- En mDNS se espera que los Agentes se anuncien. Los Controladores no, pero descubren a los Agentes y responden a sus consultas.TR-369 §3.5
- Un Agente que todavía no tiene Controlador puede confiar en el primero que descubra. Si acepta el certificado autofirmado de un Controlador, ese Controlador empieza con un rol “untrusted”.TR-369 §3.1, §8.5
Un Agente USP en un gateway u ONT recién instalado tiene dos preguntas antes de hacer nada útil: ¿con qué Controlador debe hablar y cómo llega a él? TR-369 llama a la respuesta descubrimiento (discovery), el proceso con el que un Endpoint conoce las propiedades USP y los datos de conexión MTP de otro, y a su contraparte anuncio (advertisement), la forma en que los Endpoints dan a conocer su presencia (§3).
¿Qué necesita saber un Agente sobre su Controlador?
Para trabajar con un Controlador, el Agente necesita su Endpoint ID, sus credenciales y su rol autorizado. Para enviarle algo, además necesita al menos un MTP, una dirección IP, un puerto y, si el MTP lo requiere, una ruta de recurso. Eso puede llegar como una URL completa, como un FQDN que se resuelve en todos esos datos con registros DNS-SD, o por descubrimiento mDNS en la LAN (§3.1).
La especificación da ejemplos de cómo configurarlo, sin limitarse a ellos (§3.1):
- Preconfigurado en el firmware.
- Configurado por un Controlador ya conocido y de confianza.
- Configurado con un mecanismo de arranque aparte, como una interfaz de usuario u otra interfaz de gestión.
- DHCP, DNS o mDNS.
Venga de donde venga, un Agente que permite configurar Controladores por USP los guarda en el Object
Device.LocalAgent.Controller del modelo de datos Device:2 (R-DIS.0). En sentido contrario es más simple: el
Controlador conoce el Endpoint ID, los datos de MTP y las credenciales del Agente cuando este se conecta por primera
vez, aunque un Controlador en la LAN también puede obtener los datos de MTP de un Agente por mDNS (§3.2).
- ArranqueLlegan los datos del ControladorDel firmware, de un Controlador de confianza, de una interfaz de usuario o de las opciones DHCP 125 y 17.
- ResoluciónDNS o mDNSRegistros A y AAAA del nombre, más PTR, SRV y TXT si no se conoce el MTP o la ruta.
- ConexiónPor el MTPPor ejemplo, una sesión WebSocket, que normalmente abre el propio Agente.
- ConfianzaAutenticar y asignar un rolCertificados preconfigurados, confianza en el primer uso o aprobación de un usuario.
¿Cómo le entrega DHCP su Controlador a un Agente?
La opción DHCPv4 Vendor-Identifying Vendor-Specific Information (código 125) y la opción DHCPv6 Vendor-specific
Information (código 17) pueden informarle a un Agente sobre un único Controlador (§3.3). Primero el Agente tiene que
pedirlo. Si está configurado para solicitar datos del Controlador, debe incluir en sus solicitudes la DHCPv4 V-I Vendor
Class Option (124) o la opción DHCPv6 Vendor Class (16), con el número de empresa del Broadband Forum, 3561 (0x0DE9),
y el texto “usp” en minúsculas (R-DIS.1). La respuesta es un conjunto de subopciones encapsuladas (§3.3.1):
| Subopción | Opción 125 de DHCPv4 | Opción 17 de DHCPv6 | Dónde queda en el modelo de datos |
|---|---|---|---|
| URL o FQDN del Controlador | 25 | 25 | Depende del MTP |
| Código de aprovisionamiento | 26 | 26 | Device.LocalAgent.Controller.{i}.ProvisioningCode |
| Espera mínima entre reintentos USP | 27 | 27 | Device.LocalAgent.Controller.{i}.USPNotifRetryMinimumWaitInterval |
| Multiplicador del intervalo de reintento USP | 28 | 28 | Device.LocalAgent.Controller.{i}.USPNotifRetryIntervalMultiplier |
| Endpoint ID del Controlador | 29 | 29 | Device.LocalAgent.Controller.{i}.EndpointID |
El rol de un Controlador descubierto por DHCP se determina de forma programática, con las reglas de la sección de autenticación y autorización (§3.3).
DHCP no incorpora por sí mismo ningún mecanismo de seguridad, así que la especificación recomienda a los ISP usarlo para configurar Controladores solo donde el proveedor del servicio pueda garantizar la seguridad del enlace entre el servidor DHCP y el Agente, y establecer la confianza con certificados preconfigurados u otros medios (§3.3).
¿Dónde entran DNS y mDNS?
Si la subopción 25 trae un FQDN en vez de una URL, hay que resolver el nombre. Con DNS habilitado, el Endpoint pide registros A y AAAA como siempre (R-DIS.6). Si el Agente está resolviendo el FQDN de un Controlador y no conoce el MTP ni la ruta de recurso, también debe pedir los registros DNS-SD: PTR, SRV y TXT (R-DIS.7).
En la LAN, mDNS hace el mismo trabajo sin servidor DNS. Un Endpoint que lo soporta implementa tanto el lado cliente como el lado servidor de RFC 6762 (R-DIS.3) y resuelve por mDNS cualquier nombre del dominio “.local.” (R-DIS.5). Los roles no son simétricos. Se espera que los Agentes se anuncien para que los Controladores los encuentren, y que los Controladores, en vez de anunciarse, descubran Agentes y respondan a sus consultas mDNS. Un Agente usa mDNS para resolver el nombre “.local.” de un Controlador cuando necesita enviarle una Notification (§3.5).
Anunciarse trae una obligación: un Endpoint que anuncia un MTP por mDNS debe escuchar en ese MTP a otros Endpoints que quieran iniciar una comunicación USP (R-DIS.4). Y como mDNS no cruza los límites de segmento de la LAN, la especificación describe un Discovery Proxy que repite lo que descubre entre segmentos (Apéndice IV.2).
¿Cómo son los registros DNS-SD de USP?
DNS-SD (RFC 6763) nombra y estructura registros DNS comunes para que los servicios se puedan descubrir: los registros
SRV y TXT describen un servicio, y los PTR ayudan a ubicarlos (§3.7). Un Service Instance Name sigue el patrón
<Instance>.<Service>.<Domain>, y en USP la instancia es el Endpoint ID del Endpoint (R-DIS.8). La parte del servicio
sale de los nombres que el Broadband Forum registró ante IANA (§3.7.1):
| MTP | Servicio del Agente | Servicio del Controlador |
|---|---|---|
| WebSocket | _usp-agt-ws._tcp |
_usp-ctr-ws._tcp |
| MQTT | _usp-agt-mqtt._tcp |
_usp-ctr-mqtt._tcp |
| STOMP | _usp-agt-stomp._tcp |
_usp-ctr-stomp._tcp |
| CoAP (obsoleto) | _usp-agt-coap._udp |
_usp-ctr-coap._udp |
El registro TXT agrega datos que no sirven como criterio de búsqueda (§3.7):
- Los registros de un Agente deben incluir
pathyname, ynamedebe coincidir con el ParameterFriendlyNamesi el Agente lo implementa (R-DIS.9, R-DIS.10). - Los registros de un Controlador deben incluir
path(R-DIS.11). - Un atributo
encrypt, que no lleva valor, indica que hace falta cifrado del MTP para conectarse (R-DIS.11a).
Lo que contiene path depende del MTP: la ruta de recurso de la URI WebSocket (R-WS.3), el destino STOMP al que se
suscribió el Endpoint (R-STOMP.31) o, en un Agente MQTT, su Topic de respuesta, el “reply to” (R-MQTT.36). En STOMP y
MQTT, los registros A y AAAA apuntan al broker, no al Endpoint (R-STOMP.32, R-MQTT.38).
Los Agentes también se pueden agrupar con registros PTR de subtipo, como _gateway._sub._usp-agt-ws._tcp (§3.7.1,
§3.7.3).
¿Cómo se reconocen los equipos CWMP y USP de una misma LAN?
TR-369 reutiliza un mecanismo de CWMP en el que un gateway y un equipo final intercambian datos de identidad por las mismas opciones DHCP específicas del fabricante, para que un ACS o un Controlador puedan saber si comparten LAN (§3.4). El Agente pone sus propios datos en sus solicitudes DHCP (R-DIS.2a), y un Agente que los recibe responde con los suyos en la respuesta DHCP (R-DIS.2b):
| Campo | Solicitud, DHCPv4 125 | Solicitud, DHCPv6 17 | Respuesta, DHCPv4 125 | Respuesta, DHCPv6 17 |
|---|---|---|---|---|
| DeviceManufacturerOUI | 1 | 11 | 4 | 14 |
| DeviceSerialNumber | 2 | 12 | 5 | 15 |
| DeviceProductClass | 3 | 13 | 6 | 16 |
El Agente que recibe la respuesta completa Device.GatewayInfo con ManufacturerOUI, ProductClass y SerialNumber, y pone
ManagementProtocol en “CWMP” (R-DIS.2c). Si un registro PTR de mDNS coincide con la dirección IP de la respuesta DHCP,
el Agente cambia ManagementProtocol a “USP” y guarda el Endpoint ID de ese registro (R-DIS.2d). Más sobre cómo
conviven los dos protocolos en TR-069 vs TR-369.
¿Qué pasa cuando el Agente ya encontró un Controlador?
Encontrar un Controlador no es lo mismo que confiar en él. Un Agente puede venir preconfigurado con certificados raíz o de Controladores de confianza, pero la especificación también permite que un Agente sin Controlador asociado confíe en el primero que descubra, o que un usuario apruebe desde una interfaz al Controlador descubierto (§3.1). Un Agente que acepta certificados autofirmados de Controladores debe darles un rol “untrusted” en el primer uso (R-SEC.6), que después tiene que elevar otro Controlador, un desafío (challenge) o un método ajeno a USP (§8.9.3).
La política también puede iniciar la conversación. El Agente envía una notificación OnBoardRequest para empezar el
on-boarding con un Controlador, por ejemplo cuando se conecta por primera vez y lo descubre por DHCP (§3.8). Sale con
send_resp en true y se reintenta hasta que el Controlador la confirma con un Notify Response (R-NOT.6, R-NOT.6a).
Los dos roles se explican en Agente vs Controlador USP, los transportes en transportes USP comparados y el protocolo completo en qué es TR-369.
Preguntas frecuentes
- ¿Qué opciones DHCP usa USP para descubrir al Controlador?
- El Agente pregunta con la DHCPv4 V-I Vendor Class Option (124) o la opción DHCPv6 Vendor Class (16), con el número de empresa del Broadband Forum, 3561, y el texto “usp”. La respuesta llega en la opción 125 de DHCPv4 o la 17 de DHCPv6, con las subopciones 25 a 29 para la URL o el FQDN del Controlador, un código de aprovisionamiento, dos ajustes de reintento y el Endpoint ID del Controlador.
- ¿Cuál es el nombre de servicio DNS-SD de un Controlador USP?
- Depende del MTP. Un Controlador al que se llega por WebSocket usa _usp-ctr-ws._tcp y un Agente usa _usp-agt-ws._tcp. MQTT y STOMP tienen sus propios nombres, como _usp-ctr-mqtt._tcp y _usp-ctr-stomp._tcp. El nombre de instancia que va delante del servicio es el Endpoint ID.
- ¿Un Agente USP tiene que usar DHCP para encontrar a su Controlador?
- No. TR-369 menciona DHCP, DNS y mDNS como ejemplos, junto con un Controlador preconfigurado en el firmware, uno configurado por un Controlador ya conocido y de confianza, y un mecanismo de arranque aparte, como una interfaz de usuario. La propia especificación aclara que la lista no es exhaustiva.
- ¿Es seguro descubrir el Controlador USP por DHCP?
- DHCP no tiene un mecanismo de seguridad propio. La especificación recomienda a los ISP usarlo para configurar Controladores solo cuando el proveedor del servicio pueda garantizar la seguridad del enlace entre el servidor DHCP y el Agente, y establecer la confianza con certificados preconfigurados u otros medios.
- ¿Cómo encuentra un Controlador a sus Agentes?
- El Controlador conoce el Endpoint ID, los datos de MTP y las credenciales de un Agente cuando este se conecta por primera vez, y un Controlador en la LAN también puede obtener los datos de MTP de un Agente por mDNS. Cada Controlador lleva su propio registro de Agentes conocidos.
- ¿Qué es un OnBoardRequest en USP?
- Una notificación que envía el Agente para empezar el on-boarding con un Controlador, por ejemplo cuando se conecta por primera vez y lo descubre por DHCP. Se envía pidiendo respuesta y se reintenta hasta que el Controlador la confirma con un Notify Response.
Fuentes
- Broadband Forum, TR-369 – The User Services Platform, Issue 1 Amendment 5 (USP 1.5), enero de 2026.
- Dodderware, documentación de producto e ingeniería de DWS Support.
- §3Descubrimiento y anuncio
- §3.1, §3.2Información del Controlador en el Agente e información del Agente en el Controlador
- §3.3, §3.3.1Uso de DHCP para obtener la información del Controlador, subopciones DHCP
- §3.4Uso de DHCP para intercambiar GatewayInfo con equipos CWMP
- §3.5, §3.6Uso de mDNS y de DNS
- §3.7Registros DNS-SD, nombres de servicio USP registrados ante IANA y ejemplos
- §3.8, §7.6.3.4SendOnBoardRequest() y la notificación OnBoardRequest
- §4.2, §4.3.1, §4.3.2, §4.4.4, §4.5.6, §4.6.1Requisitos de descubrimiento de cada MTP, el binding obsoleto de CoAP
- §8.5, §8.9.3Certificados autofirmados y asignación de roles a los Controladores
- Apéndice IV.2, Issue HistoryDiscovery Proxy, cambios en el descubrimiento en USP 1.2 y 1.3
TR-369 © The Broadband Forum. Todos los derechos reservados. Citado brevemente y parafraseado con fines explicativos; los diagramas son de Dodderware.