Skip to content
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

Critical: .NET install domains and URLs are changing #9671

Open
richlander opened this issue Dec 24, 2024 · 23 comments
Open

Critical: .NET install domains and URLs are changing #9671

richlander opened this issue Dec 24, 2024 · 23 comments
Assignees

Comments

@richlander
Copy link
Member

richlander commented Dec 24, 2024

Some .NET binaries and installers are hosted on Azure Content Delivery Network (CDN) domains that end in .azureedge.net. These domains are hosted by edg.io, which will soon cease operations due to bankruptcy. We are required to migrate to a new CDN and will be using new domains going forward. It is possible that .azureedge.net domains will have downtime or become permanently unavailable.

Current status:

  • azureedge.net CDN domains are functional
  • New CDN domains are functional
  • CDN is expected to switch from AFD to Akamai in week of January 6th
  • Install scripts have been updated
  • dotnet-setup GitHub Action has been updated
  • Upcoming changes: dotnet CDN tracking issue #9674

Recommended action:

Last update: 2025.01.04
Next Update: 2025.01.06

You may need to adapt to these changes.

We expect azureedge.net domains to cease being functional in the first half of 2025. Moving your usage to the new CDN is the best path to avoiding service disruption.

Test links for new CDN:

Test links for old CDN:

Our plan is a work-in-progress and is expected to evolve. We recommend that affected users make changes by the end of January.

Affected resources

Domains affected:

URLs affected:

Not affected:

There are many users of these resources, for example:

On December 23rd, we switched the two azureedge.net domains above to use Azure Traffic Manager. After that change, those domains continued to send 100% of traffic to our edg.io CDNs. We expect to drop edgio traffic to zero on December 27th by sending all traffic to a different CDN. These changes could break users with conservative firewall rules.

Users should not consider azureedge.net to be a long-term usable domain. Please move to the new domains as soon as possible. It is likely that these domains will be retired in the first half on 2025. No other party will be able to use them. We are not able to control the timing of these events.

Install script

The .NET install script is used to install .NET from our CDN. We are changing CDNs (documented in a following section), which requires us to change the install script to use the new CDN.

Updated scripts:

The updated scripts prefer the new CDNs, while enabling fallback to the legacy azureedge.net domains. The legacy domains will be removed at a later point.

  • Users who have local copies of these scripts will need to update their copies.
  • Users who rely on the remote copy (at the URLs above) do not need to do anything other than validate no observed change in behavior (due to new domains and CDNs being used).

Tracking PRs:

Notes (for the install script):

  • The -NoCdn or --no-cdn argument can be used to bypass using the CDN, which may help some users.
  • The -AzureFeed or --azure-feed argument can be used to specify an alternate storage account or CDN.

Plan for domains

There are multiple domains, used for different purposes.

Official builds

Official builds and JSON files are hosted via a CDN, available for use by the install script and other installers.

Note: Official builds are tested and signed by Microsoft. A microsoft.com domain was chosen to reflect that.

You can change from old to new domains by changing the domain section of the URL. The other parts of the URL do not need to change.

Example URLs:

A set of short links are available for official builds.

Link pattern:https://aka.ms/dotnet/[x.y]/[package].

Example URLs:

These links produce301 HTTP results that forward to our CDN.

We expect these links to be changed in early January.

Tracking PR:

CI builds

Continuous integration (CI) builds are hosted via a CDN, available via the install script and GitHub README files.

Note: CI builds include a mix of tested and untested builds, signed and unsigned builds.

Example URLs:

A set of short links are available for CI builds.

Link pattern:https://aka.ms/dotnet/[x.y]/daily/[package].

Example URLs:

These links produce301 HTTP results that forward to our CDN.

We expect these links to be changed in early January.

Tracking PR:

CI build pages use the CI short links.

Example build pages:

Azure DevOps and GitHub Actions

  • Major versions tags for actions/setup-dotnet have been updated. References to pinned versions will require updating to the most recent version.
  • We expect that GitHub Enterprise Server will be addressed in January.
  • Azure DevOps UseDotnetTask will be updated in January
  • We do not yet have a date for updating Azure DevOps Server.

Other changes

The following resources are also affected.

@richlander richlander self-assigned this Dec 24, 2024
@KalleOlaviNiemitalo
Copy link

Is there a risk that a malicious party later acquires azureedge.net and starts serving malware to systems that still use the old URLs? From WHOIS, it looks like azureedge.net is registered to Microsoft, not to Edgio. (Just wondering how urgent it is to update URLs in old version-control branches that are not actively developed but might get built some day.)

Have there been any NuGet feeds in the domain?

@shanselman
Copy link
Contributor

@KalleOlaviNiemitalo we took it over, so it won’t be taken away.

@zarlo
Copy link

zarlo commented Dec 24, 2024

@KalleOlaviNiemitalo we took it over, so it won’t be taken away.

so why not keep the current urls for like 1-2 more dont net versions so after .net 11 you have to use the new urls this would give people time to update their whitelists

@klemmchr
Copy link

Given this issue I'm wondering when Microsoft will provide their own domain registrar on Azure to prevent such issues in the future. Currently this is the only thing that is really missing on the Azure platform. I can host virtually anything on Azure but when it comes to domains I still need to resort to a third party. I can point all my nameservers to Azure, sure. But the domain itself needs to be hosted somewhere else.

@charles-Graham-Keilman
Copy link

Does this affect the installers in the Azure Devops pipelines? We use a mix of classic and Yaml pipelines.

@klemmchr
Copy link

klemmchr commented Dec 24, 2024

Does this affect the installers in the Azure Devops pipelines? We use a mix of classic and Yaml pipelines.

Yes, it does.

Azure DevOps and GitHub Actions installation tools are dependent on some of these resources. We are working directly with those teams to maintain continuity of service. They are moving to the new domains at best speed.

@PathogenDavid
Copy link

Something maybe worth emphasizing is that consumers need to make sure they aren't using an overly-specific version of the action in order to receive this update.

In our community we found many instances of people explicitly using v4.0.0 instead of v4 due to a commonly copy+pasted workflow. Similar mistakes appear in several repos in the dotnet org and on GitHub in general.

@richlander
Copy link
Member Author

Good point. I made a couple edits to clarify.

@voroninp
Copy link

voroninp commented Jan 3, 2025

Are you making any changes to docker images?

PS > docker pull mcr.microsoft.com/dotnet/sdk:8.0
8.0: Pulling from dotnet/sdk
fd674058ff8f: Already exists
bbdcc09b9436: Already exists
22a0038f868f: Already exists
4416e5d0ee0a: Already exists
856be9b83b46: Already exists
61ccb076d3e2: Already exists
879914dae944: Downloading  22.15MB
bdc2dbb58306: Retrying in 1 second
dd4aaba891e2: Downloading  10.26MB
error pulling image configuration: download failed after attempts=6: EOF
PS > docker pull mcr.microsoft.com/dotnet/sdk:8.0
Error response from daemon: Get "https://mcr.microsoft.com/v2/dotnet/sdk/manifests/sha256:f25e4f51fa06e3b14af1a1135013a3e96055b76caa0e76afc0096d64a77879fd": EOF
PS > docker pull mcr.microsoft.com/dotnet/sdk:8.0
Error response from daemon: Head "https://mcr.microsoft.com/v2/dotnet/sdk/manifests/8.0": EOF

@richlander
Copy link
Member Author

This is the outstanding PR for our container images: dotnet/dotnet-docker#6125.

However, your error looks like a standard network problem. It has nothing to do with this issue. None of the problematic changes have been made yet and I don't believe that MCR uses edgio CDN or the azureedge.net domain.

keegan-caruso added a commit to AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet that referenced this issue Jan 4, 2025
keegan-caruso added a commit to AzureAD/microsoft-identity-abstractions-for-dotnet that referenced this issue Jan 4, 2025
Needed for .NET CDN change

see dotnet/core#9671

and: AzureAD/microsoft-identity-web#3175

Signed-off-by: Keegan <[email protected]>
martincostello added a commit to martincostello/update-dotnet-sdk that referenced this issue Jan 4, 2025
martincostello added a commit to martincostello/update-dotnet-sdk that referenced this issue Jan 4, 2025
martincostello added a commit to martincostello/github-automation that referenced this issue Jan 4, 2025
martincostello added a commit to martincostello/github-automation that referenced this issue Jan 4, 2025
martincostello added a commit to martincostello/aspnetcore that referenced this issue Jan 4, 2025
Bump the update-dotnet-sdk action to v3.4.0 to pick up changes to react to dotnet/core#9671.
martincostello added a commit to martincostello/extensions-samples that referenced this issue Jan 4, 2025
Bump the update-dotnet-sdk action to v3.4.0 to pick up changes to react to dotnet/core#9671.
martincostello added a commit to martincostello/extensions that referenced this issue Jan 4, 2025
Bump the update-dotnet-sdk action to v3.4.0 to pick up changes to react to dotnet/core#9671.
jmprieur pushed a commit to AzureAD/microsoft-identity-abstractions-for-dotnet that referenced this issue Jan 4, 2025
jennyf19 pushed a commit to AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet that referenced this issue Jan 4, 2025
* Needed for .net cdn change

see dotnet/core#9671

and: AzureAD/microsoft-identity-web#3175

* Update codeql action to setup .NET 9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests