[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Servidor de DNS/email com 2 placas de rede.



Edmundo Valle Neto escreveu:
Miguel Da Silva - Centro de Matemática escreveu:
Edmundo Valle Neto escreveu:
Edmundo Valle Neto escreveu:
Miguel Da Silva - Centro de Matemática escreveu:
Felipe Augusto van de Wiel (faw) escreveu:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/03/2007 10:49 PM, Miguel Da Silva - Centro de Matemática wrote:
Estimados, estou tendo problemas com um servidor no trabalho. Atualmente
ele é o nosso servidor de e-mail e possui 1 placa de rede com 1 IP
configurado nela (sem alias, nem nada do tipo).

Quero fazer com que esse servidor seja também servidor de DNS. Para isso
quero usar uma outra placa de rede que terá associada a ela o IP do
atual servidor de DNS (que será desativado).

Já pude configurar o bind e o postfix sem problemas e posso também
configurar as placas normalmente, cada uma com o IP que tem que ter. Sei
que o DNS e o e-mail funcionam sem problemas nesse novo servidor

O que quero é que o DNS use uma placa de rede e o e-mail use outra,
entretanto quando levanto as duas placas de rede, os serviços nao
funcionam corretamente. Nem sequer os pings funcionam. Acho que é algum
problema de roteamento.

Sugestoes?

    Configure apenas um gateway em uma das placas de rede, se você
configurar um gateway em cada placa de rede vai ter problemas.

    Além disso, você pode configurar o bind e postfix pra escutar
numa interface específica, depende do programa, as diretivas costumam
ser 'listen'.


Até mais.

    Abraço,

- --
Felipe Augusto van de Wiel (faw)
"Debian. Freedom to code. Code to freedom!"

Felipe, cheguei a avançar um pouco nesse assunto. Estive usando o comando ip para criar regras (ip rule add ...) e para ajustar a tabelas de roteamento (ip route add ...), entretanto acabei configurando uma interface de rede virtual.

Usando o comando ip foi possível fazer com que os pacotes que chegasse no servidor através da interface eth0, saissem do servidor por essa mesma interface. O mesmo vale para eth1.

O que ficou faltando para resolver o problema como eu queria (usar 2 placas de redes, cada uma com um IP diferente) era configurar "a rede" para que os pacotes que entrassem desde fora da rede nao tivessem problemas para sair.

Quando eu tentava me conectar ao servidor de e-mail (usando telnet mesmo só para testar) desde fora da minha rede, os pacotes nao saiam. Ou seja, o computador "extrangeiro" iniciava a conexao com o Postfix, mas quando o servidor respondia, os pacotes nao saiam da rede.

Pensava provar depois o tcpdump para ver o que estava acontecendo na verdade. Como o servidor já estava em produçao, optei pela soluçao mais rápida, mas vou retomar esse assunto mais pra frente.

Até mais.

Conforme o Felipe já falou não tem muito o que errar, desde que você não coloque dois default gateways. Não sei se entendi muito bem o que você quer fazer, se essa máquina está servindo de gateway entre duas redes, tipo internet e rede local. Inclusive quando você define um "default gateway" é adicionada uma rota padrão para esta máquina sem a necessidade de ficar alterando as rotas (tudo o que não for para uma rede ou outra acaba indo para essa máquina, você pode verificar isso com o comando route).

Após as configurações básicas das interfaces de rede e rotas estarem corretamente configuradas as únicas coisas que faltam são: - habilitar a repassagem de pacotes no kernel para que as duas redes se comuniquem, "echo 1 > /proc/sys/net/ipv4/ip_forward", (eu pessoalmente coloco isso dentro do script do firewall). - configurar o iptables para negar ou liberar o tráfego nas interfaces, se a rede interna deve ser acessível de fora configura-se DNAT, se a rede externa é a Internet e se pretende liberar para a rede interna sem proxy (ou para aplicações específicas) configura-se SNAT, e assim por diante.

(normalmente se usa flags de estado para liberar entrada, repassagem e saída de pacotes para coneções já estabelecidas, mas isso depende de como você define a política padrão do seu firewall, já que eu nem sei se você realmente está usando um firewall ou usando ele com uma política padrão DROP. Sem firewall, simplesmente habilitando a repassagem de pacotes deveria funcionar).


Atenciosamente.

Edmundo Valle Neto

"Sem firewall, simplesmente habilitando a repassagem de pacotes deveria funcionar."

Só corrigindo isso, realmente depende do que você quer fazer, não dá pra dizer que só isso funciona. :)


Edmundo



Essa máquina nao é um gateway. Ela tem 2 placas de rede que terá, cada uma, um IP da minha rede. Algo do tipo etho -> 10.0.1.52 e eth1 -> 10.0.1.148. Uma placa de rede sería para o e-mail e a outra para o DNS.

Não sei qual o motivo de você ter dividido o endereçamento assim, ou se em algum lado da rede existe algum outro roteador que faça a rede ter acesso a IPs válidos (aparentemente existe, já que você faz referência a acessos "de fora da rede"). Eu prefiro sempre usar endereços classfull ou que pelo menos não dividam os octetos do endereçamento, que são bem mais fáceis de configurar, tipo 10.0.1.0 e 10.0.2.0 sendo duas subredes. (já tive que fazer isso por exemplo para contornar um problema de cabeamento mal feito e conseguir fazer pelo menos parte da rede comunicar de forma adequada a 100 Mbps).

Nao há divisao alguma, os IPs que coloquei no e-mail anterior foram apenas para ilustrar, nossa rede é uma classe C e todos os IPs que temos sao válidos. O único gateway que há é o que conecta a minha rede com o resto da Internet, nada mais. Simplesmente há um servidor com duas placas de rede que possuem IPs da mesma subrede.


Percebi que ao configurar 2 placas de rede na mesma rede sao adicionados 2 "default gateway" para a mesma rede e somente tenho acesso à rede local se retiro um dos gateways. Entretando isso fazia com que os pacotes entrassem por uma interface e saissem por outra, coisa que eu nao quero.

Quanto aos default gateways já foi explicado que se configura somente um (já que as ferramentas que sobem as interfaces de rede também alteram a tabela de roteamento), quanto ao fato de entrar em uma interface e sair pela outra, você deve configurar o endereçamento e mascaras de rede de forma correta. Provavelmente você vai ter que utilizar um endereçamento 10.0.1.0/25 e 10.0.1.128/25 (com uma máscara 255.255.255.128, isso dá 126 endereços utilizáveis de cada lado), o comando ifup também já adiciona as rotas de acordo com o endereçamento quando as interfaces de rede sobem (assim os pacotes entram e saem nas interfaces corretas para as metades de endereçamento configuradas). Quanto ao default gateway ainda, você vai ter que decidir para qual máquina (contida em uma das redes) é correto mandar o tráfego que não pertence à nenhuma das duas redes.

Obs.: Endereçar máquinas na mesma subrede com máscaras diferentes também pode causar problemas indesejáveis.

Volto a repetir, nao há subredes nem nada do tipo. É apenas 1 rede (10.0.1.X, só para ilustrar) e uma máquina nessa rede deverá ter 2 placas de rede. Como se trata de um servidor de correo e de DNS, haverá nas duas interfaces pacotes vindo de fora e de dentro da minha rede.


Usando o comando ip pude fazer com que os pacotes entrasse e saissem nas interfaces corretas, e monitorando o servidor através do iptraf deu para ver que os pacotes ian e vinham das interfaces corretas. Na prática haviam vários pacotes UDP/53 numa interface e outros TCP/25, TCP/143, TCP993, etc na outra interface.

Para ver o que está sendo recebido nas interfaces (endereçamento e portas de origem e destino) você pode utilizar o tcpdump também.

Obrigado pela informaçao, mas já sei que o tcpdump faz isso. Inclusive algumas linhas mais abaixo citei ele como um ferramenta que me ajudaria.


Dentro da rede tudo funcionava bem, o problema era quando alguém, estando fora da rede, tentava enviar um e-mail através do nosso servidor (tanto se era um e-mail para conta local ou algum usuário válido mandando e-mail para fora). Tenho que usar o tcpdump para ver o que está acontecendo, mas devido à urgência para resolver o problem, acabei escolhendo outra alternativa (que nao é a que eu queria), mas tudo bem.

Até mais.

Atenciosamente.

Edmundo Valle Neto


Resumindo: 1 servidor, 1 só rede, 2 placas de rede, 2 IPs válidos diferentes (um em cada placa), 2 serviços rodando ao mesmo tempo (DNS e e-mail). Todo o tráfego correspondente a eth0 entrando e saindo por eth0 e todo o tráfego correspondente a eth1 entrando e saindo por eth1.

Até mais.
--
Miguel Da Silva
Administrador de Red
Centro de Matemática - http://www.cmat.edu.uy
Facultad de Ciencias - http://www.fcien.edu.uy
Universidad de la República - http://www.rau.edu.uy



Reply to: