Direcionar host para gateway especifico [RESOLVIDO]

13. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 05/12/2013 - 14:55h

Baseado na configuração anterior continuei fazendo testes e notei isto:

IN=eth0 OUT=eth2 MAC=08:00:27:c2:30:c5:08:00:27:b9:41:7a:08:00 SRC=189.100.0.100 DST=170.66.11.10 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=11547 DF PROTO=TCP SPT=49294 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0 MARK=0x1

Mesmo com a marcação os pacotes estão saindo pelo gateway errado, percebo isso pelo seguinte:

IN=eth0 OUT=eth2

Devia estar saindo pela eth1.


  


14. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 05/12/2013 - 17:21h

menger escreveu:

Baseado na configuração anterior continuei fazendo testes e notei isto:

IN=eth0 OUT=eth2 MAC=08:00:27:c2:30:c5:08:00:27:b9:41:7a:08:00 SRC=189.100.0.100 DST=170.66.11.10 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=11547 DF PROTO=TCP SPT=49294 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0 MARK=0x1

Mesmo com a marcação os pacotes estão saindo pelo gateway errado, percebo isso pelo seguinte:

IN=eth0 OUT=eth2

Devia estar saindo pela eth1.


Tente trocar a ordem dessas regras:

ip route add 192.168.0.0/24 dev eth1 src 192.168.0.30 table gvt
ip route add default 192.168.0.200 table gvt

ip route add 10.0.0.0/24 dev eth2 src 10.0.0.100 table tpa
ip route add default via 10.0.0.1 table tpa

ip rule add from 192.168.0.30 table gvt
ip rule add from 10.0.0.100 table tpa


Teste primeiro colocando assim:

ip route add 10.0.0.0/24 dev eth2 src 10.0.0.100 table tpa
ip route add default via 10.0.0.1 table tpa

ip route add 192.168.0.0/24 dev eth1 src 192.168.0.30 table gvt
ip route add default 192.168.0.200 table gvt

ip rule add from 192.168.0.30 table gvt
ip rule add from 10.0.0.100 table tpa

Caso não funcionar, teste assim:

ip route add 192.168.0.0/24 dev eth1 src 192.168.0.30 table gvt
ip route add default 192.168.0.200 table gvt

ip route add 10.0.0.0/24 dev eth2 src 10.0.0.100 table tpa
ip route add default via 10.0.0.1 table tpa

ip rule add from 10.0.0.100 table tpa
ip rule add from 192.168.0.30 table gvt


15. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 05/12/2013 - 18:47h

Buckminster

Tentei das formas que você passou mas o resultado final foi o mesmo.

Obrigado por ajudar.


16. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 05/12/2013 - 19:10h

menger escreveu:

Buckminster

Tentei das formas que você passou mas o resultado final foi o mesmo.

Obrigado por ajudar.


Ok.

Agora altere esta linha

ip route add default scope global nexthop via 192.168.0.200 dev eth1 weight 1 nexthop via 10.0.0.1 dev eth2 weight 1

para

ip route add default scope global nexthop via 10.0.0.1 dev eth2 weight 1 nexthop 192.168.0.200 dev eth1 weight 1

e veja se dá alguma diferença.



17. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 05/12/2013 - 19:31h

Deu erro

Error: "nexthop" or end of line is expected instead of "192.168.0.200"


18. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 05/12/2013 - 19:42h

menger escreveu:

Deu erro

Error: "nexthop" or end of line is expected instead of "192.168.0.200"


Desculpe.

ip route add default scope global nexthop via 10.0.0.1 dev eth2 weight 1 nexthop 192.168.0.200 dev eth1 weight 1

Faltou o "via" em nexthop via 192.168.0.200...

Não sei se você tinha visto isso. Mas foi erro meu.

E me diz uma coisa, os dois links que você tem aí são de quantos megas cada um?


19. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 05/12/2013 - 19:52h

E realmente eu não percebi o erro, mas ja tinha testado com essa alteração também.

Os dois links são de 10MB.


20. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 05/12/2013 - 20:17h

Dei uma lida com calma em todo o tópico e tem uma coisa que não estou entendendo:

Antes estava assim:
- eth0 Rede Local 192.168.56.101
- eth1 Link GVT 192.168.0.30 Gateway 192.168.0.200
- eth2 Link TPA 10.0.0.100 Gateway 10.0.0.1

Agora está assim:
eth0 | Rede Local | 189.100.0.200
eth1 | Link GVT | 192.168.0.30 Gateway 192.168.0.200
eth2 | Link TPA | 10.0.0.100 Gateway 10.0.0.1

Sendo que você quer que "toda a rede local (estações) saia pelo gateway da eth1, mas tem um servidor Windows que preciso fazer sair pelo gateway da eth2".

O IP desse servidor Windows é 192.168.56.101?
O gateway, ou seja, o IP fixo da placa de rede eth0 é 189.100.0.200?
O gateway, ou seja, o IP fixo da placa de rede eth1 é 192.168.0.200?
O gateway, ou seja, o IP fixo da placa de rede eth2 é 10.0.0.1?

Se for sim para todas as respostas, veja que o servidor Windows está com o IP de outra rede e as regras que você fez sequer mencionam esse IP e mesmo que esse IP esteja dentro de alguma table, não irá funcionar.

Além disso você deve verificar as conexões físicas.
Os dois links chegam dos modens/roteadores, um para a eth1 e outro para a eth2 e saem para a rede local através da eth0, sendo que a eth0 está conectada em um switch, é isso?


21. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 06/12/2013 - 09:53h

Buckminster,

Confirmo que atualmente minha rede esta configurada assim:

eth0 | Rede Local | 189.100.0.200
eth1 | Link GVT | 192.168.0.30 Gateway 192.168.0.200
eth2 | Link TPA | 10.0.0.100 Gateway 10.0.0.1

Quando alterei o ip da minha interface eth0 de 192.168.56.200 para 189.100.0.200, fiz a alteração de ip no meu servidor Windows também deixei ele com o IP 189.100.0.100

Como disse anteriormente eu consegui uma evolução usando a ultima configuração que postei, porem mesmo com a marcação configurada no iptables vejo que o servidor firewall tenta mudar a roda de gateway pulando de um interface para outra no caso eth1 e eth2. Acompanhei isso olhando os logs do iptables.

Eu acho que meu problema deve estar relacionado a esta configuração:

ip route add default scope global nexthop via 192.168.0.200 dev eth1 weight 1 nexthop via 10.0.0.1 dev eth2 weight 1

Fiz um teste rodando o comando ping para um site externo a partir do servidor Windows, vejo que o ping responde corretamente por duas vezes e depois falha uma. Se fico acompanhando nos logs do iptables vejo que essa falha corresponde a uma tentativa de saida na interface não autorizada por exemplo:

189.100.0.100 deve usar o gateway 192.168.0.200 da interface eth1
189.100.0.102 deve usar o gateway 10.0.0.1 da interface eth2

Quando estou no computador ip 189.100.0.102 meu ping nunca falha sempre vejo no log ele saindo na interface correta, mas quando faço o ping usando o computador 189.100.0.100 veja que o ping hora funciona e hora falha, e o mesmo vale para acesso Http e outros.


22. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 06/12/2013 - 10:15h

Posta aqui o conteúdo do arquivo /etc/network/interfaces desse servidor.


23. Re: Direcionar host para gateway especifico [RESOLVIDO]

Douglas Menger
DouglasMenger

(usa XUbuntu)

Enviado em 06/12/2013 - 10:33h

Buckminster escreveu:

Posta aqui o conteúdo do arquivo /etc/network/interfaces desse servidor.


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Rede LOCAL
auto eth0
iface eth0 inet static
address 189.100.0.200
netmask 255.255.0.0

# GVT
auto eth1
iface eth1 inet static
address 192.168.0.30
netmask 255.255.255.0
dns-nameservers 192.168.0.200

# TPA
auto eth2
iface eth2 inet static
address 10.0.0.100
netmask 255.255.255.0
dns-nameservers 10.0.0.1



24. Re: Direcionar host para gateway especifico [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 06/12/2013 - 12:31h

Teste as regras abaixo:

#!/bin/sh

# Aqui no início não esqueça de definir as políticas padrões do Iptables. carregar os módulos, limpar as chains, etc.
# Depois coloque as regras abaixo e teste.
# Coloquei a rota default na eth1 e o IP 189.100.0.100/24 saindo pela eth2.
# Caso não funcionar a contento, faça as modificações necessárias.
# Qualquer dúvida, posta de novo.

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -j LOG --log-prefix "iptables : "
iptables -A OUTPUT -j LOG --log-prefix "iptables : "
iptables -A FORWARD -j LOG --log-prefix "iptables : "

iptables -t mangle -A PREROUTING -s 189.100.0.100/24 -j MARK --set-mark 2

# GVT
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.30 table gvt
ip route add default via 192.168.0.200 table gvt

# TPA
ip route add 10.0.0.0/24 dev eth2 src 10.0.0.100 table tpa
ip route add default via 10.0.0.1

# Setando links para a tabela principal
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.30
ip route add 10.0.0.0/24 dev eth2 src 10.0.0.100

# Rota principal
ip route add default via 192.168.0.200

# Regras das tabelas
ip route add from 192.168.0.30 table gvt
ip route add from 10.0.0.100 table tpa

# Balanceamento
# ip rule add fwmark 1 table gvt prio 3
ip rule add fwmark 2 table tpa prio 3
ip route add default scope global nexthop via 192.168.0.200 dev eth1 weight 1 nexthop via 10.0.0.1 dev eth2 weight 1

# Flush no cache
ip route flush cache

Outra coisa, caso der problema de lentidão, aconselho daí a você criar uma tabela nova, chama de 'interna' ou o nome que você quiser e colocar assim:

ip route add default table interna nexthop via 192.168.0.200 dev eth1 weight 1 nexthop via 10.0.0.1 dev eth2 weight 1


Caso você não queira balanceamento pode comentar a linha acima nas regras.
A regra esta com peso 1 (weight 1) para os dois, isso está certo pois os dois links tem a mesma banda.
Porém, na prática isso significa uma conexão para gvt, uma conexão para tpa, uma conexão para gvt, uma conexão para tpa... e assim por diante.
Acredito que não seja isso que você quer.

E comente ou apague as linhas dns-nameservers do arquivo interfaces.
E não esqueça que no DHCP desse servidor (provavelmente você tem um nele) os IPs da tua subnet devem estar na mesma faixa de IPs da placa eth0.

E te aconselho a acrescentar depois de netmask a linha gateway na eth1 e eth2.

eth1
gateway 192.168.0.200 << esse tem que ser o IP do gateway da gvt.

eth2
gateway 10.0.0.1 << esse tem que ser o IP do gateway da tpa.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts