[GTER] Balanceamento de entrada sem AS

spiderslack spiderslack at yahoo.com.br
Mon Jan 31 02:17:20 -02 2011


Hum.

Como ficaria a regra? Porque como irei identificar por onde a conexão 
entrou?

por exemplo uma maquina qualquer na internet com endereço 100.100.100.1 
tenta acessar meu servidor web atras de um linux com ip 90.90.90.1 e 
neste existe o redirecionamento de porta 80 para o servidor web interno 
com ip 192.168.0.10. Tudo bem até ai tenho 2 interfaces uma como disse 
com o ip 90.90.90.1 outra com 80.80.80.1 a rota default sempre sera pela 
interface com o ip 80.80.80.1 porem tudo que entra pelo 90.90.90.1 sai 
por 90.90.90.1 e tudo que entra por 80.80.80.1 sai por ele. Nesse caso 
via iproute como criaria uma regra para tratar isso, o problema e a 
volta. Por exemplo a entrada ocorre pelo 90.90.90.1 e na volta mesmo eu 
marcando pacotes com a seguinte regra

iptables -t mangle -I PREROUTING -m state --state ESTABLISHED,INVALID -i 
interface_LAN -s 192.168.0.10 -p tcp --sport 80 -j MARK --set-mark 1

Tabela 1 - 90.90.90.1
Tabela 2 - 80.80.80.1

Tudo bem para as conexoes que entra por 90.90.90.1, mas as conexões que 
vem por 80.80.80.1 ? mesmo a conexao entrando por 80.80.80.1 vai sair 
por 90.90.90.1 e nao vai funcionar. O que eu poderia fazer sobrecarregar 
IP na interface e fazer um SNAT na saida para LAN. Mas o binat do ipf 
não precisa disso faz automatico. E oque eu queria se no linux tivesse 
uma feature igual ao binat.

Att.

On 01/29/2011 06:36 PM, Leonardo Rodrigues wrote:
>
>
>     em linux você poderia usar roteamento avançado (iproute) pra fazer 
> regras baseadas em MARK e regras de CONNMARK no iptables (na tabela 
> mangle) pra conseguir fazer esse layout funcionar.
>
>     Como você parece ter 2 IPs distintos pro seu servidor web, um pra 
> cada ISP, você pode usar esse IP de destino como critério pro CONNMARK 
> fazer a marcação. Se porventura tivesse um único IP, talvez seria 
> necessário separar os ISPs em 2 interfaces de rede diferente para 
> poder usar a interface de entrada como critério, já que o IP não seria 
> opção.
>
>     Em Cisco funcionaria sim, basta configurar roteamento por origem 
> adequadamente (idéia parecida com o que você precisará fazer com 
> iproute no linux)
>
>
>     Pergunta crucial que pode definir a forma exata de fazer: os IPs 
> que vão no seu servidor Web são IPs públicos ofertados pelos ISPs, ou 
> é IP inválido e seu pfsense faz redirecionamento de porta ??
>
>
> Em 28/01/11 10:54, spiderslack escreveu:
>> Ola pessoal.
>>
>> Tive a experiência de confrontar uma situação nunca passada. Vou 
>> tentar explicar a infraestrutura conforme abaixo:
>>
>> ISP 1 --------------|  roteador |_________|  Servidor |
>> ISP 2 --------------|  pfsense  |             |     web    |
>>
>> Tenho o rota padrão configurada para o ISP2, porém temos o servidor 
>> web publicado nos 2 endereços tanto do ISP 1 como ISP 2. Com isso 
>> quando um fluxo entra pelo ISP 1 volta pelo ISP 1 se o fluxo entra 
>> pelo ISP2 volta pelo ISP2 e caso uma conexão se origine no servidor 
>> web saia pela rota default. Isso e conseguido no FreeBSD com o 
>> comando binat, abaixo tem uma descrição de como funciona da 
>> documentação oficial.
>>
>> http://www.openbsd.org/faq/pf/nat.html#binat
>>
>> A minha pergunta é existe algum outro SO/equipamento que faça isso? 
>> Eu testei com um cisco não funciona mesmo eu fazendo nat um para um, 
>> a volta sempre sai pela rota default. Linux também mesmo marcando 
>> pacotes com iproute. Consigo marcar a entrada mas quando a conexão 
>> volta como vou saber por qual conexão ela entrou, talvez via tabela 
>> de estados, mas pelo menos por meu conhecimento não ser possivel. 
>> Então existe alguma configuração que consiga esse comportamento do 
>> comando binat ?
>>
>
>

__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 



More information about the gter mailing list