Interação
DNS x Sendmail
Tomemos o exemplo da Unicamp. O meu endereço particular é queiroz@unicamp.br. Não existe entretanto um computador denominado "unicamp.br" (nada impede, entretanto, que exista). Para se realizar entrega de mensagens para endereços como o meu é necessário que o programa sendmail interaja com o DNS para obter nomes de computadores reais que façam a entrega destas mensagens.
Vejamos como isto ocorre no DNS:
% nslookup Default Server: ns.unicamp.br Address: 143.106.1.5 > set type=mxO comando acima indica que eu quero obter do servidor DNS apenas registros do tipo MX.
unicamp.br preference = 5, mail exchanger = apolo.ccuec.unicamp.br unicamp.br preference = 10, mail exchanger = styx.iqm.unicamp.br unicamp.br preference = 0, mail exchanger = obelix.unicamp.br unicamp.br nameserver = ns.sbq.org.br unicamp.br nameserver = ns.unicamp.br unicamp.br nameserver = styx.iqm.unicamp.br apolo.ccuec.unicamp.br internet address = 143.106.80.3 styx.iqm.unicamp.br internet address = 143.106.51.37 styx.iqm.unicamp.br internet address = 143.106.1.37 obelix.unicamp.br internet address = 143.106.10.2 ns.sbq.org.br internet address = 200.136.224.101 ns.unicamp.br internet address = 143.106.1.5O domínio "unicamp.br" possui três servidores que podem atende-lo, obelix.unicamp.br, apolo.ccuec.unicamp.br e styx.iqm.unicamp.br. A cada um destes servidores está associado um número. Este número indica a prioridade que cada um dos servidores possui. Quanto mais baixo o número mais alta a prioridade.
Desta forma, mensagens enviadas para o domínio unicamp.br devem ser entregues primeiramente a maquina obelix.unicamp.br (valor 0). Caso esta máquina esteja fora do ar, as mensagens devem então ser entregues à máquina apolo.ccuec.unicamp.br (valor 5). E em último caso, as mensagens devem ser entregues à máquina styx.iqm.unicamp.br (valor 10).
Todas as mensagens enviadas para determinado domínio possuem uma ordem de precedência quanto ao computador que irá recebe-las.
O fato de que eu tenha três servidores que possam receber mensagens endereçadas a um domínio como "unicamp.br" não implica no fato de que os usuários tenham contas nas três máquinas.
Quando alguém manda uma mensagem para queiroz@unicamp.br, o programa sendmail que irá fazer a entrega da mensagem primeiramente faz uma consulta ao DNS pedindo os registros MX associados ao domínio "unicamp.br". De posse das respostas, ele tentará entrar em contato com o servidor especificado no registro MX de mais alta prioridade. Este servidor, o de prioridade mais alta, normalmente é o servidor onde as pessoas tem suas contas. Ou seja, se este servidor estiver no ar e funcionando perfeitamente, o programa sendmail deste servidor irá aceitar a conexão, receber a mensagem, e gravá-la na mailbox do usuário queiroz.
Caso ele não esteja funcionando, o programa sendmail tentará então entrar em contato com o servidor especificado no registro MX seguinte. O usuário queiroz não possui conta neste segundo servidor. O que ocorre então? A mensagem é recebida e ao invés de ser gravada na mailbox do usuário (que não existe neste equipamento), é mantida na área de spool de mensagens. Esta mensagem ficará então na fila e de tempos em tempos o sendmail tentará conectar com a máquina destino, para enviar a mensagem.
É claro que, caso a máquina cujo registro MX tenha a prioridade mais alta demore mais que cinco dias para voltar a funcionar, existe o risco das mensagens retornarem a quem as enviou dizendo que o destino está inacessível.
Alguns pontos importantes a serem lembrados. Os servidores MX de determinado domínio devem residir em redes diferentes, o mais afastadas possível. Caso residam em redes diferentes mas compartilhem a mesma linha de comunicação para acesso à Internet não adianta muita coisa. Se a linha cair as duas ou mais máquinas ficam inacessíveis e a mensagem não será entregue. Se possível, coloque os servidores MX de seu domínio em redes diferentes, como por exemplo, uma delas no tronco RNP da Internet Brasil e outra no tronco Embratel. Desta forma você garante que mensagens enviadas para o seu domínio sempre cheguem.
E se a sua máquina demorar muito para ser consertada? Contacte o administrador do seu servidor MX secundário e peça a ele para ir salvando as mensagens destinadas ao seu domínio em uma área alternativa. Desta forma não se perdem mensagens e você economiza tempo de processamento do servidor secundário visto que ele não ficará tentando entregar, a intervalos normalmente definidos em uma hora, mensagens que não podem ser entregues.
Nunca se esqueça de avisar o administrador do servidor MX secundário quando houverem problemas com o servidor primário. Especialmente se o seu domínio recebe muitas mensagens. Se o servidor secundário for uma máquina com poucos recursos de armazenamento, problemas sérios poderão ocorrer. Se o filesystem ficar cheio mensagens para o domínio que o servidor secundário atende também serão devolvidas. E como estas coisas de um ser servidor secundário de outro geralmente funcionam no favor, não é bom complicar a vida de quem está te ajudando.
Uma vez que a sua máquina voltar a funcionar, o administrador do servidor MX secundário poderá invocar o sendmail para processar especificamente a fila de mensagens para o seu domínio.
Suponhamos que isto tenha sido feito movendo-se as mensagens para o diretório /var/spool/unicamp.back. Para invocar o sendmail fazendo com que ele utilize este diretório basta invocá-lo com as seguintes opções abaixo:
# /usr/sbin/sendmail -OQueueDirectory=/var/spool/unicamp.back -q -vUma consideração final, todas as precauções que sugeri para os servidores MX secundários se aplicam também aos servidores DNS secundários. Para ficar garantido, coloque o seu servidor primário no Brasil e um secundário na Austrália. Só para garantir.
| Anterior
| | Próxima | | Sumário
| | Notas |
SENDMAIL
Página
21