A solução mais preferível para equilibrar a carga é usar um balanceador de carga real . Se você não estiver comprometido com os caprichos de quão mal determinado MTA implementou os RFCs.
Em um mundo perfeito, qualquer uma dessas soluções que você mencionou seria boa, mas no mundo real você provavelmente verá uma divisão de carga constante de 60/40, na melhor das hipóteses. Isso ocorre porque, embora os RFCs de e-mail e DNS possam ter muitos SHOULDs e MUSTs assustadores em relação à aleatorização durante a seleção do host, permanece o fato de que os programadores são preguiçosos e não há como o servidor rejeitar conexões devido à seleção de hosts preguiçosos. p>
As duas situações que você verá são:
- Tráfego atingindo o primeiro registro.
- Tráfego atingindo o primeiro registro após a classificação dos registros disponíveis.
O melhor equilíbrio que consegui atingir foi atribuir os IPs mais altos aos MXes mais baixos. No seu caso, isso significaria:
example.com. IN MX 10 mx1.example.com.
example.com. IN MX 10 mx2.example.com.
mx1.example.com. IN A 172.31.0.10
mx2.example.com. IN A 10.0.0.10
Isso deve ajudar a balancear as coisas, já que o PWM [MTA mal escrito] # 1 preferirá o nome de registro MX mais baixo, enquanto o PWM # 2 preferirá o IP de menor MX.
Mas, como eu disse, você nunca verá um verdadeiro equilíbrio.
Fonte: eu administrei um cluster MX de 10 nós que atende mais de 10.000 domínios. [E aquele com o IP mais baixo ainda tem 30% do tráfego total e acabamos fazendo com que seja uma máquina mais robusta :I
]