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

Ipv6 #449

Merged
merged 10 commits into from
May 31, 2024
Merged

Ipv6 #449

merged 10 commits into from
May 31, 2024

Conversation

madsd
Copy link
Collaborator

@madsd madsd commented May 27, 2024

Summary

Copy link

Preview link: https://antares-blog-staging-pr-449.azurewebsites.net

  • Your changes have been deployed to the preview site. The preview site will update as you add more commits to this branch.
  • The preview site shows any future-dated articles. If you are publishing a future-dated article, it will not show on the production site until the file's specified date.
  • The preview link is shareable, but will be deleted when this pull request is merged or closed.

This is an automated message.


1. IPv6 inbound support (multi-tenant)
1. IPv6 non-vnet outbound support (multi-tenant)
1. IPv6 vnet outbound support (multi-tenant and App Service Environment v3)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has the ASE team confirmed any level of support? We are so far not claiming anything works on ASE

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am also the ASE team :-) and driving the dialog with swift on supporting IPv6. Message is that they should have swift v2 ready by Oct and we can start implementing then - great risk of delays and no idea how long our implementation will take so a careful guess is mid-CY25. The list is also to say that it is not currently supported, but will be coming. I'll see if I can make it more clear.

* Only a subset of regions are supported - see the list below.
* Basic and Standard tier is currently not supported.
* Functions Consumption may temporarily have extra IP addresses in the DNS result.
* Functions Consumption and Elastic Premium may not remove the IPv4 address in IPv6 mode.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't we determine this was just a DNS caching thing and it goes away?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this is referring to the issue where old function apps that were created using a secondary flex consumption A record will not have their A record removed in IPv6 mode


IPv6 inbound requires two things. An IPv6 address that accepts traffic coming in, and a DNS record that returns an IPv6 (AAAA) record. Finally you'll also need a client that can send and receive IPv6 traffic. This means that you may not be able to test it from you local machine since many networks today only support IPv4.

Our stamps (deployment units) will all have IPv6 addresses added. When these are added, you can start sending traffic to both the IPv4 and IPv6 address. To ensure backwards compatibility, the DNS response for the default host name (_app-name_.azurewebsites.net) will return only the IPv4 address. If you want to change that, we have added a site property called `IPMode` that you can configure to `IPv6` or `IPv4AndIPv6`. If you set it to IPv6 only, your client will need to "understand" IPv6 in order to get a response. Setting it to IPv4 and IPv6 will allow you to have existing clients use IPv4, but allow capable clients to use IPv6.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can call out that an easy way to test is using curl -6


Our stamps (deployment units) will all have IPv6 addresses added. When these are added, you can start sending traffic to both the IPv4 and IPv6 address. To ensure backwards compatibility, the DNS response for the default host name (_app-name_.azurewebsites.net) will return only the IPv4 address. If you want to change that, we have added a site property called `IPMode` that you can configure to `IPv6` or `IPv4AndIPv6`. If you set it to IPv6 only, your client will need to "understand" IPv6 in order to get a response. Setting it to IPv4 and IPv6 will allow you to have existing clients use IPv4, but allow capable clients to use IPv6.

If you are using custom domain, you can define your custom DNS records the same way. If you only add an IPv6 (AAAA) record, your clients will need to support IPv6. You can also choose to add both, and finally you can use a CNAME in which case you will use the behavior of `IPMode`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you are using custom domain, you can define your custom DNS records the same way. If you only add an IPv6 (AAAA) record, your clients will need to support IPv6. You can also choose to add both, and finally you can use a CNAME in which case you will use the behavior of `IPMode`.
If you are using custom domain, you can define your custom DNS records the same way. If you only add an IPv6 (AAAA) record, your clients will need to support IPv6. You can also choose to add both, and finally you can use a CNAME to the default hostname of the site in which case you will use the behavior of `IPMode`.


* Only a subset of regions are supported - see the list below.
* Basic and Standard tier is currently not supported.
* Functions Consumption may temporarily have extra IP addresses in the DNS result.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this referring to the idle backup bug? Those extra IP addresses are not going to be temporary

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we can clean them up manually (worth discussing offline)


## How does it work

IPv6 inbound requires two things. An IPv6 address that accepts traffic coming in, and a DNS record that returns an IPv6 (AAAA) record. Finally you'll also need a client that can send and receive IPv6 traffic. This means that you may not be able to test it from you local machine since many networks today only support IPv4.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
IPv6 inbound requires two things. An IPv6 address that accepts traffic coming in, and a DNS record that returns an IPv6 (AAAA) record. Finally you'll also need a client that can send and receive IPv6 traffic. This means that you may not be able to test it from you local machine since many networks today only support IPv4.
IPv6 inbound requires two things. An IPv6 address that accepts traffic coming in, and a DNS record that returns an IPv6 (AAAA) record. Finally you'll also need a client that can send and receive IPv6 traffic. This means that you may not be able to test it from your local machine since many networks today only support IPv4.

@madsd madsd merged commit 7ceef75 into master May 31, 2024
3 of 4 checks passed
@madsd madsd deleted the ipv6 branch May 31, 2024 06:21
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

Successfully merging this pull request may close these issues.

4 participants