Sur Windows Server 2022, il arrive que des interfaces VLAN repassent en Public après un redémarrage, cassant des règles de pare‑feu créées pour Domaine/Privé. Voici une méthode éprouvée, pas à pas, pour corriger durablement le problème tout en sécurisant l’hôte de sauvegarde.
Les profils réseau VLAN repassent en Public après chaque redémarrage (Windows Server 2022)
Vue d’ensemble de la question
Un serveur de sauvegarde utilise le NIC Teaming (LBFO ou SET) et expose plusieurs interfaces VLAN taguées. Le logiciel de backup déploie des règles de pare‑feu Windows qui n’autorisent les flux entrants que sur les profils Domain/Private. Après chaque reboot, toutes (ou une partie) des interfaces VLAN basculent de Privé à Public. Les corrections appliquées manuellement via PowerShell ou en modifiant le Registre ne tiennent pas : au prochain démarrage, le profil redevient Public.
Pourquoi cela arrive-t-il ?
La cause la plus fréquente est le service Network Location Awareness (NLA), chargé de classifier chaque connexion en DomainAuthenticated, Private ou Public. Lors du boot, si un VLAN est vu comme réseau non identifié (pas de passerelle, pas de résolution DNS, impossibilité de joindre un contrôleur de domaine, etc.), NLA lui attribue par défaut le profil Public. À cela s’ajoute parfois un agent de sécurité (EDR/AV) qui force un profil réseau, ou qui retarde la pile réseau à l’initialisation, ce qui conduit NLA à trancher en Public.
Signes typiques
Get-NetConnectionProfile
montre NetworkCategory = Public sur les interfaces VLAN.- Le journal de votre backup signale « port fermé » ou « connexion refusée » au démarrage, puis OK après une intervention manuelle.
- Le changement en Privé via PowerShell fonctionne jusqu’au prochain redémarrage.
Comprendre la logique de NLA en environnement VLAN
NLA détermine le profil en combinant des signaux (présence d’un domaine AD, signature de passerelle, network signature, etc.). Sur des VLAN « sans Internet » ni passerelle (typiques en SAN, iSCSI, ou VLAN d’administration de baies), ces signaux manquent ; le réseau est alors classé Unidentified et retombe sur la règle par défaut : Public. De plus, au boot, l’ordre d’initialisation (teaming, pilotes, filtres NDIS, agent EDR, services AD/DNS) rend la détection encore plus fragile.
Solutions pérennes (recommandées)
Forcer le type pour les réseaux non identifiés (stratégie locale/GPO)
La manière la plus propre d’indiquer à NLA « considère mes réseaux non identifiés comme Privés » :
- Ouvrez secpol.msc → Paramètres de sécurité → Network List Manager Policies → Unidentified Networks.
- Définissez :
- Location type = Private
- User permissions = User cannot change location
En environnement AD, appliquez la même politique via GPO :
Configuration ordinateur → Paramètres Windows → Paramètres de sécurité → Network List Manager Policies → Unidentified Networks.
Effet : à chaque démarrage, tout VLAN non identifiable sera classé Privé, éliminant le retour en Public.
Vérifier/neutraliser les overrides d’un antivirus/EDR
Certains agents apportent leur propre moteur de pare‑feu/profil. Si activé, il peut écraser le profil déterminé par NLA ou empêcher l’application de la politique précédente. Pour trancher :
- Désactivez temporairement la fonction « Firewall/Network protection » de l’EDR sur ce serveur (ou basculez en mode observation).
- Redémarrez et observez si le profil reste Privé sur les VLAN.
- Si confirmé, désactivez durablement la gestion de profil par l’agent sur ce serveur ou créez une règle d’exclusion.
Mesures complémentaires (au besoin)
PowerShell : utile pour corriger, moins pour la persistance
Pour rebasculer rapidement tous les VLAN en Privé :
Get-NetConnectionProfile | Where-Object InterfaceAlias -like 'VLAN*' |
Set-NetConnectionProfile -NetworkCategory Private
Cela ne résiste pas à NLA/GPO à l’amorçage ; utilisez‑le comme outil de remédiation, pas comme solution durable.
Règles de pare‑feu de secours ciblées
Pour garantir la continuité du backup même si un VLAN repasse brièvement en Public, ajoutez des règles Public étroitement bornées :
# Exemple : autoriser le port 2500 TCP uniquement depuis les sous-réseaux des VLAN
New-NetFirewallRule -DisplayName "Backup - VLAN100 (Public)" -Direction Inbound -Action Allow `
-Protocol TCP -LocalPort 2500 -Profile Public -RemoteAddress 10.100.0.0/24 `
-InterfaceAlias "VLAN100"
New-NetFirewallRule -DisplayName "Backup - VLAN200 (Public)" -Direction Inbound -Action Allow ` -Protocol TCP -LocalPort 2500 -Profile Public -RemoteAddress 10.200.0.0/24`
-InterfaceAlias "VLAN200"
Astuce : combinez -Profile Public
avec -InterfaceAlias
et -RemoteAddress
pour limiter strictement la surface d’exposition.
Registre : à connaître mais à éviter pour la persistance
Chemin : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}\Category
Valeurs : 0 = Public, 1 = Private, 2 = DomainAuthenticated
Problème : NLA peut réécrire cette valeur au démarrage. Préférez la politique (Unidentified Networks = Private) plutôt que de verrouiller les ACL du Registre, qui peut provoquer des effets de bord et gêner d’autres services.
Procédure pas à pas recommandée
- Établissez la cartographie des interfaces.
Get-NetAdapter | Sort-Object Name | Format-Table Name, InterfaceDescription, ifIndex, Status Get-NetIPConfiguration | Format-Table InterfaceAlias, IPv4Address, IPv4DefaultGateway, DNSServer Get-NetConnectionProfile | Format-Table Name, InterfaceAlias, NetworkCategory
- Confirmez l’absence de passerelle/DNS sur les VLAN concernés. Les VLAN d’administration/stockage n’ont souvent ni passerelle ni DNS ; attendez‑vous donc à l’état « non identifié ».
- Appliquez la politique NLA. Unidentified Networks → Private + User cannot change location (via secpol.msc ou GPO).
- Contrôlez les agents de sécurité. Désactivez toute prise en main des profils pare‑feu par l’EDR pour ce serveur.
- Redémarrez. Vérifiez que
Get-NetConnectionProfile
retourne Private pour chaque VLAN. - Ajoutez des règles « sauvegarde » de secours côté Public. Ciblez précisément les sous‑réseaux VLAN et, si possible, les IP des pairs de sauvegarde.
- Documentez. Notez la configuration GPO et les interfaces couvertes, pour faciliter les audits ultérieurs.
Tableaux récapitulatifs utiles
Symptômes vs. causes probables
Symptôme | Cause la plus probable | Action recommandée |
---|---|---|
VLAN retourne en Public à chaque boot | NLA voit un réseau non identifié | GPO/Local Policy : Unidentified = Private |
Profil change malgré la GPO | Agent EDR impose un profil | Désactiver la gestion de profil par l’EDR |
Règles de backup inactives au démarrage | Ordre d’initialisation, profil temporaire Public | Règles Public de secours ciblées |
Modif Registre non persistante | NLA réécrit Category | Éviter le Registre, préférer politique |
Valeurs de Category dans le Registre
Valeur | Signification | Remarques |
---|---|---|
0 | Public | Par défaut si réseau non identifié |
1 | Private | À privilégier pour VLAN internes |
2 | DomainAuthenticated | Attribué quand le domaine est joignable |
Cas particuliers et bonnes pratiques
Serveur membre d’un domaine mais VLAN sans accès au DC
Un même hôte peut avoir :
- Un NIC « management » avec profil DomainAuthenticated.
- Des VLAN de données/stockage sans route vers un DC → Unidentified.
Ce n’est pas un problème si vous forcer Unidentified = Private. Évitez d’essayer de faire joindre le DC à ces VLAN juste pour « gagner » un profil Domain ; ce serait un anti‑pattern réseau et sécurité.
NIC Teaming (LBFO/SET) et ordre d’initialisation
Le teaming crée un adaptateur logique parent ; les VLAN sont des adaptateurs virtuels qui en dépendent. Au démarrage, si le parent ou un filtre (QoS, EDR, capture) n’est pas prêt, NLA évalue « réseau non identifié ». D’où l’intérêt d’une politique Unidentified = Private pour éliminer les aléas d’ordre d’initialisation.
Politique « Attendre la connexion réseau à l’ouverture de session »
Dans certains contextes, activer Toujours attendre le réseau lors du démarrage et de l’ouverture de session de l’ordinateur (stratégie de groupe) améliore la cohérence de l’application GPO au boot. Ce n’est pas une solution au profil VLAN, mais cela évite des décalages d’application de stratégies.
IPv6, DNS suffix et signatures réseau
La présence d’IPv6 ou d’un suffixe DNS n’est pas, à elle seule, une garantie de profil Privé. L’important est d’indiquer à NLA ce qu’il doit faire des réseaux non identifiés. Gardez la pile IPv6 activée si vos sauvegardes l’exigent ; la politique NLA s’applique de façon identique.
Diagnostics et validation
Après configuration, vérifiez :
# 1) État du service NLA
Get-Service NlaSvc | Format-Table Name, Status, StartType
# 2) Profils actuels
Get-NetConnectionProfile |
Sort-Object InterfaceAlias |
Format-Table InterfaceAlias, Name, NetworkCategory, IPv4Connectivity
# 3) Règles actives (extraits)
netsh advfirewall firewall show rule name=all dir=in profile=public | findstr /I "Backup VLAN"
Vous pouvez également consulter le journal Applications and Services Logs → Microsoft → Windows → NlaSvc → Operational pour suivre la chronologie de classification au démarrage.
Exemples concrets de règles de continuité
Si votre solution de sauvegarde utilise plusieurs ports, créez des groupes de règles. Exemple pour Veeam/logiciel générique TCP :
$ports = 2500, 6180, 9401
$vlans = @(
@{Alias='VLAN100'; Subnet='10.100.0.0/24'},
@{Alias='VLAN200'; Subnet='10.200.0.0/24'}
)
foreach (\$v in \$vlans) {
foreach (\$p in \$ports) {
New-NetFirewallRule -DisplayName "Backup \$(\$v.Alias) P\$p (Public)" ` -Direction Inbound -Action Allow -Protocol TCP -LocalPort $p`
-Profile Public -RemoteAddress \$v.Subnet -InterfaceAlias \$v.Alias | Out-Null
}
}
Ajoutez des règles sortantes si nécessaire, de façon symétrique, et n’oubliez pas de documenter les exceptions.
Checklist de durcissement et de pérennité
Contrôle | Objectif | Commande/Emplacement |
---|---|---|
Unidentified = Private | Empêcher le basculement en Public | secpol.msc / GPO → Network List Manager Policies |
User cannot change location | Éviter un changement manuel maladroit | Même emplacement de stratégie |
Désactiver override EDR | Empêcher l’imposition d’un mauvais profil | Console EDR/AV (politique par machine) |
Règles Public de secours | Continuité de sauvegarde au boot | New-NetFirewallRule ... -Profile Public |
Validation post‑reboot | Confirmer la correction | Get-NetConnectionProfile |
Questions fréquentes
Et si je force le profil via le Registre ?
Vous pouvez, mais NLA réécrira souvent la valeur au prochain boot. La solution robuste est la stratégie Unidentified = Private.
Peut‑on créer des règles valables sur tous les profils ?
Oui : -Profile Any
. Si le logiciel de sauvegarde ne le propose pas, ajoutez vos propres règles Public étroitement bornées (interfaces + sous‑réseaux).
Pourquoi certaines interfaces restent en DomainAuthenticated ?
Parce qu’elles peuvent joindre le domaine (DC, DNS). Les VLAN sans route vers l’AD resteront « non identifiés » et donc soumis à la politique Unidentified.
Le teaming SET/LBFO change‑t‑il la donne ?
Il change la chronologie d’initialisation. C’est précisément pourquoi une politique NLA claire supprime l’aléa.
Plan d’action en une page
- Identifier les interfaces impactées (
Get-NetConnectionProfile
). - Déployer la stratégie Unidentified Networks = Private (Local Policy ou GPO).
- Empêcher les overrides EDR/AV.
- Redémarrer et valider.
- Ajouter des règles Public de secours limitées aux VLAN.
- Documenter et surveiller.
En résumé
- Le NLA (et parfois un EDR/AV) reclassifie les VLAN en Public au démarrage si le réseau est non identifié.
- La solution durable est de forcer « Unidentified Networks = Private » via secpol.msc ou GPO, et de bloquer tout override tiers.
- Ajoutez des règles Public restreintes aux sous‑réseaux VLAN pour garantir la continuité des sauvegardes pendant la fenêtre de boot.
Annexes : commandes rapides
# Voir les profils et la connectivité IPv4/IPv6
Get-NetConnectionProfile | Format-Table InterfaceAlias, NetworkCategory, IPv4Connectivity, IPv6Connectivity
# Basculer un VLAN spécifique en Privé (temporaire si NLA/GPO le réimpose)
Set-NetConnectionProfile -InterfaceAlias "VLAN100" -NetworkCategory Private
# Créer une règle de test Public très ciblée (ping depuis l’appliance de sauvegarde)
New-NetFirewallRule -DisplayName "Ping Backup VLAN100 (Public)" -Direction Inbound -Action Allow \`
-Protocol ICMPv4 -IcmpType 8 -Profile Public -RemoteAddress 10.100.0.10 -InterfaceAlias "VLAN100"
Avec cette approche, vous obtiendrez un comportement prévisible et durable du profil réseau de vos VLAN sur Windows Server 2022, tout en minimisant l’exposition et en garantissant la disponibilité de votre solution de sauvegarde.