Não consigo configurar o iptables para dois links

1. Não consigo configurar o iptables para dois links

Erik R Luz
erikluz

(usa Debian)

Enviado em 27/04/2012 - 11:05h

Bom dia!!

Estou iniciando em Linux e preciso configurar um servidor para compartilhar a internet de dois links.

Um da Embratel e outro da Vivo (Speedy).


eth0: 200.123.123.2/24 (ligada ao router Embratel)
eth1: 192.168.7.2/24 (ligada ao modem/router Speedy)
eth2: 192.168.3.1/24 (Rede Local

O da Embratel possui ip fixo e é roteador da Embratel mesmo.

O Speedy vem de um modem FiberHome, daí não sei se para acessar de fora preciso mexer na configuração ip, pois ele possui um ip da lan 192.168.7.1 e outro ppoe 201.*.*.* que é o IP da internet. Instalei o Webmin, mas não consigo acessar de fora utilizando o IP da Internet, no caso preciso configurar a eth0 do servidor com a faixa de IP da Lan do modem ou com a faixa de IP do PPoe do modem?

Preciso configurar da seguinte maneira:
25 computadores utilizarão o link da Embratel
8 computadores utilizarão o link Speedy
16 computadores utilizarão ambos os links, mas o default será o link Speedy, se ele cair começará a utilizar o da Embratel, voltando o da Speedy ele volta a usá-lo.

Peguei o script do Fabrício Guzzy e alterei como achei que teria que ser, como não vou redirecionar por porta, mas por ip comentei as linhas que redirecionavam as portas:
_______________________________________________________________

/etc/init.d/links

IF_LAN='eth2'

IF_LINK1='eth0'
IF_LINK2='eth1'

GW_LINK1='200.123.123.1
GW_LINK2='192.168.7.1'


iniciar(){
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o $IF_LINK1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IF_LINK2 -j MASQUERADE

# Aqui começamos a marcar os pacotes diferenciando-os pela porta utilizada.
# Observe que escolhemos os pacotes com destino às portas 80 (HTTP) 443 (HTTPS)
# 25 (SMTP) 110 (POP)
# Todo pacote que passar pelo Firewall com estas particularidades receberão
# uma "marca", uma espécie de carimbo. Pacotes destinados à porta 80
# recebem "carimbo" de número 2, pacotes com destino à porta 25
# recebem "carimbo" número 3.
# Desta forma, podemos diferenciá-los para que mais à frente no script tenhamos
# controle do que saiu/entrou e por onde saiu/entrou.

#iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 80 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 443 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 25 -j MARK --set-mark 3

#iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 110 -j MARK --set-mark 3

# A diferença entre o PREROUTING e o OUTPUT é que, PREROUTING abrange os
# pacotes que foram originados fora do FIREWALL, por exemplo Interface ETH0
# ($IF_LAN), enquanto OUTPUT são os pacotes originados no Firewall, ou seja, na
# própria console.

#iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
#iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2
#iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3
#iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3

# Aqui montamos as tabelas dinâmicas a partir das marcas (carimbos) que fizemos
# lá em cima no nosso script.
# Pacotes que foram marcados com 2 vão para a tabela "table 20" e os marcados
# com 3, vão para a tabela "table 21", com a mesma prioridade. Perceba o PRIO 20
# após os comandos.

#ip rule add fwmark 2 table 20 prio 20
#ip rule add fwmark 3 table 21 prio 20

# Lab1 e 2 + Escritório
ip rule add from 192.160.3.2 table 20
ip rule add from 192.160.3.3 table 20
ip rule add from 192.160.3.4 table 20
ip rule add from 192.160.3.5 table 20
ip rule add from 192.160.3.6 table 20
ip rule add from 192.160.3.7 table 20
ip rule add from 192.160.3.8 table 20
ip rule add from 192.160.3.9 table 20
ip rule add from 192.160.3.10 table 20
ip rule add from 192.160.3.11 table 20
ip rule add from 192.160.3.12 table 20
ip rule add from 192.160.3.13 table 20
ip rule add from 192.160.3.14 table 20
ip rule add from 192.160.3.15 table 20
ip rule add from 192.160.3.16 table 20
ip rule add from 192.160.3.17 table 20
ip rule add from 192.160.3.18 table 20
ip rule add from 192.160.3.19 table 20
ip rule add from 192.160.3.20 table 20
ip rule add from 192.160.3.21 table 20
ip rule add from 192.160.3.22 table 20
ip rule add from 192.160.3.23 table 20
ip rule add from 192.160.3.24 table 20
ip rule add from 192.160.3.25 table 20
ip rule add from 192.160.3.26 table 20
ip rule add from 192.160.3.27 table 20
ip rule add from 192.160.3.28 table 20
ip rule add from 192.160.3.29 table 20
ip rule add from 192.160.3.30 table 20

#Rádio e Escritório + DVR
ip rule add from 192.168.3.31 table 21
ip rule add from 192.168.3.32 table 21
ip rule add from 192.168.3.33 table 21
ip rule add from 192.168.3.34 table 21
ip rule add from 192.168.3.35 table 21
ip rule add from 192.168.3.36 table 21
ip rule add from 192.168.3.37 table 21
ip rule add from 192.168.3.38 table 21
ip rule add from 192.168.3.39 table 21
ip rule add from 192.168.3.40 table 21
ip rule add from 192.168.3.41 table 21
ip rule add from 192.168.3.42 table 21
ip rule add from 192.168.3.43 table 21
ip rule add from 192.168.3.44 table 21
ip rule add from 192.168.3.45 table 21
ip rule add from 192.168.3.46 table 21
ip rule add from 192.168.3.47 table 21
ip rule add from 192.168.3.48 table 21
ip rule add from 192.168.3.49 table 21
ip rule add from 192.168.3.50 table 21
ip rule add from 192.168.3.51 table 21
ip rule add from 192.168.3.52 table 21
ip rule add from 192.168.3.53 table 21

# Agora sim daremos rumo aos pacotes que foram marcados e cadastrados na tabela
# dinâmica.
# Veja que os pacotes que foram enviados para a tabela 20 têm como DEFAULT
# GATEWAY o LINK1. Sendo assim, os pacotes serão enviados para o LINK1 na
# Interface ETH0 com o IP 200.123.123.1.
# Já os pacotes da tabela 21 serão enviados para o LINK2 na Interface ETH1, com
# o IP 192.168.7.1

ip route add default via $GW_LINK1 dev $IF_LINK1 table 20
ip route add default via $GW_LINK2 dev $IF_LINK2 table 21


# Este último comando limpa a tabela, caso ela já tenha sido utilizada
# anteriormente, ou apenas para termos certeza de que quando você resetar as
# regras todas, o Firewall não guarde nenhum tipo de informação na
# memória (cache). Daí o nome FLUSH CACHE.

ip route flush cache
}

parar(){

ip route del default via $GW_LINK1 dev $IF_LINK1 table 20
ip route del default via $GW_LINK2 dev $IF_LINK2 table 21
iptables -F
iptables -F -t nat
}

case $1 in
start) iniciar;;
stop) parar;;
restart) parar; iniciar;;
*)echo "Use os parâmentros start, stop ou restart" ;;
Esac
________________________________________________________



Para iniciar dou o seguinte comando: ./links

Na primeira vez que tentei não tinha essas duas linhas:
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

Adicionei e a internet começou a funcionar, mas somente com o link Speedy, mesmo alterando o ip para 192.168.3.2 acessei o site meuip e continuo conectado com o Speedy.
Outra dúvida é sobre o DNS como tenho dois links como devo configurar o resolv.conf?
Pois o link da Embratel usa o 4.2.2.2 e o da Telefonica 200.204.0.10 e 200.204.0.138, como deve ficar nas estações com SO WinXP?
O mais estranho (pra mim) é que instalei o Webmin e nele na aba Firewall Linux não aparece nenhuma das regras do Script e em Iniciar e Encerrar do Webmin aparece o script como iniciado.

Se funcionasse eu iria criar um script em cada PC para quando cair o link Speedy ele alterar o IP para começar a usar a internet da Embratel..

Desde já agradeço!


Muito Obrigado




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts