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

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



Denis escreveu:
Cara vc pode marcar os pacotes que entram por uma interface e que
entram pela outra com  o iptables (fwmark) criar tabelas de roteamento
distintas para cada tipo de tráfego que vc quer separar e ainda
colocar um default gateway para cada tipo de trafego dentro das
tabelas de roteamento, e até rotear pela origem do pacote,  td isso
com iproute2. Só separando tudo isso direitinho vc vai conseguir
colocar duas placas para funcionar de forma previsivel dentro da mesma
sub.




2007/1/10, Edmundo Valle Neto <edmundo.valle@terra.com.br>:
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).

>
> 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.

>
> 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.

>
> 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


--
To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org




Nao havia pensado usar o iptables, valeu pela dica. O que fiz foi usar o iproute2 para ter um default gateway para cada tráfego. Foi isso o que expliquei numa das mensagens que madei.

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: