Откуда «Cloud Files» от Rackspace знает о моей записи CNAME?

Откуда «Cloud Files» от Rackspace знает о моей записи CNAME?

TLDR: когда я создаю эту запись DNS:

whatever.mydomain.com.  IN CNAME biglongjibberstring.r89.cf2.rackcdn.com.

Откуда Rackspace знает, что выбранное мной случайное имя хоста должно относиться к моему контейнеру/аккаунту Cloud Files, а не к другому клиенту?


Я только что протестировал простой пример использования Cloud Files с Rackspace. Я создал Cloud Files "Container" и включил опцию "Static Website". Я загрузил пример изображения и пример файла index.html. Эти файлы в этом контейнере теперь доступны по этому безумно длинному URL, который пользовательский интерфейс сообщает мне, что я могу использовать в качестве CNAME для своего домена:

Настройки контейнера Cloud Files

И конечно же, добавив запись CNAME, например:

what.mydomain.com. В CNAME biglongjibberstring.r89.cf2.rackcdn.com.

Просматриваяhttp://whatever.mydomain.com/работает (проверил домашнюю страницу и изображение). Но как он может знать, что когда он видит запрос на "whatever.mydomain.com" (в заголовке HTTP Host), он предназначен для моего конкретного контейнера облачных файлов?

Кажется, это как-то связано с DNS, так как если я просто помещаю "blah.example.com" в свой файл hosts с IP-адресом, в который преобразуется biglongjibberstring.r89.cf2.rackcdn.com. - это не работает (выдает ошибку о недопустимом URL - похоже, что он исходит от Akamai). Единственный способ, которым я мог бы увидеть, чтобы это работало, - это если бы каким-то образом поиск DNS для any.mydomain.com каким-то образом передавал обратно на DNS-серверы Rackspace/Akamai эту связь между "whatever.mydomain.com" и "biglongjibberstring.r89.cf2.rackcdn.com.". Но я никогда не видел такого подхода и даже не думаю, что поиск DNS, который возвращается к Rackspace/Akamai, на самом деле содержит необходимую для этого информацию (хотя я могу ошибаться).

Кто-нибудь знает, что за черная магия здесь происходит?

решение1

Наблюдая за поведением, я могу предположить, что они могли бы делать следующее:

Когда HTTP-запрос поступает на один из узлов CDN и у запроса есть неизвестный Hostзаголовок, они самостоятельно ищут имя в Hostзаголовке.

Если это имя оказывается CNAMEссылкой на известное имя (в форме <identifyinginformation>.rackcdn.com.), они связывают имя из Hostзаголовка с соответствующим ресурсом, в противном случае они возвращают ошибку.


Это предположение, но это то, что я могу придумать и что соответствует тому, что технически осуществимо, а также наблюдаемому поведению.документация на Rackspaceне уточняет, как это на самом деле работает, но надеемся, что их поддержка сможет помочь.

Если кто-то захочет продолжить эксперимент самостоятельно, сотрудник Rackspace укажет URL-адресhttp://124f4d373d9886355285-0dddf6f52a326dca397d3ae1202a22fd.r49.cf2.rackcdn.com/1_logs_dir.pngкак пример в комментариях на странице документации, ссылка на которую приведена выше. Просто добавьте CNAMEк хостовой части этого URL, измените URL соответствующим образом и попробуйте.

Связанный контент