Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    tomiz
    Tenho um servidor Linux com três placas de rede: Uma para a rede local (eth0) e as outras duas cada uma para um provedor diferente.

    Neste servidor roda o Squid (proxy) e o QMail (servidor de correio).

    Estou querendo separar o tráfego. Todo o tráfego do Squid quero vá pelo Provedor1 e todo o tráfego do QMail quero vá pelo Provedor2.

    Alguém conhece uma solução para fazer isso ?

    Já tentei a solução abaixo (iproute e iptables) mas não obtive êxito.

    # Create two tables (21 and 31) to use with each connection
    # Copy main route to table 31
    ip route show table main | grep -Ev ^default | \
    while read ROUTE ; do \
    ip route add table 31 $ROUTE; \
    done
    # use ISP-1 as default gateway for table 31
    ip route replace default via x.x.x.2 table 31

    # Copy main route to table 21
    ip route show table main | grep -Ev ^default | \
    while read ROUTE ; do \
    ip route add table 21 $ROUTE; \
    done
    # use ISP-2 as default gateway for table 21
    ip route replace default via y.y.y.2 table 21

    # Mark packages (1 or ISP-1 e 2 for ISP-2)
    # aqui, já troquei OUTPUT por POSTROUTING e PREROUTING sem sucesso
    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 1
    iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 2

    # Define rules to use the correct connection
    ip rule add from x.x.x.1 table 31
    ip rule add fwmark 1 table 31

    ip rule add from y.y.y.1 table 21
    ip rule add fwmark 2 table 21

  2. #2
    karfax
    Baeado na suposição de que vc tem duas placas com ip fixo, ou cada uma delas apontando para um modem/roteador conectado a 2 linhas diferentes:

    Sugestão:
    Separe as máquinas. Crie uma entrada MX no teu dns apontando para a máquina na qual está o SMTP e aponte no MUA dos clientes a interface interna dessa máquina. E é mais seguro, os dois serviços vão ficar mais livres, etc.
    Se voce definir o gateway da rede como sendo a máquina do proxy e essa máquina e o smtp puderem se enxergar (via cabo cross?) basta informar ao proxy que o smtp é a outra máquina, e ele vai rotear o pacote pelo tipo de serviço (smtp/25 e 110+145/pop+imap).




    Sds,



  3. #3
    TheMage
    Ola Tomix,..


    Cara eu tenho isso nas minhas regras ,.. e funciona bem ,.... mas não vou dizer que esta tudo certo nele,.. eu to meio sem tempo pra ajustar isso ai ,.. mas em fim ,... a unica Rede fria,.. é a XXX.XXX as demais são ips quentes,.. e a rede XXX.XXX.33.0/24 na verdade é apenas uma ponte para um adsl,... tenho isso rodando em um provedor de internet,.. !

    Da uma olhada ,.. espero que ajude,... !


    #!/bin/sh


    eth0arps='aaa.aaa.aaa.1 bbb.bbb.bbb.129 XXX.XXX.33.53';
    eth1arps='ccc.ccc.ccc.211 ccc.ccc.ccc.220 ddd.ddd.ddd.ddd ccc.ccc.ccc.214 ccc.ccc.ccc.219';
    eth2arps='XXX.XXX.22.10 XXX.XXX.22.50 XXX.XXX.22.120';

    case "$1" in

    [sS][tT][aA][rR][tT])

    ip link set up dev eth0
    ip link set up dev eth1
    ip link set up dev eth2
    ip link set up dev lo

    ip addr flush label "eth*"

    ip addr add 127.0.0.1/8 dev lo
    ip addr add bbb.bbb.bbb.130/29 dev eth0 broadcast bbb.bbb.bbb.135
    ip addr add XXX.XXX.33.1/24 dev eth0 broadcast XXX.XXX.33.255 label eth0:1
    ip addr add aaa.aaa.aaa.2/26 dev eth0 broadcast aaa.aaa.aaa.63 label eth0:2
    ip addr add ccc.ccc.ccc.210/28 dev eth1 broadcast ccc.ccc.ccc.223
    ip addr add XXX.XXX.11.1/28 dev eth1 broadcast XXX.XXX.11.15 label eth1:1
    ip addr add XXX.XXX.22.1/24 dev eth2 broadcast XXX.XXX.22.255

    ip route add default via bbb.bbb.bbb.129
    ip route add ddd.ddd.ddd.ddd via ccc.ccc.ccc.211

    # ip route add table to.192 dev eth0
    ip route add table embratel.1.out dev eth0
    ip route add dev eth1 table to.208
    ip route add via ccc.ccc.ccc.220 table to.quack
    ip route add dev eth2 table to.22
    ip route add dev eth0 table to.33
    ip route add via XXX.XXX.33.53 table gvt.1
    ip route add via bbb.bbb.bbb.129 table brt.1
    ip route add via bbb.bbb.bbb.129 table brt.2
    ip route add table http via XXX.XXX.33.53

    ip ru add to aaa.aaa.aaa.0/64 prio 5 lookup embratel.1.out
    ip ru add to ccc.ccc.ccc.208/28 prio 10 lookup to.208
    ip ru add to ddd.ddd.ddd.ddd prio 15 lookup to.quack
    # ip ru add to ccc.ccc.ccc.192/28 prio 20 lookup to.192
    ip ru add to bbb.bbb.bbb.128/29 lookup to.192 prio 21
    ip ru add to XXX.XXX.22.0/24 lookup to.22 prio 25
    ip ru add to XXX.XXX.33.0/24 lookup to.33 prio 30

    ip ru add fwmark 1 lookup http prio 50
    ip ru add fwmark 2 lookup gvt.1 prio 51
    ip ru add fwmark 3 lookup brt.2 prio 52
    ip ru add fwmark 4 lookup brt.1 prio 53
    ip ru add from XXX.XXX.22.0/24 prio 55 lookup gvt.1
    ip ru add from ccc.ccc.ccc.220 prio 60 lookup gvt.1
    ip ru add from ccc.ccc.ccc.219 prio 61 lookup gvt.1
    ip ru add from ccc.ccc.ccc.215 prio 62 lookup gvt.1
    ip ru add from ccc.ccc.ccc.192/27 lookup brt.1 prio 70
    ip ru add from bbb.bbb.bbb.128/28 lookup brt.2 prio 71

    ip neigh add XXX.XXX.33.53 nud permanent dev eth0
    ip neigh add bbb.bbb.bbb.129 nud permanent dev eth0
    ip neigh add aaa.aaa.aaa.2 nud permanent dev eth0
    ip neigh add ccc.ccc.ccc.211 nud permanent dev eth1
    ip neigh add ccc.ccc.ccc.212 nud permanent dev eth1
    ip neigh add ccc.ccc.ccc.214 nud permanent dev eth1
    ip neigh add XXX.XXX.22.10 nud permanent dev eth2
    ip neigh add XXX.XXX.22.50 nud permanent dev eth2
    ip neigh add XXX.XXX.22.120 nud permanent dev eth2

    ## isso fecha os arps das placas,.. isso contribui com seguranca e performace,..
    for a in $eth0arps ; do
    if ping -c1 $a >> /dev/null ; then
    ip neigh change $a nud perm dev eth0 ;
    fi ;
    done ;
    for a in $eth1arps ; do
    if ping -c1 $a >> /dev/null ; then
    ip neigh change $a nud perm dev eth1 ;
    fi ;
    done ;
    for a in $eth2arps ; do
    if ping -c1 $a >> /dev/null ; then
    ip neigh change $a nud perm dev eth2 ;
    fi ;
    done ;

    ;; ## fim start

    esac;


    #### fim de arquivo,..



    ### isto é no firewall (ioptables) ,...
    iptables -t mangle -A PREROUTING -p udp --dport 53 -i eth1 -s ccc.ccc.ccc.211 -d ! ccc.ccc.ccc.192/27 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp --sport 22 -i eth1 -s ccc.ccc.ccc.214 -d ! XXX.XXX.22.0/24 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp --sport 80 -i eth1 -s ccc.ccc.ccc.211 -d ! XXX.XXX.22.0/24 -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -p tcp --dport 25 -i eth1 -s ccc.ccc.ccc.214 -d ! ccc.ccc.ccc.192/27 -j MARK --set-mark 3

  4. #4
    tomiz
    Ao karfax:
    Obrigado pela sugestão de separar as máquinas. Irei usar uma alternativa como essa se não encontrar a solução usando uma única máquina.

    Ao TheMage
    Pelo que entendi das suas regras, esta máquina funciona apenas como gateway e ela "filtra" os pacotes que estão passando de acordo com o protocolo/porta.
    No meu caso, o tráfego que desejo separar, parte diretamente de aplicações instaladas neste linux, no caso o SQUID e o QMAIL. Este tráfego não passa pela chain PREROUTING da table mangle do iptables. Se eu estiver errado, alguém me corrija por favor.

    Grato.



  5. #5
    TheMage
    Ops,.. desculpe,.. acho que esqueci desdas duas,.. pois tenho uma parte que é parecida,.. !

    acho que com mais isso,.. vc faz o que vc precisa,.. !

    ## isso tmb é no firewall !
    iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK -o ! eth1 --set-mark 1
    iptables -A PREROUTING -t mangle -p tcp -s 192.168.22.0/24 -i eth2 --dport 80 -j MARK --set-mark 1






Tópicos Similares

  1. Queue estatica com base no profile hotspot
    Por h3lyo no fórum Redes
    Respostas: 0
    Último Post: 08-11-2011, 09:21
  2. Respostas: 28
    Último Post: 20-01-2008, 09:23
  3. Postfix+dovecot com base no OpenLDAP
    Por peregrino no fórum Servidores de Rede
    Respostas: 12
    Último Post: 14-06-2007, 15:36
  4. Inverter direção do pacote com iptables no input ou prerouting
    Por poetabitnick no fórum Servidores de Rede
    Respostas: 8
    Último Post: 21-05-2007, 22:32
  5. youtube no IE com problemas no flash ou java
    Por jhonnyp no fórum Redes
    Respostas: 2
    Último Post: 15-02-2007, 22:09

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L