iCloud Private Relay not allowed on this network

I am new to openwrt. I have a fairly default install up and running. I added SQM and enabled cake, and I changed the default WAN in rule from reject to drop.

I set up the basic forwarder and provided it google's dns as it's upstream forwarders and my DHCP clients use the openwrt forwarder as their DNS.

iCloud Private Relay, a VPN type service, complains that it is not allowed on this network. I would like to allow it, and allow any clients to be allowed to use any external DNS.

Can anyone point me in the right direction? I gather by searching that there are likely "canary domains" involved, but I don't understand which features or configuration would not be allowing these lookups out of the box.

I'd start with the following things:

  • disable SQM/cake and test again
  • if that doesn't work, make a backup and reset the router to defaults. Test from the near-default state (do only the minimum necessary to get online)

And also, refer to Apple's documentation:

1 Like

I can lookup google.com from my openwrt forwarder

I can lookup google.com from 8.8.8.8 on my openwrt network

I cannot lookup mask.icloud.com from my openwrt forwarder

I cannot lookup mask.icloud.com from 8.8.8.8 on my openwrt network

I can lookup mask.icloud.com from 8.8.8.8 away from my openwrt network

Post the output of opkg list-installed.

I have reinstalled today and created a minimal config.

Set WAN static IP, in advanced settings of WAN interface "use custom domain servers" and entered 8.8.8.8 and 8.8.4.4 are the only changes I made.

Lookup of mask.icloud.com from lan still does not work. Can lookup google.com, cannot lookup mask.icloud.com whether querying openwrt router or 8.8.8.8 directly.

Here is output of opkg list-installed:

BusyBox v1.35.0 (2023-01-03 00:24:21 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03.3, r20028-43d71ad93e
 -----------------------------------------------------
root@OpenWrt:~# opkg list-installed
base-files - 1498-r20028-43d71ad93e
bnx2-firmware - 20220411-1
busybox - 1.35.0-5
ca-bundle - 20211016-1
cgi-io - 2022-08-10-901b0f04-21
dnsmasq - 2.86-15
dropbear - 2022.82-2
e2fsprogs - 1.46.5-2
firewall4 - 2022-10-18-7ae5e14b-1
fstools - 2022-06-02-93369be0-2
fwtool - 2019-11-12-8f7fe925-1
getrandom - 2021-08-03-205defb5-2
grub2 - 2.06-3
grub2-bios-setup - 2.06-3
grub2-efi - 2.06-3
jansson4 - 2.13.1-2
jshn - 2022-05-15-d2223ef9-1
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 5.10.161-1-9309db0b721b9fb3fe826181264a78c4
kmod-amazon-ena - 5.10.161-1
kmod-amd-xgbe - 5.10.161-1
kmod-bnx2 - 5.10.161-1
kmod-button-hotplug - 5.10.161-3
kmod-crypto-crc32c - 5.10.161-1
kmod-crypto-hash - 5.10.161-1
kmod-e1000 - 5.10.161-1
kmod-e1000e - 5.10.161-1
kmod-forcedeth - 5.10.161-1
kmod-fs-vfat - 5.10.161-1
kmod-hwmon-core - 5.10.161-1
kmod-i2c-algo-bit - 5.10.161-1
kmod-i2c-core - 5.10.161-1
kmod-igb - 5.10.161-1
kmod-igc - 5.10.161-1
kmod-input-core - 5.10.161-1
kmod-ixgbe - 5.10.161-1
kmod-lib-crc-ccitt - 5.10.161-1
kmod-lib-crc32c - 5.10.161-1
kmod-libphy - 5.10.161-1
kmod-mdio - 5.10.161-1
kmod-mdio-devres - 5.10.161-1
kmod-mii - 5.10.161-1
kmod-nf-conntrack - 5.10.161-1
kmod-nf-conntrack6 - 5.10.161-1
kmod-nf-flow - 5.10.161-1
kmod-nf-log - 5.10.161-1
kmod-nf-log6 - 5.10.161-1
kmod-nf-nat - 5.10.161-1
kmod-nf-reject - 5.10.161-1
kmod-nf-reject6 - 5.10.161-1
kmod-nfnetlink - 5.10.161-1
kmod-nft-core - 5.10.161-1
kmod-nft-fib - 5.10.161-1
kmod-nft-nat - 5.10.161-1
kmod-nft-offload - 5.10.161-1
kmod-nls-base - 5.10.161-1
kmod-nls-cp437 - 5.10.161-1
kmod-nls-iso8859-1 - 5.10.161-1
kmod-nls-utf8 - 5.10.161-1
kmod-phy-realtek - 5.10.161-1
kmod-ppp - 5.10.161-1
kmod-pppoe - 5.10.161-1
kmod-pppox - 5.10.161-1
kmod-pps - 5.10.161-1
kmod-ptp - 5.10.161-1
kmod-r8169 - 5.10.161-1
kmod-slhc - 5.10.161-1
kmod-tg3 - 5.10.161-1
libblkid1 - 2.37.4-1
libblobmsg-json20220515 - 2022-05-15-d2223ef9-1
libc - 1.2.3-4
libcomerr0 - 1.46.5-2
libext2fs2 - 1.46.5-2
libf2fs6 - 1.14.0-3
libgcc1 - 11.2.0-4
libiwinfo-data - 2022-12-15-8d158096-1
libiwinfo-lua - 2022-12-15-8d158096-1
libiwinfo20210430 - 2022-12-15-8d158096-1
libjson-c5 - 0.15-2
libjson-script20220515 - 2022-05-15-d2223ef9-1
liblua5.1.5 - 5.1.5-10
liblucihttp-lua - 2022-07-08-6e68a106-1
liblucihttp0 - 2022-07-08-6e68a106-1
libmnl0 - 1.0.5-1
libnftnl11 - 1.2.1-2
libnl-tiny1 - 2021-11-21-8e0555fb-1
libpthread - 1.2.3-4
librt - 1.2.3-4
libsmartcols1 - 2.37.4-1
libss2 - 1.46.5-2
libubox20220515 - 2022-05-15-d2223ef9-1
libubus-lua - 2022-06-01-2bebf93c-1
libubus20220601 - 2022-06-01-2bebf93c-1
libuci20130104 - 2021-10-22-f84f49f0-6
libuclient20201210 - 2021-05-14-6a6011df-1
libucode20220812 - 2022-12-02-46d93c9c-1
libustream-wolfssl20201210 - 2022-12-08-9217ab46-2
libuuid1 - 2.37.4-1
libwolfssl5.5.4.ee39414e - 5.5.4-stable-1
logd - 2021-08-03-205defb5-2
lua - 5.1.5-10
luci - git-20.074.84698-ead5e81
luci-app-firewall - git-22.089.67563-7e3c1b4
luci-app-opkg - git-22.273.29004-9f6876b
luci-base - git-22.361.69894-438c598
luci-lib-base - git-20.232.39649-1f6dc29
luci-lib-ip - git-20.250.76529-62505bd
luci-lib-jsonc - git-22.097.61921-7513345
luci-lib-nixio - git-20.234.06894-c4a4e43
luci-mod-admin-full - git-19.253.48496-3f93650
luci-mod-network - git-22.345.48602-4853e7b
luci-mod-status - git-22.302.42268-2878b35
luci-mod-system - git-22.339.34970-004e47c
luci-proto-ipv6 - git-21.148.48881-79947af
luci-proto-ppp - git-21.158.38888-88b9d84
luci-ssl - git-20.244.36115-e10f954
luci-theme-bootstrap - git-22.288.45147-96ec0cd
mkf2fs - 1.14.0-3
mtd - 26
netifd - 2022-08-25-76d2d41b-1
nftables-json - 1.0.2-2.1
odhcp6c - 2022-08-05-7d21e8d8-18
odhcpd-ipv6only - 2023-01-02-4a673e1c-2
openwrt-keyring - 2022-03-25-62471e69-3
opkg - 2022-02-24-d038e5b6-1
partx-utils - 2.37.4-1
ppp - 2.4.9.git-2021-01-04-3
ppp-mod-pppoe - 2.4.9.git-2021-01-04-3
procd - 2022-06-01-7a009685-2
procd-seccomp - 2022-06-01-7a009685-2
procd-ujail - 2022-06-01-7a009685-2
px5g-wolfssl - 6.2
r8169-firmware - 20220411-1
rpcd - 2022-12-15-7de4820c-1
rpcd-mod-file - 2022-12-15-7de4820c-1
rpcd-mod-iwinfo - 2022-12-15-7de4820c-1
rpcd-mod-luci - 20210614
rpcd-mod-rrdns - 20170710
ubox - 2021-08-03-205defb5-2
ubus - 2022-06-01-2bebf93c-1
ubusd - 2022-06-01-2bebf93c-1
uci - 2021-10-22-f84f49f0-6
uclient-fetch - 2021-05-14-6a6011df-1
ucode - 2022-12-02-46d93c9c-1
ucode-mod-fs - 2022-12-02-46d93c9c-1
ucode-mod-ubus - 2022-12-02-46d93c9c-1
ucode-mod-uci - 2022-12-02-46d93c9c-1
uhttpd - 2022-10-31-23977554-1
uhttpd-mod-ubus - 2022-10-31-23977554-1
urandom-seed - 3
urngd - 2020-01-21-c7f7b6b6-1
usign - 2020-05-23-f1f65026-1
root@OpenWrt:~# 
MBP-2 ~ % nslookup google.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.189.206

MBP-2 ~ % nslookup google.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	google.com
Address: 142.251.46.238

MBP-2 ~ % nslookup mask.icloud.com
Server:		192.168.1.1
Address:	192.168.1.1#53

** server can't find mask.icloud.com: NXDOMAIN

MBP-2 ~ % nslookup mask.icloud.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

** server can't find mask.icloud.com: NXDOMAIN

What is upstream of your OpenWrt router? Is it direct to the ISP (via a modem, for example) or is there another router and/or modem+router combo unit?

I suspect that this thread is related:

https://forum.openwrt.org/t/how-to-remove-domains-from-dns-query-redirection/

Where is query redirection configured?

Comcast CBR2 business gateway. It's firewall is disabled.

If you connect the Mac directly to the CBR2 gateway, set the same static IP, and then run the same ping test, what happens?

I accept your suspicion of the comcast device but decline to do that. Another router/firewall (ubiquiti edgerouter) connected to the same comcast gateway can look up mask.icloud.com normally.

The goal is twofold...

  1. Confirm that there's nothing on the Mac that could be limiting this (obviously not the core OS, but an application or other policy laid on top)
  2. That there is nothing in the Comcast configuration that could cause this issue.

Declining means we cannot explore these things. But, this is the first you've mentioned the ER -- is it configured the exact same way (from a functional standpoint, obviously it's a very different OS), such that it sits between the CBR2 and the Mac and has the same address on the WAN and same lan subnet?

Understood that help with my specific config ceases where I stop troubleshooting.

I have also tested this with an iphone and windows desktop on both networks.

The ubiquiti device is connected in the same logical order as the openwrt. I have not tried each of them with each other's IP addresses but my experience tells me there is not a difference there, they're on the same public subnet issued to me by comcast.

I believe I have recreated this to the point that I think others will find the same symptom in a fresh install, not that anyone is obligated to try it for me of course.

I should have mentioned sooner that I had done comparative testing with another device.

There is one scenario where this could be relevant (although it seems quite unlikely, but not impossible)...
If a system detected what it believes is abuse, it could shut down certain things. I wouldn't expect that here, given that you can use the same DNS server for other things. But, it could be worth trying, just to make sure that the problem follows the device, not the IP address.

(also, to be clear, I'm not saying you abused any services; abuse could be related to a previous user of the IP (if relevant) and/or false-positive triggers in the detection mechanisms).

1 Like

Ah, yes I am open to that. I will test another IP next.

1 Like

I have tried a different IP with same result.

I am now quite sure this is a function included in the default config of dnsmasq or it's implementation in the default config of openwrt.

What is the easiest way to view config files in ssh? Do I have to install nano?

The purpose of this configuration would likely be to "block dns over https". Not something I would want out of the box, but not up to me.

You can just use the cat command.

Please copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall
root@OpenWrt:~# ubus call system board
{
	"kernel": "5.10.161",
	"hostname": "OpenWrt",
	"system": "Intel(R) Core(TM) i3-4330 CPU @ 3.50GHz",
	"model": "Sophos SG",
	"board_name": "sophos-sg",
	"rootfs_type": "ext4",
	"release": {
		"distribution": "OpenWrt",
		"version": "22.03.3",
		"revision": "r20028-43d71ad93e",
		"target": "x86/64",
		"description": "OpenWrt 22.03.3 r20028-43d71ad93e"
	}
}
root@OpenWrt:~# 
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix ‘xxxx:xxxx:xxxx::/48'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option device 'eth1'
	option proto 'static'
	option netmask '255.255.255.248'
	option gateway '96.x.x.x’
	list dns '8.8.8.8'
	list dns '8.8.4.4'
	option ipaddr '96.x.x.x’

config interface 'wan6'
	option device 'eth1'
	option proto 'dhcpv6'
root@OpenWrt:~# cat /etc/config/wireless
cat: can't open '/etc/config/wireless': No such file or directory
root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	option ra_slaac '1'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'
	option start '100'
	option limit '150'
	option leasetime '12h'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'
root@OpenWrt:~# cat /etc/config/firewall
config defaults
	option syn_flood	1
	option input		ACCEPT
	option output		ACCEPT
	option forward		REJECT
# Uncomment this line to disable ipv6 rules
#	option disable_ipv6	1

config zone
	option name		lan
	list   network		'lan'
	option input		ACCEPT
	option output		ACCEPT
	option forward		ACCEPT

config zone
	option name		wan
	list   network		'wan'
	list   network		'wan6'
	option input		REJECT
	option output		ACCEPT
	option forward		REJECT
	option masq		1
	option mtu_fix		1

config forwarding
	option src		lan
	option dest		wan

# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
	option name		Allow-DHCP-Renew
	option src		wan
	option proto		udp
	option dest_port	68
	option target		ACCEPT
	option family		ipv4

# Allow IPv4 ping
config rule
	option name		Allow-Ping
	option src		wan
	option proto		icmp
	option icmp_type	echo-request
	option family		ipv4
	option target		ACCEPT

config rule
	option name		Allow-IGMP
	option src		wan
	option proto		igmp
	option family		ipv4
	option target		ACCEPT

# Allow DHCPv6 replies
# see https://github.com/openwrt/openwrt/issues/5066
config rule
	option name		Allow-DHCPv6
	option src		wan
	option proto		udp
	option dest_port	546
	option family		ipv6
	option target		ACCEPT

config rule
	option name		Allow-MLD
	option src		wan
	option proto		icmp
	option src_ip		fe80::/10
	list icmp_type		'130/0'
	list icmp_type		'131/0'
	list icmp_type		'132/0'
	list icmp_type		'143/0'
	option family		ipv6
	option target		ACCEPT

# Allow essential incoming IPv6 ICMP traffic
config rule
	option name		Allow-ICMPv6-Input
	option src		wan
	option proto	icmp
	list icmp_type		echo-request
	list icmp_type		echo-reply
	list icmp_type		destination-unreachable
	list icmp_type		packet-too-big
	list icmp_type		time-exceeded
	list icmp_type		bad-header
	list icmp_type		unknown-header-type
	list icmp_type		router-solicitation
	list icmp_type		neighbour-solicitation
	list icmp_type		router-advertisement
	list icmp_type		neighbour-advertisement
	option limit		1000/sec
	option family		ipv6
	option target		ACCEPT

# Allow essential forwarded IPv6 ICMP traffic
config rule
	option name		Allow-ICMPv6-Forward
	option src		wan
	option dest		*
	option proto		icmp
	list icmp_type		echo-request
	list icmp_type		echo-reply
	list icmp_type		destination-unreachable
	list icmp_type		packet-too-big
	list icmp_type		time-exceeded
	list icmp_type		bad-header
	list icmp_type		unknown-header-type
	option limit		1000/sec
	option family		ipv6
	option target		ACCEPT

config rule
	option name		Allow-IPSec-ESP
	option src		wan
	option dest		lan
	option proto		esp
	option target		ACCEPT

config rule
	option name		Allow-ISAKMP
	option src		wan
	option dest		lan
	option dest_port	500
	option proto		udp
	option target		ACCEPT


### EXAMPLE CONFIG SECTIONS
# do not allow a specific ip to access wan
#config rule
#	option src		lan
#	option src_ip	192.168.45.2
#	option dest		wan
#	option proto	tcp
#	option target	REJECT

# block a specific mac on wan
#config rule
#	option dest		wan
#	option src_mac	00:11:22:33:44:66
#	option target	REJECT

# block incoming ICMP traffic on a zone
#config rule
#	option src		lan
#	option proto	ICMP
#	option target	DROP

# port redirect port coming in on wan to lan
#config redirect
#	option src			wan
#	option src_dport	80
#	option dest			lan
#	option dest_ip		192.168.16.235
#	option dest_port	80
#	option proto		tcp

# port redirect of remapped ssh port (22001) on wan
#config redirect
#	option src		wan
#	option src_dport	22001
#	option dest		lan
#	option dest_port	22
#	option proto		tcp

### FULL CONFIG SECTIONS
#config rule
#	option src		lan
#	option src_ip	192.168.45.2
#	option src_mac	00:11:22:33:44:55
#	option src_port	80
#	option dest		wan
#	option dest_ip	194.25.2.129
#	option dest_port	120
#	option proto	tcp
#	option target	REJECT

#config redirect
#	option src		lan
#	option src_ip	192.168.45.2
#	option src_mac	00:11:22:33:44:55
#	option src_port		1024
#	option src_dport	80
#	option dest_ip	194.25.2.129
#	option dest_port	120
#	option proto	tcp