Si tu organización distribuye archivos grandes o actualizaciones de software a múltiples oficinas, habilitar BranchCache puede reducir drásticamente el uso de ancho de banda WAN y acelerar el acceso a los datos. Muchos administradores se preguntan si es posible aprovechar un Controlador de Dominio (DC) existente como servidor Hosted Cache para evitar desplegar hardware adicional. La respuesta corta es sí. Este artículo profundiza en los detalles técnicos, explica cómo evitar el mensaje de error Hosted cache SCP registration is not supported on writable domain controllers
y ofrece una guía completa de implementación y buenas prácticas.
Conceptos básicos de BranchCache
Objetivo de la funcionalidad
BranchCache es una característica de Windows Server y Windows client que almacena en caché contenido HTTP(S), SMB y BITS dentro de la red corporativa. Cuando un segundo equipo solicita el mismo recurso, lo obtiene localmente en lugar de descargarlo otra vez desde el servidor principal o a través de la WAN.
Modos de BranchCache
- Distributed Cache Mode: Cada cliente guarda en su disco los fragmentos de los archivos y los anuncia a los demás. No existe un servidor dedicado. Es ideal para sucursales muy pequeñas.
- Hosted Cache Mode: Un servidor central de la sucursal consolida el contenido. Los clientes primero preguntan a este servidor; si no encuentra el hash, descargan desde la sede y lo suben al Hosted Cache. Aporta mejor rendimiento y gestión más sencilla.
Controlador de Dominio como servidor BranchCache hospedado
Un DC es, ante todo, un repositorio de Active Directory. Sin embargo, sigue siendo un servidor Windows Server completo con la capacidad de hospedar servicios adicionales, incluyendo BranchCache. Microsoft admite oficialmente la instalación conjunta de ambos roles, siempre que se cumplan los requisitos de la plataforma y se apliquen buenas prácticas de seguridad y rendimiento.
¿Por qué aparece el error de -RegisterSCP
?
El cmdlet Enable-BCHostedServer -RegisterSCP
intenta crear un objeto Service Connection Point (SCP) en AD para que los equipos cliente descubran de forma automática la URL del Hosted Cache. En un controlador de dominio ese paso no es necesario, porque el DC ya es miembro de la propia base de datos LDAP donde se alojaría el SCP. Por consiguiente, el comando devuelve un error preventivo:
Hosted cache SCP registration is not supported on writable domain controllers.
La solución es ejecutar el cmdlet sin el parámetro -RegisterSCP
o preparar el servicio mediante el Administrador del servidor.
Requisitos previos
- Sistema operativo: Windows Server 2012, 2012 R2, 2016, 2019, 2022 o posterior.
- Clientes compatibles: Windows 8/8.1/10/11 o posterior. Windows 7 requiere actualización KB 976932 y un certificado TLS.
- Dominio AD: No es obligatorio para BranchCache, pero simplifica la detección automática de servidores.
- Hardware: Disco y CPU suficientes para almacenar la caché (reservar al menos el 5–10 % del tamaño total de los datos que se espera distribuir).
- Puertos: TCP 443 y 80 (HTTPS/HTTP) para los protocolos de transporte; UDP 3702 (WS-Discovery) y TCP 80 (HTTP) para BranchCache.
Guía paso a paso para la instalación
- Instalar la característica BranchCache → Hosted Cache
Desde el Server Manager abre Add roles and features o, si prefieres PowerShell:Add-WindowsFeature BranchCache-HostedCache
- Habilitar el servicio Hosted Cache
Ejecuta:Enable-BCHostedServer
No incluyas-RegisterSCP
. - Comprobar el estado
Get-BCStatus
Deberías ver:HostedCacheServerIsEnabled : True HostedCacheScpRegistrationEnabled : True
- Configurar GPO para los clientes
En la misma GPO donde habilitas BranchCache para SMB/BITS/HTTP, especifica la URL del servidor Hosted Cache o selecciona “descubrimiento automático”. - Reiniciar los servicios afectados
No suele requerirse reinicio del DC; basta con reiniciarLanmanServer
yPeerDistSvc
si fuese necesario:Restart-Service LanmanServer, PeerDistSvc
Tabla resumen de la solución
Paso | Detalle | Resultado |
---|---|---|
1 | Instalar la característica BranchCache → Hosted Cache con Server Manager o Add-WindowsFeature BranchCache-HostedCache | BranchCache se habilita en el DC |
2 | Verificar con Get-BCStatus | Confirma HostedCacheServerIsEnabled : True |
3 | Entender el error | -RegisterSCP no se usa en DCs porque el SCP se gestiona implícitamente |
4 | Requisitos de BranchCache | Windows Server 2012+ y clientes Windows 8/10+; AD recomendado pero opcional |
5 | Buenas prácticas | Monitorizar Visor de eventos y usar TLS para clientes Windows 7 |
Verificación y pruebas de rendimiento
Comprobación desde el cliente
Get-BCNetworkConfiguration
Get-BCDataCache
Get-BCCacheStatus
El primer acceso a un archivo descargará datos desde la sede y los subirá al servidor Hosted Cache. El segundo cliente notará una reducción drástica en los tiempos de descarga (habitualmente del 60–90 %) y en la utilización del enlace WAN.
Uso del Visor de eventos
En Aplicación y servicios → Microsoft → Windows → BranchCache-Client/Operational verás los eventos 17 (Cache hit) y 28 (Cache Miss), útiles para confirmar la eficacia de la caché.
Rendimiento, escalabilidad y seguridad
Impacto en los roles de DC
BranchCache consume CPU al calcular hashes (SHA-256) y utiliza disco para el contenido. Si tu controlador de dominio ya está sobredimensionado, el impacto será mínimo. Para entornos con miles de usuarios autenticándose en el mismo DC, asigna discos rápidos (SSD) e incrementa la RAM para el caché.
Cotas de caché recomendadas
La regla general es reservar entre 5 % y 10 % del volumen total de datos servidos. Ajusta con:
Set-BCCache -Percentage 10
Protección de datos
- Transporte cifrado: Si los contenidos se sirven vía HTTPS o SMB Signing, los hashes no exponen datos claros.
- Certificados TLS: Obligatorios si debes dar soporte a Windows 7 o si quieres forzar seguridad adicional. Instálalos con
Enable-BCHostedServer -CertStoreLocation "Cert:\LocalMachine\My\thumbprint"
. - ACLs: BranchCache respeta los permisos NTFS y SMB; los usuarios solo recuperan datos para los que ya poseen derechos.
Troubleshooting: errores habituales y su solución
Mensaje “0x80070005 Access denied” al habilitar en el cliente
Aplica la política de “Allow BranchCache” y confirma que el cliente ejecuta como administrador o que la GPO ya ha surtido efecto.
Cache miss constante
- Verifica que el servidor de origen tenga BranchCache habilitado para SMB (
Set-SmbServerConfiguration -EnableSMB2Protocol $true -EnableSMBBranchCache $true
). - Comprueba que el hash del archivo exista:
Get-BCCache -FileHash
.
El servicio PeerDist no arranca
- Confirma que el tipo de inicio está en Automático:
Set-Service PeerDistSvc -StartupType Automatic
. - Revisa conflictos de puertos o políticas de seguridad que bloqueen WS-Discovery (UDP 3702).
Buenas prácticas adicionales
- Redundancia: Si tienes varios DCs en la misma sucursal, instala BranchCache únicamente en uno o balancea tráfico con DNS round‑robin.
- Auditoría: Habilita registro de eventos detallado para rastrear cuántos hits y misses produce BranchCache. Esto ayuda a justificar el retorno de inversión.
- Mantenimiento: Limpia la caché ocasionalmente con
Clear-BCCache
para eliminar datos obsoletos, sobre todo tras grandes actualizaciones de software. - Patch management: Mantén el servidor actualizado; BranchCache ha recibido optimizaciones de rendimiento y correcciones de seguridad en parches acumulativos.
- Supervisión proactiva: Usa Performance Monitor y los contadores “BranchCache — Cache Hits/sec” y “BranchCache — Cache Misses/sec”.
Preguntas frecuentes
¿Cuánto espacio consume realmente la caché?
Depende de la configuración. Con un límite del 10 %, un servidor que aloja 500 GB en archivos compartidos reservaría hasta 50 GB para BranchCache.
¿Puedo convertir de Distributed a Hosted Cache sin reinstalar?
Sí. Deshabilita BranchCache en los clientes, configura la GPO para apuntar al nuevo servidor y habilita de nuevo la característica. Los clientes reconectarán automáticamente.
¿Qué ocurre si el controlador de dominio falla?
Los clientes volverán a descargar desde el servidor de origen a través de la WAN. Para alta disponibilidad, configura otro DC o un servidor dedicado como Hosted Cache.
Conclusión
Un Controlador de Dominio puede funcionar perfectamente como servidor BranchCache Hosted Cache y así optimizar la distribución de contenidos sin invertir en infraestructura adicional. El error relacionado con -RegisterSCP
se debe simplemente a que en un DC la creación del SCP es innecesaria. Sigue los pasos descritos, monitoriza el rendimiento y aplica las buenas prácticas para garantizar que los usuarios obtengan una experiencia rápida y estable mientras tu enlace WAN se mantiene libre de congestión.