split DNS?

Kevin Darcy kcd at daimlerchrysler.com
Fri May 25 02:17:18 UTC 2007


Sky Me wrote:
> Hello list,
>
> Given the case there're two ISPs exist,and some clients belong to ISP
> A,some clients belong to ISP B.Accessing from ISP A to ISP B is very
> slow,then we need to put services on both ISPs.Given the server host
> ip on ISP A is: 11.11.11.11,and the server host ip on ISP B is:
> 22.22.22.22,surely they run the same service.
>
> Ok when clients in ISP A access the service (given the service name is
> foo.example.com),their requests would be brought to
> 11.11.11.11.Otherwise when clients in ISP B access the same
> service,they would go to 22.22.22.22.
>
> How to do it?The way currently I used is:
>
> Set a CNAME for 'foo.example.com' to 'foo.split.example.com' in main
> DNS.Here 'split.example.com' is a seperate domain,it has its own NS
> server,which is different from main DNS,let me call it split-dns.When
> querying for 'foo.split.example.com' reach split-dns,it answer
> different CNAME results based on which ISPs clients' IPs belong to.
>
> For example,if client's IP is ISP A's,then split-dns answer the result:
>
> ispa.foo.example.com
>
> if client's IP is ISP B's,it answer the result:
>
> ispb.foo.example.com
>
> Then in main DNS,'ispa.foo.exampe.com' would finally be pointed to
> 11.11.11.11,and 'ispb.foo.example.com' would finally be pointed to
> 22.22.22.22.
>
> The whole process for ISP A is:
>
> foo.example.com  CNAME  foo.split.example.com  #1
> foo.split.example.com  CNAME  ispa.foo.example.com  #2
> ispa.foo.example.com  A  11.11.11.11  #3
>
> The whole process for ISP B is:
>
> foo.example.com  CNAME  foo.split.example.com  #1
> foo.split.example.com  CNAME  ispb.foo.example.com  #2
> ispb.foo.example.com  A  22.22.22.22  #3
>
> The #1 and #3 were happend on main DNS,the #2 was happened on split-dns.
>
> For main DNS we use BIND 9,the split-dns was written by me,based on
> Stanford::DNSserver framework.All these work properly.
>
> My question is, is this the best way?Is there any way can do it using
> BIND's own features?Thanks guys.
>   
If you're differentiating the answers based on the address range(s) 
containing the source addresses of the queries, you've basically 
reinvented the "view" feature of BIND 9.

I'm not sure why you need the nested CNAME though: why not just have 
foo.split.example.com resolve to 11.11.11.11 for ISP A's clients and to 
22.22.22.22 for ISP B's clients? Or, for that matter, have 
foo.example.com itself resolve differently. Nested CNAMEs generally 
aren't a good idea.

                                                                         
                        - Kevin




More information about the bind-users mailing list