Clarity on iCloud Private Relay behaviour with HTTP traffic

While analyzing iCloud Private Relay traffic using my App's content filter (based on NEFilterDataProvider), I noticed a couple of items that piqued my curiosity and wanted to see if I could get more information here.

Namely, when accessing a HTTP site via iCloud Private Relay, there is an initial flow established to UDP port 80 and an unspecified IPv6 address (i.e, '::'). This seemed odd for a few reasons:

  1. IPv6 is disabled on the system and the site I'm connecting with only has an IPv4 address. Also, the unspecified IPv6 address seems strange in general.
  2. In the documentation, iCloud Private Relay claims to only use UDP port 443 [1][2].

Could you provide more clarity on how this works in the background? Would it also be possible to confirm whether UDP port 80 should be included in any filtering logic concerning iCloud Private Relay?

Note: in case this isn't the general behavior for iCloud Private Relay, I wanted to further clarify that this is the behavior I've seen in Safari 17 on Sonoma and Sequoia, when accessing websites via HTTP, with Safari's "Use advanced tracking and fingerprinting protection" enabled.

Thanks!

[1] https://developer.apple.com/support/prepare-your-network-for-icloud-private-relay

[2] https://support.apple.com/en-ca/101555

Clarity on iCloud Private Relay behaviour with HTTP traffic
 
 
Q