CNAME Support

dreamobjects

#1

DreamObjects now has an interface to create CNAME records for your buckets! See more info in our wiki - http://wiki.dreamhost.com/DreamObjects_CNAME


#2

nice move!
but I still have a question. (and also suggestion)

back then I pointed out that DreamObjects bucket has an issue in domain mapping method here:

issue summary: mapped domain is not compatible with an origin pull CDN because DreamObjects perform internal DNS query to receive the bucket name from authority DNS server. (since origin pull CDN also change (modify) this (CNAME) record to direct website’s visitors to its server instead of original one (DreamObjects) thus the bucket name cant be received by DreamObjects.)

but with this new user interface which allow us to explicitly specify bucket alias, the problem can be solved.
However, I just test things out; it turn out that this feature is solely just for user who want to use Dreamhost’s DNS servers; the domain mapping mechanism is still left unchanged.

My question is:
In case of old users who use CNAME without creating bucket alias in Dreamhost panel, it’s understandable why DreamObjects need to query authority DNS server (It’s to receive bucket name.); but in case of those who create bucket alias in Dreamhost Panel, why DreamObjects need to query authority DNS server too? since it should already know what it will get. (It should be the same data as in alias name but if it’s not: the one who send the request is likely to know what they want.)

If you have good reasons about this please explain to me.
If not I have a suggestion that DreamObjects should obey bucket alias since this can also prevent unnecessary DNS query. (just store and read bucket name from harddisk storage somewhere in the system.) and main reason is compatibility with origin pull CDN.


#3

The bucket alias interface in the DreamHost Panel just creates DNS records on our servers. It’s not doing anything to the bucket.

If you’re using a CDN, though, I’m not sure that you need a bucket CNAME at all. Try pointing the CDN directly to the bucket’s “real name” (e.g, https://bucketname.objects.dreamhost.com). (Which CDN are you using?)


#4

[quote=“Andrew_F, post:3, topic:60559”]The bucket alias interface in the DreamHost Panel just creates DNS records on our servers. It’s not doing anything to the bucket.[/quote]Yes, I know. That’s why I’m here. (because the info entered to bucket alias is more valuable than just to creates a CNAME record.)

[quote=“Andrew_F, post:3, topic:60559”]If you’re using a CDN, though, I’m not sure that you need a bucket CNAME at all. Try pointing the CDN directly to the bucket’s “real name” (e.g, https://bucketname.objects.dreamhost.com). (Which CDN are you using?)[/quote]If you ask for CDN name to see the actual problem for yourself, I suggest you try Cloudflare since it’s free.

However, if you already know how DreamObjects’ CNAME mapping works (You supposed to because you are the one who confirmed my theory here
https://discussion.dreamhost.com/thread-136188-page-2.html ) it seem like you don’t know how origin pull CDN works!

So, let me explain

Origin pull CDN typically has 2 main components
1 DNS server
2 caching reverse proxy

let say I have a website example.com and use cdn.example.net as CDN
I have to use ns1.cdn.example.net and ns2.cdn.example.net as nameservers for my example.com website so I have to manage DNS record in control panel of cdn.example.net.

I can put CNAME record that point from “do.example.com” to “bucketname.objects.dreamhost.com” there and it will work as you expect

until I active CDN functionality on “do.example.com”.
Why?
because when the CNAME record actually pointed to “bucketname.objects.dreamhost.com” the visitors will connect directly to Dreamhost’s server there is no opportunity for caching proxy to kick in.

So, origin pull CDN modify this CNAME record to point the visitors to caching proxy server instead of origin server.
Now we have CNAME record that pointed to “cache.cdn.example.net” instead of “bucketname.objects.dreamhost.com”.

cache.cdn.example.net” is part of CDN system so it will know that it should send requests to “bucketname.objects.dreamhost.com” regardless of “bucketname.objects.dreamhost.com” is in actual DNS record or not.

but when DreamObjects query “ns1.cdn.example.net” and got “cache.cdn.example.net” it cant determine the bucket name. (since the bucket name is not there.)

but now you have new feature/UI that intend to just control DNS records. The values entered there can also use as explicit bucket pointer (no need to query DNS for a bucket name anymore).
It solve CDN conflict and can also improve overall system performance.

It sound good, isn’t it?

P.S. If you have hard time explain this issue to other dreamhoster please allow me to join your conversation. my English is not perfect (because I’m Thai) but my communication skill is relatively high.