Hi everyone,
Here’s a problem about CDN traffic scheduling. So far as I know, many
business companies use multi-CDN to speed up their websites and the CDN
providers have requirements for precise traffic scheduling especially in the
rush hour of traffic.
As CDN providers usually manage authoritative DNS for their clients, the most
common method for real-time traffic scheduling is to change the A records of
CDN nodes. It does have some positive effects. But because of the lack of DNS
protocol support (especially on the recursive server side), a CDN company can’t
schedule traffic very precisely.
For example, a CDN provider can’t schedule 70% of traffic to node A and 30% of
traffic to node B. Even though it places the addresses of both A and B, it
can’t determine recursive server’s response to clients. For example, some
recursive server may round-robin the address to clients.
For better precise CDN traffic scheduling, I have an idea that defines 3 new
records from extending 3 existing DNS resource records: A, AAAA and CNAME, by
adding a “weight” attribute,as below:
[<owner> <ttl> <class> CNAME <target>] -> [<owner> <ttl> <class> CNAMEX
<weight> <target>]
[<owner> <ttl> <class> A <address>] -> [<owner> <ttl> <class> AX <weight>
<address>]
[<owner> <ttl> <class> AAAA <address>] -> [<owner> <ttl> <class> AAAAX
<weight> <address>]
The reasons for doing this are :
(1) By adding “weight” in CNAMEX, a multi-CDN user can manage the traffic ratio
among different CDN providers by itself easily.
(2) By adding “weight” in A/AAAA, a CDN provider can manage the traffic ratio
among different nodes by itself easily.
For compatibility, an authoritative server should place the CNAMEX/AX/AAAAX
records in additional section in a DNS response for a “A/AAAA” query. A
“weight-aware” recursive server should make use of the “CNAMEX/AX/AAAAX” in the
additional section to manage the answer to clinents according to the weight of
each RR. A “weight-not-aware” recursive server can just ignore these RRs and
still work normally.
Here is an example: If a CDN provider configures AX records for
“www.example.com” as below which indicates “1.1.1.1” should account for 80% in
response while “2.2.2.2” accounting for 20%. A “weight-aware” recursive server
should reply to clients accordingly.
Any comment or advice is highly appreciated!
Thank you!!
[email protected]
_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop