Skip to content

Commit 1d89957

Browse files
authored
Add DYNAMIC_DNS resolution type for wildcard hosts (#3565)
* Add new resolution type to support wildcard hosts - Defines DELAYED_DNS Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Use Dynamic DNS instead of delayed Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Clarify ambient only support and waypoint bound requirement Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Remove more complex kubebuild directive for the wildcard host validation Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Add release note Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Fix nits Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Respond to comments Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Clarify impact of dynamic dns on captured dns Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Clarify intended use Signed-off-by: Jackie Elliott <jaellio@microsoft.com> --------- Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
1 parent a3e64a8 commit 1d89957

File tree

7 files changed

+111
-6
lines changed

7 files changed

+111
-6
lines changed

kubernetes/customresourcedefinitions.gen.yaml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1/service_entry_alias.gen.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/service_entry.pb.go

Lines changed: 22 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/service_entry.pb.html

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/service_entry.proto

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,23 @@ message ServiceEntry {
560560
// specified in the hosts field, if wildcards are not used. DNS resolution
561561
// cannot be used with Unix domain socket endpoints.
562562
DNS_ROUND_ROBIN = 3;
563+
564+
// DYNAMIC_DNS will attempt to resolve the host name specified in
565+
// the Host header or SNI to an IP address when handling traffic. This
566+
// allows multiple DNS addresses to be represented by a single wildcard
567+
// `host` entry without having to explicitly enumerate all possible
568+
// endpoints. During DNS proxying, ztunnel will resolve all subdomains
569+
// matching the wildcard host name to a VIP which isn't used for routing
570+
// outside the mesh. `DYNAMIC_DNS` will provide configuration to a
571+
// waypoint proxy to recover the original host name using information
572+
// from SNI or a Host header in an HTTP Request. This original host name
573+
// will then be resolved so that traffic can be routed to the intended
574+
// IP address. This method of handling wildcard traffic is not
575+
// compatible with raw TCP traffic where the original host cannot
576+
// be recovered. `DYNAMIC_DNS` is only supported for wildcard hosts,
577+
// `MESH_EXTERNAL` location and in ambient mode. The ServiceEntry must
578+
// be bound to a waypoint. Specified endpoints will be ignored.
579+
DYNAMIC_DNS = 4;
563580
}
564581

565582
// Service resolution mode for the hosts. Care must be taken

networking/v1beta1/service_entry_alias.gen.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: release-notes/v2
2+
kind: feature
3+
area: traffic-management
4+
issue:
5+
- https://github.com/istio/istio/issues/54540
6+
7+
releaseNotes:
8+
- |
9+
**Added** a new `DYNAMIC_DNS` resolution option for `ServiceEntry` to enable
10+
dynamic DNS resolution based on the request's Host header or SNI when the
11+
ServiceEntry has a wildcard host.

0 commit comments

Comments
 (0)