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

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



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

Então Miguel, como vc está com duas placas na mesma rede, a dst
admnistrativa do salto é 0 nas duas placas, então neste caso as vezes
a máquina pode receber um pacote por uma placa e tentar devolver pela
outra já que estão "distantes com a mesma distancia, tanto por uma
placa, como pela outra.

marcando os pacotes como Iptables vc pode obriga-los a retornar pela
mesma interface. E fazer com que os dois fluxos de dados (dns ex -j
MARK --set-mark 2
correio ex -j MARK --set-mark 1) possam ter um defaul gateway.

Vc poderia neste caso criar uma noava Chain para cada um dos fluxos
que vc quer tratar, e aí trata-los com regras distintas, da maneira
que vc quiser.

vc pode encontrar exemplos de marcação de pacotes em how tos  de
balanceamento de links. São bastante usados nestes casos. Vou te
deixar 3 links onde vc pode ver uns exemplos e ver como marcar os
pacotes.


http://www.rnp.br/newsgen/0201/roteamento_linux.html
http://vivaolinux.com.br/artigos/impressora.php?codigo=2252
http://www.leglug.org/node/Load%20Balancing%20Across%20Multiple%20Links



Certo?


Abraço.

2007/1/11, Denis <denismpa@gmail.com>:
Então:

fwmark + iproute2 vai resolver seu problema.
Só pesquisar.

só marcar os pacotes que entram por uma interface para que saiam pela
mesma interface e que possam atingir o default gateway qdo necessário.

*don't worry, be happy*


Vai como dica: http://lartc.org/



2007/1/11, Miguel Da Silva - Centro de Matemática
<mdasilva@mordred.cmat.edu.uy>:
> 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
>
>
> --
> To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>




Reply to: