Failover with DNS

Kevin Darcy kcd at daimlerchrysler.com
Tue Feb 15 02:16:37 UTC 2000


Mohammed Ghanawi wrote:

> I would like to configure a failover system using DNS, so that
>
> if mail1.domain.com fails all mail should be routed to mail2.domain.com
> if web1.domain.com fails all HTTP traffic should be routed to
> web2.domain.com
> is ldap1 fails the use ldap2
>
> I usually duplicate mail1 and mail2, web1 and web2, ldap1 and ldap2.
>
> right now I have aliases
>
> mail -> mail1
> web -> web1
> ldap -> ldap1
>
> if web1 fails for example, I just go to the dns server and point web to
> web2, same for mail and ldap.
>
> Is there a way to make this automatic with DNS ?

For mail, you should be able to use MX records. Any SMTP mailer which
obeys RFC 974 knows how to failover from a better-preference MX target to
a worse-preference MX target.

Unfortunately, for the other protocols, there is no standard, propagatable
way to do this. The SRV record type is protocol-independent, and has a
preference scheme similar (but superior) to MX records, but, last
I looked, it wasn't a standard, and in any case requires changing lookup
semantics at the client level, which is a major barrier to
deployment/acceptance.

If you have control of all the slaves for a zone, and if they all support
the feature, you could use the "rrset-order" option (or the
non-BIND equivalent, if any) to give out the addresses for these names in
a "fixed" order. But because "rrset-order" options aren't propagated,
caching servers may interfere with the sort order, with the only
quasi-solution being to lower the TTL's on the records (which increases
DNS traffic). Uncontrolled slaves, including possibly stealth slaves (if
you allow them), may also interfere with the sort order. So there is no
really good solution right now. I'm currently experimenting with a new
DNS record type which will specify response ordering in a way that is
propagatable, but I don't know if these experiments will bear any fruit...


- Kevin





More information about the bind-users mailing list