Неконсистентная работа DNS

$ dig +noall +answer @192.168.104.1 yt3.ggpht.com
yt3.ggpht.com.		4701	IN	CNAME	photos-ugc.l.googleusercontent.com.
photos-ugc.l.googleusercontent.com. 280	IN A	10.224.41.29
$ dig +noall +answer @192.168.104.1 photos-ugc.l.googleusercontent.com
photos-ugc.l.googleusercontent.com. 159	IN A	142.250.179.97

DNS сервер отдаёт разные IP адреса для одного и того же по сути домена.

Проблема становится заметной при использовании кеширующего DNS, например systemd-resolved (де факто стандарт в ubuntu/debian). A запись протухает быстрее, чем CNAME, поэтому повторно запрашивается только она, и возвращается заблокированный IP адрес.

В данном конкретном случае перестают грузиться иконки на youtube, после перезапуска VPN они какое-то время отображаются, потом опять перестают отображаться.

Как это должно работать (по моему мнению, возможно приведёт к прогону лишнего трафика через VPN):

  1. Должен храниться словарь всех переназначений IP адресов.
  2. Для любого домена нужно проверять наличие IP в этом словаре. И если IP уже был переназначен, то для данного домена тоже нужно заменить IP адрес.

Тогда это ничем не будет отличаться от просто фиксированной замены одного адреса на другого, что приведёт к проксированию по IP-адресам, а не доменам.

Не знаю, как лучше решить эту проблему, но подумаю.

Сделал удаление CNAME из ответа на A-запрос и перезапись домена CNAME’а на запрашиваемый домен.

Может, поможет, а может и не решит проблему полностью, так как в случае CNAME’а при других запросах (не-A) он не убирается, и умный кеширующий резолвер, наверное, может всё равно продолжать его использовать.
Однако, как я полагаю, резолвер делает только A/AAAA/HTTPS-запросы при типичном браузинге сайтов, а все эти случаи должны работать корректно.