<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SDN &#8211; Haikos Blog</title>
	<atom:link href="https://www.hertes.net/tag/sdn/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hertes.net</link>
	<description>Blog von Haiko Hertes zu allen Themen rund um Microsoft, Cloud und Datacenter</description>
	<lastBuildDate>Wed, 15 Apr 2026 14:37:10 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Azure Local: Warum sich eine Network Security Group nicht erstellen ließ</title>
		<link>https://www.hertes.net/2026/04/azure-local-warum-sich-eine-network-security-group-nicht-erstellen-liess/</link>
					<comments>https://www.hertes.net/2026/04/azure-local-warum-sich-eine-network-security-group-nicht-erstellen-liess/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 14:37:09 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Azure Local]]></category>
		<category><![CDATA[Hybrid]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[NSG]]></category>
		<category><![CDATA[SDN]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=4416</guid>

					<description><![CDATA[Ich wollte in meiner Azure-Local-Demo-Umgebung die erste Network Security Group (NSG) bereitstellen. Mehrere Deployments sind jedoch fehlgeschlagen, obwohl die eigentliche NSG-Definition auf den ersten Blick unauffällig aussah. Die entscheidende Fehlermeldung war dabei diese hier: Zusätzlich tauchte auf ARM-Ebene noch der übliche Folgefehler auf: Worum es dabei eigentlich ging Der Fehler lag am Ende nicht an einer falschen NSG-Regel oder an einem fehlerhaften ARM-/Bicep-Deployment. Das eigentliche Problem war, dass die Azure-Local-Umgebung noch nicht mit einem aktiven Network Controller (NC) bzw. der dazugehörigen SDN-Integration ausgestattet war. Der Hinweis steckt bereits in der Fehlermeldung: not implemented for non-NC provider. Das Backend hat also&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Ich wollte in meiner Azure-Local-Demo-Umgebung die erste <strong>Network Security Group (NSG)</strong> bereitstellen. Mehrere Deployments sind jedoch fehlgeschlagen, obwohl die eigentliche NSG-Definition auf den ersten Blick unauffällig aussah.</p>



<p>Die entscheidende Fehlermeldung war dabei diese hier:</p>



<pre class="wp-block-code"><code>{
  "status": "Failed",
  "error": {
    "code": "NotImplemented",
    "message": "The moc-operator network security group service returned an error while reconciling: AddOrUpdateNetworkSecurityGroup not implemented for non-NC provider: Not Implemented"
  }
}</code></pre>



<p>Zusätzlich tauchte auf ARM-Ebene noch der übliche Folgefehler auf:</p>



<pre class="wp-block-code"><code>{
  "code": "DeploymentFailed",
  "message": "At least one resource deployment operation failed.",
  "details": [
    {
      "code": "ResourceDeploymentFailure",
      "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'."
    }
  ]
}</code></pre>



<h3 class="wp-block-heading">Worum es dabei eigentlich ging</h3>



<p>Der Fehler lag am Ende <strong>nicht</strong> an einer falschen NSG-Regel oder an einem fehlerhaften ARM-/Bicep-Deployment. Das eigentliche Problem war, dass die Azure-Local-Umgebung noch <strong>nicht mit einem aktiven Network Controller (NC)</strong> bzw. der dazugehörigen <strong>SDN-Integration</strong> ausgestattet war.</p>



<p>Der Hinweis steckt bereits in der Fehlermeldung: <code>not implemented for non-NC provider</code>. Das Backend hat also signalisiert, dass es die NSG-Operation nicht ausführen kann, solange kein NC-basierter Provider zur Verfügung steht.</p>



<h3 class="wp-block-heading">Erste Prüfung auf dem Host</h3>



<p>Als Erstes habe ich auf einem Azure-Local-Knoten geprüft, ob die Plattform grundsätzlich passt und ob es bereits Hinweise auf einen vorhandenen Network Controller gibt:</p>



<pre class="wp-block-code"><code>systeminfo.exe | findstr /B /C:"OS Name" /C:"OS Version"

Get-ClusterGroup | Where-Object Name -match 'Network Controller|NC'

Get-ClusterResource | Where-Object Name -match 'Network Controller|NC'</code></pre>



<p>Das Ergebnis war aufschlussreich:</p>



<ul class="wp-block-list">
  <li>Der Host lief bereits auf <strong>Build 26100</strong>.</li>
  <li>Es gab jedoch <strong>keine</strong> vorhandene Network-Controller-Clustergruppe.</li>
  <li>Auch bei den Cluster-Ressourcen war kein aktiver NC zu sehen.</li>
</ul>



<p>Damit war die Richtung klar: Die Umgebung war für NSGs noch nicht vollständig vorbereitet.</p>



<h3 class="wp-block-heading">Der eigentliche Fix</h3>



<p>Auf dem System war das passende ECE-Feature-Cmdlet bereits vorhanden:</p>



<pre class="wp-block-code"><code>Get-Command Add-EceFeature -ErrorAction SilentlyContinue</code></pre>



<p>Also lag die Lösung darin, den <strong>Network Controller nachträglich zu aktivieren</strong>.</p>



<p>Mein erster Versuch sah so aus:</p>



<pre class="wp-block-code"><code>Add-EceFeature -Name NC -SDNPrefix AzLocal01 -AcknowledgeMaintenanceWindow</code></pre>



<p>Das schlug allerdings direkt mit einem Validierungsfehler fehl:</p>



<pre class="wp-block-code"><code>The SDNPrefix 'azlocal01' is invalid. The SDNPrefix must be 8 characters or less.</code></pre>



<p>Der <code>SDNPrefix</code> darf in diesem Fall also maximal <strong>8 Zeichen</strong> lang sein.</p>



<p>Mit einem kürzeren Präfix funktionierte es dann:</p>



<pre class="wp-block-code"><code>Add-EceFeature -Name NC -SDNPrefix AZLOC01 -AcknowledgeMaintenanceWindow</code></pre>



<h3 class="wp-block-heading">Validierung nach der Aktivierung</h3>



<p>Nach erfolgreicher Ausführung konnte ich prüfen, ob der Network Controller nun tatsächlich als Cluster-Ressource vorhanden und online ist:</p>



<pre class="wp-block-code"><code>Get-ClusterResource | Where-Object Name -match 'Network Controller|NC' |
    Select-Object Name, State, OwnerGroup, ResourceType |
    Format-Table -AutoSize</code></pre>



<p>Das Ergebnis zeigte anschließend den aktiven NC:</p>



<pre class="wp-block-code"><code>Name        State   OwnerGroup  ResourceType
----        -----   ----------  ------------
azloc01-NC  Online  ApiService  Network Name</code></pre>



<p>Ab diesem Zeitpunkt ließ sich das ursprüngliche NSG-Deployment erfolgreich durchführen.</p>



<h3 class="wp-block-heading">Kurz zusammengefasst</h3>



<ul class="wp-block-list">
  <li>Die NSG-Bereitstellung schlug mit <code>not implemented for non-NC provider</code> fehl.</li>
  <li>Ursache war eine fehlende bzw. noch nicht aktivierte <strong>NC-/SDN-Integration</strong> in Azure Local.</li>
  <li>Der Fix bestand darin, den <strong>Network Controller per <code>Add-EceFeature</code></strong> nachträglich zu aktivieren.</li>
  <li>Dabei ist zu beachten, dass der verwendete <code>SDNPrefix</code> maximal <strong>8 Zeichen</strong> lang sein darf.</li>
  <li>Nach erfolgreicher NC-Aktivierung funktionierte auch die Bereitstellung der NSG.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Wenn sich in Azure Local eine Network Security Group nicht erstellen lässt und dabei ein Fehler in Richtung <code>non-NC provider</code> auftaucht, lohnt es sich, nicht zuerst an den NSG-Regeln selbst zu zweifeln. In meinem Fall lag das Problem eine Ebene tiefer: Die Umgebung hatte schlicht noch keinen aktiven <strong>Network Controller</strong>.</p>



<p>Die eigentliche NSG war also nicht das Problem – die Plattformvoraussetzung dafür fehlte noch.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2026/04/azure-local-warum-sich-eine-network-security-group-nicht-erstellen-liess/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
