olikolokos1
(usa Ubuntu)
Enviado em 26/05/2014 - 10:44h
Achei interessante este script que o rjacomel fez:
Neste artigo mostrarei como fiz para dividir o tráfego de uma empresa em dois links ADSL ligados em um mesmo servidor utilizando iptables e iproute2. Como no meu caso o grande problema era o acesso aos e-mails que ficam em um provedor externo, dividi o tráfego de maneira que acessos POP e SMTP saíssem por um dos links e o restante dos serviços por outro. Nada impede que você personalize o script abaixo de maneira que atenda às suas necessidades.
A configuração do meu servidor e dos meus links é a seguinte:
Ambiente testado:
Distribuição: Fedora Core 2
2 links ADSL de 1,5 Mb
A máquina possui 3 interfaces de rede:
Intranet: eth0 - 192.168.100.0/24
ADSL1: eth1 - 10.0.0.1/24 - Gateway: 10.0.0.138
ADSL2: eth2 - 10.1.1.2/24 - Gateway: 10.1.1.1
Neste exemplo, os serviços de e-mail passam pelo ADSL2 e os demais serviços pelo ADSL1. O gateway padrão da máquina é o 10.0.0.138 (do ADSL1). Não há configuração de gateway específico por interface. Segue o script que efetua a divisão dos links:
#!/bin/sh
# Interface da Intranet
IF_LAN='eth0'
# Interfaces ADSL
IF_ADSL1='eth1'
IF_ADSL2='eth2'
# Gateways dos ADSL (IPs dos roteadores)
GW_ADSL1='10.0.0.138'
GW_ADSL2='10.1.1.1'
# Mascarar saídas para os dois ADSL
------------------------------------------------------------
iptables -t nat -A POSTROUTING -o $IF_ADSL1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IF_ADSL2 -j MASQUERADE
# Marca com "2" os pacotes que saem pelas portas 25 (SMTP) e 110 (POP)
------------------------------------------------------------
iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 110 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 2
# Joga serviços de e-mail (pacotes marcados com 2) para o ADSL2
------------------------------------------------------------
ip rule add fwmark 2 table 20 prio 20
ip route add default via $GW_ADSL2 dev $IF_ADSL2 table 20
# Atualiza tabela de roteamento
# ------------------------------------------------------------
ip route flush cache
--------------------------------------------------
Deixa eu ver se entendi o iptables marca os pacotes que saem da minha rede local e chegam nele com o numero 2 e depois joga eles na adsl2 é isto??