Windows Network Bindings

Windows Network Bindings

1024 695 NM Professionals

I bindings di Windows:

Nell’inglesismo tipico dell’informatica Italiana, con bindings o Network bindings, in Windows, si intendono quelle associazioni tra i componenti software di rete (protocolli, servizi, driver e client) e gli adattatori di rete (schede fisiche o virtuali) consentendo al sistema operativo di instradare il traffico di rete, esporre servizi a livello di rete e stabilire le funzionalità disponibili su ciascuna interfaccia attraverso i driver appropriati. Di seguito una descrizione per concetti chiave.

Cosa sono:

Un binding è un collegamento logico che mette in comunicazione un componente di rete (ad esempio il protocollo IPv4, IPv6, NetBIOS, il client o il servizio di condivisione file e stampanti) con un adattatore di rete specifico.
Senza binding, un protocollo o servizio esisterebbe come componente software ma non sarebbe attivo su nessuna interfaccia; il binding lo rende effettivamente operativo su quella interfaccia.

Componenti coinvolti:

Protocolli: es. ms_tcpip (IPv4), ms_tcpip6 (IPv6). Forniscono le regole di comunicazione, indirizzamento e instradamento.
Client: es. ms_msclient (Client for Microsoft Networks). Consentono al sistema di autenticarsi e usare risorse remote.
Servizi/Provider: es. ms_server (File and Printer Sharing). Espongono servizi locali alla rete.
Driver/NDIS bindings: driver di basso livello che collegano lo stack TCP/IP al dispositivo fisico (NDIS miniport, filter driver, protocol drivers).
Tipicamente nominati in formato ComponentID/Name/DisplayName: ogni binding ha identificatori diversi — Name (codice), DisplayName (testo leggibile), ComponentID (ID tecnico usato da cmdlet/strumenti).

Livelli di binding (concetto):

Stack di rete Windows è stratificato: driver hardware ↔ NDIS ↔ protocolli ↔ servizi/applicazioni. I binding stabiliscono i punti di collegamento fra questi livelli.
Esistono binding a livello di dispositivo (es. protocollo legato al miniport) e binding logici (es. servizi Microsoft legati all’interfaccia).

Come si presentano al Sistema Operativo:

In PowerShell/NetAdapterBinding: GetNetAdapterBinding mostra tutte le associazioni per ogni InterfaceAlias (o Name). Le proprietà tipiche: Name, DisplayName, ComponentID, InterfaceAlias/InterfaceDescription, Enabled.
In Pannello di controllo (vecchi sistemi): nella finestra Proprietà della scheda di rete si vede la lista dei componenti installati (checkbox per abilitare/disabilitare).
Nel registro di sistema e nelle impostazioni NDIS: i driver e i binding sono rappresentati da chiavi/valori che il sistema usa al boot per caricare e collegare i componenti.

Perché i binding sono importanti:

Funzionalità: abilitare un binding rende disponibile il relativo servizio o protocollo su quell’interfaccia (es. abilitare File and Printer Sharing permette alle altre macchine di accedere alle condivisioni sulla specifica NIC).
Sicurezza: disabilitare binding inutili riduce la superficie di attacco (es. disabilitare NetBIOS, SMB o componenti non necessari su interfacce esposte).
Prestazioni e troubleshooting: problemi di rete possono dipendere da binding errati o conflitti fra filter drivers; conoscere i binding aiuta a diagnosticare.
Policy e gestione: in ambienti aziendali si possono imporre binding mediante Group Policy o script per uniformare configurazioni.

Comportamenti e implicazioni pratiche:

Per-interfaccia: i binding sono specifici per ogni interfaccia — lo stesso protocollo può essere abilitato su alcune NIC e disabilitato su altre.
Persistenza: le modifiche ai binding vengono memorizzate (registro/driver) e sopravvivono ai riavvii; alcuni cambiamenti richiedono riavvio o riavvio dei servizi per avere effetto completo.
Dipendenze: alcuni componenti dipendono l’uno dall’altro; disabilitare un binding può rendere inutilizzabile un servizio correlato.
Ordine e priorità: specialmente per le route e per i driver NDIS, l’ordine dei driver/filter può influenzare il comportamento (es. filter driver per autenticazione, monitoraggio o virtualizzazione).

Strumenti per visualizzare e gestire i binding:

PowerShell: Get-NetAdapterBinding, Disable-NetAdapterBinding, Enable NetAdapterBinding
Netsh / Win32_NetworkAdapterConfiguration / WMI: metodi alternativi o retrocompatibili.
GUI: Proprietà connessione di rete (in Windows classico), Gestione dispositivi (per driver).
Registro di sistema / NDIS diagnostics per casi avanzati.

Di seguito due semplici script Powershell, utili a Disabilitare o Abilitare i bindings sulle Schede di rete, siano queste fisiche o virtuali.

Il primo elenca i binding attivi su ciascuna scheda di rete installata.

Il secondo di compone di una dichiarazione di array che contiene l’elenco dei nomi dei bindings da trattare, la funzione Enable-NetAdapterBinding ricorsiva per abilitare i bindings dell’elenco precedente e una funzione Disable-NetAdapterBinding ricorsiva per diabilitare i bindings dell’elenco precedente.

# -----------------------------------------------------------------------------
# - File Name : Get-NIC-Grouped-NetBindings.ps1
# - Author : Nicola Montemurro
# - Administrator : Nicola Montemurro - Mobile: -
# - Create : 07/02/2022
# - Last Update : 07/02/2022
# - Description : Elenca Network Bindings raggruppati per NIC
# - Position : C:\vmtools\ps
# - Note : NON modificare senza AUTORIZZAZIONE dell'AMMINISTRATORE
# ----------------------------------------------------------------------------

Get-NetAdapterBinding -Name "*" | Where-Object { $_.Enabled -eq $true } | Group-Object -Property InterfaceAlias |
   ForEach-Object {
      Write-Output "Adapter: $($_.Name)" $_.Group | Format-Table Name,DisplayName,ComponentID -AutoSize
      ""
   }
# -----------------------------------------------------------------------------
# - File Name : Set-NIC-NetBindings.ps1
# - Author : Nicola Montemurro
# - Administrator : Nicola Montemurro - Mobile: -
# - Create : 07/02/2022
# - Last Update : 07/02/2022
# - Description : Disabilita/Abilita Network Bindings
# - Position : C:\vmtools\ps
# - Note : NON modificare senza AUTORIZZAZIONE dell'AMMINISTRATORE
# ----------------------------------------------------------------------------

$Bindings = @(
    "ms_server",
    "ms_msclient",
    "ms_netbios",
    "ms_tcpip6"
)

# Esempio: abilitare tutti i binding su interfacce che corrispondono a "VLAN9*"
foreach ($b in $Bindings) {
    Enable-NetAdapterBinding -Name "VLAN9*" -ComponentID $b -Confirm:$false -ErrorAction SilentlyContinue
}

# Esempio: disabilitare tutti i binding su interfacce che corrispondono a "Ethernet*"
foreach ($b in $Bindings) {
    Disable-NetAdapterBinding -Name "Ethernet*" -ComponentID $b -Confirm:$false -ErrorAction SilentlyContinue
}

Esempi di binding comuni e loro uso:

  • ms_tcpip / ms_tcpip6 — rendono disponibili IPv4/IPv6 sull’interfaccia.
  • ms_msclient — permette accesso a risorse di rete Microsoft (client SMB).
  • ms_server — abilita la condivisione di file e stampanti (server SMB).
  • ms_netbios / NetBIOS over TCP/IP — usato da vecchi servizi/compatibilità; spesso disabilitato per sicurezza.
  • Driver di terze parti / filter drivers — usati da VPN, antivirus, monitoraggio traffico;

Le buone pratiche:

Abilitare solo ciò che serve su ciascuna interfaccia (principio del minimo privilegio funzionale).

In conclusione:

I binding di Windows sono le connessioni configurabili fra componenti di rete e adattatori: determinano quali protocolli, servizi e client sono attivi su ciascuna interfaccia, influenzando funzionalità, sicurezza e comportamento di rete, conoscerli e gestirli correttamente è fondamentale per una configurazione di rete sicura e stabile.

    Preferenze Privacy

    Quando visiti il nostro sito web, possono essere memorizzate alcune informazioni, di servizi specifici, tramite il tuo browser, di solito sotto forma di cookie. Qui puoi modificare le tue preferenze sulla privacy. Il blocco di alcuni cookie può influire sulla tua esperienza sul nostro sito Web e sui servizi che offriamo.

    Questo sito web utilizza cookie, principalmente di terze parti. Personalizza le preferenze sulla privacy e/o acconsenti all'utilizzo dei cookie.