MX rotation and load balancing

Mark_Andrews at isc.org Mark_Andrews at isc.org
Wed Jul 21 23:18:39 UTC 1999


	BIND 8.2 / 8.2.1 supports random ordering of responses.

	options {
		rrset-order {
			type mx order random;
			order cyclic;
		};
	};

	Mind you the MTA is supposed to randomly pick between MX records
	of equal preference but if you randomise the answer it won't
	matter if it don't.

	Mark

> I have noticed that bind8 rotates MX records just like A records, which
> seems to be a good thing. However I have the mailhosts for my domain set
> up as follows:
> 
> 	@	MX	10 mail1.mydomain
> 	@	MX	10 mail2.mydomain
> 	@	MX	10 mail3.mydomain
> 	@	MX	20 mail1.myisp
> 	@	MX	20 mail2.myisp
> 	@	MX	30 mail3.myisp
> 
> However bind rotates this entire list, which means that in the next
> state, the client will see:
> 
> 	@	MX	10 mail2.mydomain
> 	@	MX	10 mail3.mydomain
> 	@	MX	20 mail1.myisp
> 	@	MX	20 mail2.myisp
> 	@	MX	30 mail3.myisp
> 	@	MX	10 mail1.mydomain
> 
> etc.
> With the effect that mail1.mydomain will be listed before mail2.mydomain
> in 5 of 6 states. And as many mailserver implementations are simply
> picking the first MX record with the lowest weight, this means that
> mail1.mydomain gets much more traffic than mail3.mydomain. This seems to
> defeat the purpose of having multiple hosts with the same weight. I
> guess this is a mailer problem, but that's a problem for remote hosts:
> nothing I can do about it. More intelligent rotation in bind would help
> as well.
> 
> Another solution I tried is having multiple A records for the mailhost
> (which are also rotated by bind):
> 
> 	@	MX	10	mail.mydomain
> 	@	MX	20	mail1.myisp
> 	@	MX	20	mail2.myisp
> 	@	MX	30	mail3.myisp
> 	mail	A	192.168.1.1
> 	mail	A	192.168.1.2
> 	mail	A	192.168.1.3
> 
> This works a lot better for load balancing, however as soon as one of
> the three mailhosts drop dead, a lot of the mail for my site is routed
> via mail1.myisp because many mailservers don't seem to check for
> multiple A records, but only use the first one. If this happens to be
> the host that is down, then they immediately use the backup hosts.
> 
> I guess the ideal solution would be something like:
> 
> 	@	MX	10	dummy1.mydomain
> 	@	MX	10	dummy2.mydomain
> 	@	MX	10	dummy3.mydomain
> 	@	MX	20	mail1.myisp
> 	@	MX	20	mail2.myisp
> 	@	MX	30	mail3.myisp
> 	dummy1	A	192.168.1.1
> 	dummy1	A	192.168.1.2
> 	dummy1	A	192.168.1.3
> 	dummy2	A	192.168.1.2
> 	dummy2	A	192.168.1.3
> 	dummy2	A	192.168.1.1
> 	dummy3	A	192.168.1.3
> 	dummy3	A	192.168.1.1
> 	dummy3	A	192.168.1.2
> 
> However this just doesn't look "nice" to me. Is there any other way
> which I may be missing?
> 
> 
> Greetings,
> 
> Johan van Selst
> 
> 
--
Mark Andrews, Internet Software Consortium
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org


More information about the bind-users mailing list