Scaricare lo stesso aggiornamento Windows centinaia di volte dalla rete Internet è uno spreco che, nelle aziende con molte postazioni o sedi collegate tramite WAN, può trasformarsi rapidamente in un problema operativo. Microsoft Delivery Optimization (Ottimizzazione recapito, in italiano) nasce proprio per evitare che ogni PC debba necessariamente recuperare da zero gli stessi dati: Windows può riutilizzare copie già presenti nella rete locale, distribuirle tra dispositivi oppure appoggiarsi a una cache dedicata.
Microsoft ha introdotto la tecnologia Ottimizzazione recapito giù in Windows 10 versione 1511 e negli anni ne ha ampliato parecchio capacità e controlli, fino a integrarla con Windows Update, Microsoft Store, Microsoft 365 Apps, Microsoft Defender, Intune e altri servizi. Sui sistemi Windows 11 il peer-to-peer locale risulta normalmente disponibile con la modalità di download impostata su Dispositivi nella rete locale; Windows Server segue invece impostazioni predefinite differenti.
Microsoft torna ora sull’argomento con indicazioni molto più concrete per gli amministratori, soprattutto per patching su larga scala, filiali con poca banda e provisioning tramite Windows Autopilot.
Il principio è semplice: scaricare da Internet solo quando serve
Delivery Optimization funziona come downloader HTTP con capacità peer-to-peer: prima di richiedere un contenuto ai server Microsoft (patch mensili, aggiornamenti qualitativi e di funzionalità, driver, definizioni di Microsoft Defender, Microsoft 365 Apps, pacchetti Microsoft Store e Win32,…), cioè, Windows può cercare una copia presso altri PC autorizzati oppure all’interno della Microsoft Connected Cache, se presente. Se non trova nulla in locale, passa normalmente alla sorgente Internet.
Microsoft consiglia agli amministratori Intune di partire dal Settings Catalog e modificare solo poche policy fondamentali. Per una rete Windows 11 ordinaria, DODownloadMode=1 mantiene la condivisione all’interno della LAN ed è già il valore predefinito sui client.
Microsoft suggerisce inoltre di portare DOMaxCacheSize dal 20% predefinito al 20-30%, abbassare DOMinFileSizeToCache da 50 MB a 5 MB e aumentare DOMaxCacheAge da 3 a 14 giorni. In questo modo Windows conserva più contenuti e più a lungo, aumentando le probabilità che un altro PC possa riutilizzarli.
Il limite mensile di upload può invece rimanere a 20 GB nella maggior parte degli ambienti. Non conviene inoltre gestire la stessa policy contemporaneamente tramite Settings Catalog, profili personalizzati e altri strumenti: Microsoft raccomanda di scegliere un unico punto di configurazione per evitare conflitti difficili da diagnosticare.
Microsoft suggerisce anche la regola DORestrictPeerSelectionBy=1 per restringere ulteriormente la selezione dei peer alla subnet. È una configurazione particolarmente utile quando l’obiettivo principale consiste nell’evitare che il traffico P2P attraversi collegamenti WAN.
Più VLAN nella stessa sede: usare i gruppi
La modalità LAN diventa meno efficace quando una filiale utilizza diverse subnet o VLAN (segmentazione della rete): due PC fisicamente nello stesso edificio potrebbero infatti non riconoscersi come peer.
In questi casi Microsoft consiglia l’uso della regola DODownloadMode=2, chiamata Group Mode, insieme a un DOGroupID specifico per quella sede: tutti i computer che condividono lo stesso identificatore possono partecipare allo stesso gruppo di distribuzione anche se appartengono a subnet differenti.
Come mettere un limite sull’uso della banda durante il giorno
Microsoft presenta anche la policy DOPercentageMaxBackgroundBandwidth che consente di limitare la banda occupabile con il trasferimento degli aggiornamenti di Windows. Si può partire autorizzando l’impiego di un 10-25% della banda disponibile; DOSetHoursToLimitBackgroundDownloadBandwidth permette invece di applicare il limite soltanto nelle ore desiderate e lasciare più banda agli aggiornamenti durante la notte.
Il trucco più efficace: aggiornare prima pochi PC
Una delle raccomandazioni Microsoft più utili non richiede particolari competenze di networking. Conviene evitare di avviare lo stesso aggiornamento contemporaneamente su tutti i dispositivi.
Un primo seeder ring composto dal 5-10% dei PC scarica l’aggiornamento in anticipo e popola le cache. Quando partono i gruppi successivi, una parte dei dati è già disponibile in locale.
Il metodo ha anche un secondo vantaggio: permette di verificare su un campione ristretto che l’aggiornamento non introduca problemi prima di estendere la distribuzione. Patching graduale e caching, insomma, possono lavorare insieme.
Le policy di Ottimizzazione recapito a colpo d’occhio
| Policy | Valore consigliato | A cosa serve |
|---|---|---|
| DODownloadMode | 1 per LAN, 2 per Group Mode | Definisce dove cercare i peer da cui scaricare i contenuti |
| DORestrictPeerSelectionBy | 1 | Limita la selezione dei peer alla stessa subnet |
| DOMaxCacheSize | 20-30%; fino al 50% nei provisioning massivi | Stabilisce quanto spazio disco può occupare la cache |
| DOMaxCacheAge | 7-14 giorni | Indica per quanto tempo mantenere i contenuti nella cache |
| DOMinFileSizeToCache | 5 MB | Permette di conservare in cache anche file relativamente piccoli |
| DOMonthlyUploadDataCap | 20 GB; 0 nei deployment controllati | Limita la quantità di dati che un PC può inviare agli altri peer ogni mese |
| DOPercentageMaxBackgroundBandwidth | 10-25% su WAN limitate; 25-50% con Internet locale | Limita la banda utilizzabile dai download in background |
| DOSetHoursToLimitBackgroundDownloadBandwidth | Orario lavorativo | Applica i limiti di banda soltanto nelle fasce orarie desiderate |
| DOGroupID | Un ID distinto per ogni sede | Raggruppa dispositivi di subnet diverse nello stesso insieme di peer |
| DOCacheHost | FQDN del server MCC | Indica ai client quale server Microsoft Connected Cache utilizzare |
| DOCacheHostSource | 1 per discovery via DHCP | Permette di individuare Connected Cache tramite DHCP Option 235 |
| DOGroupIdSource | 3 per DHCP | Permette di ottenere dinamicamente il Group ID tramite DHCP Option 234 |
| DODelayForegroundDownloadFromHttp | 30 secondi | Definisce quanto attendere una sorgente locale prima di usare HTTP per i download foreground |
| DODelayBackgroundDownloadFromHttp | 60 secondi | Definisce quanto attendere una sorgente locale prima di usare HTTP per i download background |