-
Notifications
You must be signed in to change notification settings - Fork 427
Upgrade SDN infrastructure #3998
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,334 @@ | ||||||||||||
| --- | ||||||||||||
| title: Upgrade Infrastructure for Software Defined Networking (SDN) managed by on-premises tools | ||||||||||||
| description: Learn how to upgrade infrastructure for SDN managed by on-premises tools. | ||||||||||||
| ms.topic: how-to | ||||||||||||
| ms.author: alkohli | ||||||||||||
| author: alkohli | ||||||||||||
| ms.date: 11/20/2025 | ||||||||||||
| --- | ||||||||||||
|
|
||||||||||||
| # Upgrade infrastructure for Software Defined Networking managed by on-premises tools | ||||||||||||
|
|
||||||||||||
| <!--add applies to--> | ||||||||||||
|
|
||||||||||||
| This article provides guidance on safely and securely upgrading infrastructure for Software Defined Networking (SDN) managed by on-premises tools. It also provides troubleshooting guidance to help remediate issues that might occur during the upgrade process. | ||||||||||||
|
|
||||||||||||
| ## About upgrading SDN infrastructure | ||||||||||||
|
|
||||||||||||
| Your SDN deployment consists of several roles and machines, each providing essential services for your environment. To keep your environment secure and up to date, it's required to upgrade the SDN infrastructure, one node at a time. | ||||||||||||
|
|
||||||||||||
| We recommend upgrading roles in the following order: | ||||||||||||
|
|
||||||||||||
| - Hyper-V Hosts | ||||||||||||
| - Network Controller nodes | ||||||||||||
| - Load Balancer Multiplexer nodes (optional) | ||||||||||||
| - Gateway nodes (optional) | ||||||||||||
|
|
||||||||||||
| > [!IMPORTANT] | ||||||||||||
| > During the upgrade, workloads that use Load Balancer Multiplexers (Internal Load Balancers, Load Balancers, Public IPs) or Gateways (L3, GRE, S2S Connections) might experience disruption. Most disruption should be minimal while services fail over. Schedule the upgrade during a maintenance window and notify users about potential temporary disruption. | ||||||||||||
|
|
||||||||||||
| ## Before you begin | ||||||||||||
|
|
||||||||||||
| - Download the ISO image for performing the in-place upgrade. | ||||||||||||
|
|
||||||||||||
| - For Azure Local, see [Download operating system for Azure Local deployment](../deploy/download-23h2-software.md). | ||||||||||||
|
|
||||||||||||
| - For Windows Server, see [Install Windows Server from installation media](/windows-server/get-started/install-windows-server).<!--verify the link--> | ||||||||||||
|
|
||||||||||||
| - Use [Unblock-File](/powershell/module/microsoft.powershell.utility/unblock-file) and copy the ISO to a file system that your Hyper-V hosts can access, or copy it manually to each Hyper-V host as needed. | ||||||||||||
|
|
||||||||||||
| - Install the `SdnDiagnostics` module on the machine where you'll perform the upgrade tasks: | ||||||||||||
|
|
||||||||||||
| ```powershell | ||||||||||||
| # install or update SdnDiagnostics module | ||||||||||||
| # once we have installed or updated, we will remove any modules currently | ||||||||||||
| # from the runspace and import to ensure the latest module is imported | ||||||||||||
| if ($null -eq (get-module -ListAvailable -Name SdnDiagnostics)) { | ||||||||||||
| Install-Module -Name SdnDiagnostics | ||||||||||||
| } else { | ||||||||||||
| Update-Module -Name SdnDiagnostics | ||||||||||||
| } | ||||||||||||
| if (Get-Module -Name SdnDiagnostics){ | ||||||||||||
| Remove-Module -Name SdnDiagnostics | ||||||||||||
| } else { | ||||||||||||
| Import-Module -Name SdnDiagnostics | ||||||||||||
| } | ||||||||||||
|
Comment on lines
+53
to
+55
|
||||||||||||
| } else { | |
| Import-Module -Name SdnDiagnostics | |
| } | |
| } | |
| Import-Module -Name SdnDiagnostics |
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
Copilot
AI
Nov 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The command Start-Process is called without the -Wait parameter. This means the script will continue immediately without waiting for the upgrade to complete, which could cause issues with subsequent steps. Consider adding -Wait to ensure the upgrade finishes before proceeding:
Start-Process -FilePath "$DVDDrive\setup.exe" -ArgumentList "/auto upgrade /dynamicupdate enable /copylogs $logDir /quiet /eula accept" -Wait| Start-Process -FilePath "$DVDDrive\setup.exe" -ArgumentList "/auto upgrade /dynamicupdate enable /copylogs $logDir /quiet /eula accept" | |
| Start-Process -FilePath "$DVDDrive\setup.exe" -ArgumentList "/auto upgrade /dynamicupdate enable /copylogs $logDir /quiet /eula accept" -Wait |
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
v-dirichards marked this conversation as resolved.
Show resolved
Hide resolved
Copilot
AI
Nov 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] This PowerShell command has multiple style issues for documentation:
- The
-classparameter should be-Class(proper casing) - The
?alias should beWhere-Objectfor clarity Selectshould beSelect-Object
Consider updating to:
Get-PnpDevice -Class net | Where-Object Status -eq Unknown | Select-Object FriendlyName,InstanceId| Get-PnpDevice -class net | ? Status -eq Unknown | Select FriendlyName,InstanceId | |
| Get-PnpDevice -Class net | Where-Object Status -eq Unknown | Select-Object FriendlyName,InstanceId |
Uh oh!
There was an error while loading. Please reload this page.