+ Responder ao Tópico



  1. #1
    hunt3r
    Visitante

    Padrão 2 servidores respondendo o mesmo dominio de email

    Olá pessoal, estou com um probleminha...


    tenho 1 dominio de email dominio.com.br

    Tinha o MX dele rodando em um servidor master.dominio.com.br
    Por desatualizacao de software, de equipamento dentre outros, resolvi migrar meu server, para uma maquina nova... MAS...

    o server antigo roda postfix....

    o server novo está com qmail+vpopmail implantado...

    o que torna a migração de contas onerosa demais pra se ter esse trabalho...

    entao eis que surge a "solucao"

    ter 2 servidores respondendo pelo mesmo dominio, deixando o antigo como "primario" e o novo com secundário (ele vai responder pelas contas NOVAS de email, as que surgirem daqui por diante...


    ai vai um trecho do arquivo de configuração do 'database', apontado pelo named.conf
    Código :
    @ IN MX 5 master.dominio.com.br.
    @ IN MX 10 slave.dominio.com.br.

    pelo que andei lendo, ele deveria responder quando o master está inativo OU QUANDO O ENDERECO FOR RECUSADO PELO MASTER....

    so que o segundo caso não está acontecendo, no caso de recusa do endereco pelo master, ele simplesmente devolve a mensagem com erro...


    O que eu estou esquecendo?

    Obrigado, abracos...

  2. #2
    Avenger
    Visitante

    Padrão 2 servidores respondendo o mesmo dominio de email

    Cria todas as contas no seu do qmail, deixa em MX só o qmail, e faz um arquivos .qmail redirecionando todos os emails -também- para as caixas do outro servidor antigo, e configura um MX prá ele tipo old.provedor.com.br ou algum host local mesmo só pros dois servidores acharem.

    o .qmail deve ter isso:
    Código :

    E pronto. O trabalhão vai ser fazer isso prá todos os e-mails. Mas daí você terá um 'xerox' do seu MTA no MTA antigo sem usar aquela confusão de dois MXzes com prios diferentes: afinal de contas, desse modo o email vai chegar em um -ou- em outro.

    Outro jeito talvez seria usar um dos MTAs como 'relay' do outro, daí envolve umas coisas tipo fetchmail, que eu não tenho muita experiência com isso não, mas já tem tópico aberto aqui falando sobre esses relays.

  3. #3
    hunt3r
    Visitante

    Padrão 2 servidores respondendo o mesmo dominio de email

    Caro avenger....

    muito inteligente a sua solucao, diga-se de passagem...

    porem, no meu caso em especifico, ela encontra um grave problema...

    armazenamento.... sabe como é setor administrativo... ja que investiram um bom dinheiro no server novo, eles se recusam VEEMENTEMENTE a investir mais no server antigo, que já está com 86% da capacidade de armazenamento...

  4. #4

    Padrão 2 servidores respondendo o mesmo dominio de email

    Cara vou dar um super chute aqui, mas talvez te dê alguma luz.

    Você não tem que fazer nenhuma configuração no postfix (que está como primário) de forma que ele saiba que quando não encontrar o usuário ele deve tentar entregar no outro servidor.

    Você tem como me passar a documentaçao que usou para fazer isso, pra mim dar uma olhada, quem sabe saia alguma coisa mais consistente dessa cachola

  5. #5
    Avenger
    Visitante

    Padrão 2 servidores respondendo o mesmo dominio de email

    Acho que ...

    O problema é que daí você teria de adotar um novo host para o novo servidor de e-mail.
    Sua idéia é manter quem já estava no velho, no velho. Ou poder lentamente ir puxando o pessoal pro novo servidor, entre essas duas formas, tanto faz. Dessa forma os velhos precisam continuar conseguindo acessar as contas pop3 transparentemente no velho, enquanto o novo toma posse aos poucos.
    A solução seria renomear o servidor antigo mesmo prá old.mxdomain.com.br e deixar a nova com o mxdomain.com.br. Embora pareça confuso, então você manteria o host do servidor antigo que os usuários já usam prá checar e-mail (pop3.mxdomain.com.br, por exemplo) e criaria um novo host para o novo servidor. (MX: velho com host diferente e o novo assume o host do velho; POP3: velho continua com o mesmo host e novo assume um host 'novo e provisório').

    Você vai precisar de toda a lista de e-mails (só com o nome de usuário) do sistema velho.Pode por num .txt separado cada nome de usuário por linha ou por espaço, e então, no MTA novo, fazer para cada usuário uma conta com redirecionamento. Nada que você não consiga fazer com um 'ls > lista_de_usuarios' ou cat <arquivo> | cut -f1 -d":" > lista_de_usuarios.txt.

    Tendo a lista em mãos, suponhamos que você conseguiu uma lista com todos os nomes separados por espaço ou então todos os nomes separados por <CR> (enter).
    Com esse arquivo lá no MTA, você vai fazer um script (não vou ter como testar daqui, então talvez você deva fazer alguma depuração nele antes de rodar).
    Esse script vai criar um usuário de acordo com o nome no arquivo, usando a opção -e <palavra> do vadddomain -- espera-se que a senha que vá sair para o vpopmail tenha uma combinação impossível de ser adivinhada de qualquer jeito (não dá prá saber que combinação crypt() de letras daria 'essa_senha') então caso o usuário passe a usar essa conta de e-mail, o .qmail seria excluído e a senha trocada para a senha que o usuário realmente quiser.
    Após o script gerar o usuário, ele iria criar automagicamente um arquivo .qmail dentro do diretório do usuário, contendo: [email protected]; dessa forma a conta estaria ali, sem senha possível, só fazendo redirecionamento dos e-mails dele para sua caixa antiga.
    Presumi que você já tenha criado o domínio antes!..

    Código :
    #!/bin/bash
    listagem="/root/lista_de_usuarios.txt"
    vpopdir="/home/vpopmail/bin/"
    dominio="mxdomain.com.br"
    dominio_velho="old.mxdomain.com.br"
     
    for usuario in "$(cat "${listagem}") ; do
     echo -n "Configurando '${usuario}': "
     ${vpopdir}/bin/vadduser "${usuario}"@"${dominio}" -e "essa_senha"
     #agora o script que acabei de fazer em outro post, embutido aqui! :)
     matches="$(cat ${vpopdir}/domains/${dominio}/vpasswd | grep "${usuario}")"
     userdir=
     # Isso é importante porque o usuário pode cair em 'variantes' de diretórios:
     for ((counter=1;$counter "<=" $(echo "$matches" | wc -l);counter=$(($counter+1)))); do
      match="$(echo "${matches}" | head -n $counter | tail -n 1)"
      if [ "$(echo "$match" | cut -f1 -d":")" == "${usuario}" ]; then 
       userdir="$(echo "${match}" | cut -f6 -d":")"
       # Cuidado para esse break não fechar o 1.o 'for' também!..
       break
      fi
     done
     echo "${usuario}@${dominio_velho}" > $userdir/.qmail
     echo -n ", "
    done
    echo "pronto!."

    Daí todos os usuários antigos estarão tendo seus emails enviados para o velho servidor. Lembre-se de configurar o servidor velho para corretemante receber os e-mails @old.mxdomain.com.br

    Então para cada usuário do novo servidor de e-mail você colocaria o servidor no cliente deles como 'novopop.mxdomain.com.br' ou algo assim. Quando TODOS, um dia, no dia que você desligar o velho servidor, estiverem no qmail, o que pôde ter sido feito com toda a paciência do mundo, você faz um cname para novopop apontar para 'pop', o old.mxdomain.com.br pode morrer, e o pop.mxdomain.com.br irá apontar pro IP, finalmente, do novo servidor.

    Aí acho que resolve sem tanto transtorno, né? Se você quiser ficar com seu servidor antigo ligado pro resto da vida também não teria problema além dele enferrujar ou queimar o HD ou barata fazer ninho.

  6. #6
    Avenger
    Visitante

    Padrão 2 servidores respondendo o mesmo dominio de email

    Ah, prá por o scriptzinho prá depurar,
    comenta todas as linhas que começam com 'echo -n' prá evitar output desnecessário,
    a linha do ${vpopdir}/bin/vadduser você coloca um 'echo' no início dela, e a linha onde tem 'echo '$ususario@blahbla > ${dirla}/.qmail você troca o '>' por '\>'; a variável ${userdir} vai estar em branco pelo fato de o arquivo vpasswd não existir (aliás nem o usuário vai ter sido criado).
    Então você vai ter que checar o output do tipo:
    Código :
    /home/vpopmail/bin/vadduser [email][email protected][/email] -e essa_senha
    [email][email protected][/email] > /.qmail
    Prá caaada um dos trocentos usuários
    Note que se tiver no arquivo de usuários alguma conta que já esteja no MTA novo, mesmo no modo debug vai aparecer o diretório direitinho na segunda linha, antes do '/.qmail'. Na prática nesse caso, sem estar depurando, o que se espera que aconteça é que o vadduser retorne erro e o script force o redirecionamento das mensagens 'gerando' o .qmail no diretório do usuário. Então um usuário que já estava configuradinho certinho irá mandar suas mensagens agora para o velho MTA. hehe