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 · 19 comments
Open

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

richlander opened this issue Dec 24, 2024 · 19 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
  • Install scripts have been updated

Recommended action:

  • Read Critical: .NET Install links are changing for an overview.
  • Switch azureedge.net references to new domains
  • Update your local copies of the install script
  • Validate that firewall rules are resilient to using Akamai and/or Azure Front Door CDNs.

Last update: 2024.12.27
Next Update: 2025.01.02

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

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.

@richlander
Copy link
Member Author

FYI @dotnet/distro-maintainers

@Varorbc
Copy link
Contributor

Varorbc commented Dec 27, 2024

Azure DevOps UseDotnetTask will be updated in January
We also noticed that there is a lot of use of our storage account: dotnetcli.blob.core.windows.net. Please also search for it. The storage account is unaffected, however, it would be much better for everyone if you used our new CDN. It will deliver better peformance.

@richlander I noticed your pipeline team only updated the download links. Did they maybe miss something or not fully understand the issue? Could you also fix the release index links when you push out the update in January?

@richlander
Copy link
Member Author

I will share this with them @Varorbc.

@Rand-Random
Copy link

maybe a noob question why didn’t just keep the old domain? why would a domain change be needed? couldn’t the old domain name not simply resolved to the new servers?

@richlander
Copy link
Member Author

We asked the same question. We were told that this option wasn't being made available. We don't have more information on that.

@chrarnoldus
Copy link

chrarnoldus commented Dec 27, 2024

What's the difference between getting official builds from builds.dotnet.microsoft.com and download.visualstudio.microsoft.com? Most of the links in the JSON files seem to point to the latter.

harry-cpp pushed a commit to MonoGame/MonoGame that referenced this issue Dec 27, 2024
@richlander
Copy link
Member Author

No difference. Both are fine. download.visualstudio.microsoft.com is/was unaffected by this situation.

We'll be publishing new guidance after we've had a chance for some "downtime". It's likely that the new guidance will apply more to how the install script, GitHub Actions, and AzDo Tasks are implemented than requiring a typical user to do something significantly different.

@mitchcapper
Copy link

It is unfortunate but understandable that MS is now in full control of the azureedge.net domain yet is unable to setup redirects.
A bit more confusing is this part:

URLs affected:

These are already aliases, aka.ms is literally a redirect service. Can these urls not be updated to the correct locations? Infact it looks like some already are redirect to "not affected" domains:

wget2 https://dot.net/v1/dotnet-install.ps1
HTTP response 301  [https://dot.net/v1/dotnet-install.ps1]
URL 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1'

wget2 https://dot.net/v1/dotnet-install.sh
HTTP response 301  [https://dot.net/v1/dotnet-install.sh]
URL 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh'

Should they be removed from the affected list?

It does look like several of the aka.ms urls will 301 redirect as mentioned in this ticket already or showing in the actual location 301 returned that is is pointing to a safe domain.

@mairaw
Copy link
Contributor

mairaw commented Dec 27, 2024

@mitchcapper the contents of those scripts were changed to use the new CDNs. It should be transparent to most folks, but depending on how your infrastructure is set up like allow lists, copy of the scripts, etc. you might need to take action.

@richlander
Copy link
Member Author

I updated the content above. It addresses the change in the install script. Thanks for asking for that clarification @mitchcapper. Good question.

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