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



  1. Olá Pessoal, Tenho uma pequena grande dúvida. Estou tentando colocar aqui onde eu trabalho o seguinte 2 links, um Velox e o outro embratel, funcionando juntos na mesma rede. A minha configiração etá assim :

    eth0 - Velox (roteada) - ip 192.168.14.242 gt 192.168.14.1
    eth1 - embratel - ip 192.168.15.242 gt 192.168.15.1
    eth2 - rede interna - ip 192.168.0.1


    ao invés de balancear dois links quero dividir, fazendo assim: as maquinas da diretoria (192.168.0.10 192.168.0.9 ) saiam pela embratel e o outros ips saiam restante pela velox. Mas não encontrei nenhum exemplo prático sobre como dividir so encontrei para balancear ...

    Lembrando que as maquinas da rede aqui estão com ip fixo.
    e esqueci de mensionar que utilizo o squid ...

    Alguém poderia me ajudar ?

  2. Cara, você pode fazer isso com facilidade utilizando o roteamento por origem do iproute2.

    Aqui tem o link de uns tutos de como utilizar o iproute2:
    Roteamento avançado com Linux
    [Dicas-L] Roteamento avançado - Linux - utilizando IPROUTE e IPTABLES - Load Balance

    Se quiser mais opções:
    iproute2 roteamento por origem - Pesquisa Google

    Até mais..



  3. Ola Magnum e encontrei um script que parece ser exatamente o que preciso, porém acho que ele deve ter alguma coisa de errado pois quando coloco ele para funcionar só uma faixa de ip funciona (ex 192.168.0.10 ate 0 20) e a outra faixa de ip não acessa. Não fui eu quem desenvolveu o script mas adaptei e ele roda certinho a sem da erro na minha maquina, mas eu não tenho conhecimento para ver se tem algo faltando para que ele faça o que diz que faz vou postá-lo na esperança de alguem poder me ajudar

    #!/bin/bash

    clear

    echo "------------ FIREWALL ------------"

    ## iptables
    ipt=iptables

    ## link1
    link1_iface=eth1 # interface do seu link1
    link1_rede=192.168.15.0/24 # aqui você coloca sua rede, com máscara
    link1_gw=192.168.15.1 # o gateway do seu link1
    link1_ip_local=192.168.15.242 # o ip do seu server do link1

    ## link2
    link2_iface=eth0 # interface do seu link2
    link2_rede=192.168.14.0/24 # aqui você coloca sua rede, com máscara
    link2_gw=192.168.14.1 # o gateway do seu link2
    link2_ip_local=192.168.14.242 # o ip do seu server do link2

    ## rede local
    lan_iface=eth2
    lan_rede=192.168.0.0/24 # aqui você coloca sua rede com máscara
    lan_gw=192.168.0.254 # aqui coloca o gw da rede local


    # carregar módulos
    echo "Carregando módulos..."
    modprobe ip_tables
    modprobe iptable_nat
    modprobe iptable_mangle
    modprobe ip_nat_ftp
    modprobe ip_nat_h323
    modprobe ipt_limit
    modprobe ipt_tos


    # limpar regras
    echo "Limpando regras antigas..."
    $ipt -F
    $ipt -t nat -F
    $ipt -t mangle -F
    $ipt -X
    $ipt -t nat -X
    $ipt -t mangle -X


    # ação padrão - dropar tudo
    $ipt -P INPUT DROP
    $ipt -P FORWARD DROP
    $ipt -P OUTPUT ACCEPT


    # aceitar pacotes de retorno
    $ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


    # proteções
    # anti-ip spoofing - desativar por causa do iproute2
    if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
    for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 0 > $f
    done
    fi
    $ipt -A INPUT -i $link1_iface -s 192.168.0.0/255.255.0.0 -j DROP
    $ipt -A INPUT -i $link2_iface -s 192.168.0.0/255.255.0.0 -j DROP
    $ipt -A INPUT -i $link1_iface -s 172.0.0.0/255.0.0.0 -j DROP
    $ipt -A INPUT -i $link2_iface -s 172.0.0.0/255.0.0.0 -j DROP
    $ipt -A INPUT -i $link1_iface -s 10.0.0.0/255.0.0.0 -j DROP
    $ipt -A INPUT -i $link2_iface -s 10.0.0.0/255.0.0.0 -j DROP


    # ativando repasse de pacotes
    echo 1 > /proc/sys/net/ipv4/ip_dynaddr
    echo 1 > /proc/sys/net/ipv4/ip_forward


    # QoS
    $ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 1863 -j TCPMSS --clamp-mss-to-pmtu
    $ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 5190 -j TCPMSS --clamp-mss-to-pmtu
    $ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 7001 -j TCPMSS --clamp-mss-to-pmtu


    # liberar acesso interno
    echo "Liberando acesso local..."
    $ipt -A INPUT -i loopback -j ACCEPT
    $ipt -A INPUT -s 127.0.0.1 -j ACCEPT
    $ipt -A INPUT -s $link1_ip_local -j ACCEPT
    $ipt -A INPUT -s $link2_ip_local -j ACCEPT


    # serviços externos
    echo "Liberando acesso aos serviços..."
    # dns
    $ipt -A INPUT -p tcp --dport 53 -j ACCEPT
    $ipt -A INPUT -p udp --dport 53 -j ACCEPT
    $ipt -A INPUT -p tcp --sport 53 -j ACCEPT
    $ipt -A INPUT -p udp --sport 53 -j ACCEPT
    # retorno proxy
    $ipt -A INPUT -p tcp --dport 3128 --sport 80 -j ACCEPT
    $ipt -A INPUT -p tcp --dport 3128 --sport 8080 -j ACCEPT

    $ipt -A INPUT -i $lan_iface -p tcp --dport 22 -j ACCEPT
    $ipt -A INPUT -i $lan_iface -p tcp --dport 53 -j ACCEPT
    $ipt -A INPUT -i $lan_iface -p udp --dport 53 -j ACCEPT
    $ipt -A INPUT -i $lan_iface -p tcp --dport 80 -j ACCEPT
    $ipt -A INPUT -i $lan_iface -p tcp --dport 3128 -j ACCEPT

    echo "255 local" > /etc/iproute2/rt_tables
    echo "254 main" >> /etc/iproute2/rt_tables
    echo "253 default" >> /etc/iproute2/rt_tables
    echo "0 unspec" >> /etc/iproute2/rt_tables
    echo "30 link1" >> /etc/iproute2/rt_tables
    echo "30 link2" >> /etc/iproute2/rt_tables
    # remover rotas padrão - se houver
    ip route del default &> /dev/null
    ip route del default &> /dev/null
    ip route del default &> /dev/null

    ip rule del lookup link1 &> /dev/null
    ip rule del lookup link1 &> /dev/null
    ip rule del lookup link1 &> /dev/null
    ip rule del lookup link2 &> /dev/null
    ip rule del lookup link2 &> /dev/null
    ip rule del lookup link2 &> /dev/null

    for ip in `cat /etc/ips.link1`
    do
    ip rule del from $ip &> /dev/null
    done
    ip rule del from $link1_ip_local &> /dev/null
    # adicionar regras
    # detalhe antes de cat é uma crase "`" e não uma aspas simples
    for ip in `cat /etc/ips.link1`
    do
    ip rule add from $ip table link1 prio 30 &> /dev/null
    done
    ip rule add from $link1_ip_local table link1 prio 30
    # adicionar rotas
    ip route add $link1_ip_local via $link1_gw dev $link1_iface table link1
    ip route add default via $link1_gw table link1

    for ip in `cat /etc/ips.link2`
    do
    ip rule del from $ip &> /dev/null
    done
    ip rule del from $link2_ip_local &> /dev/null
    for ip in `cat /etc/ips.link2`
    do
    ip rule add from $ip table link2 prio 30 &> /dev/null
    done
    ip rule add from $link2_ip_local table link2 prio 30
    # adicionar rotas
    ip route add $link2_ip_local via $link2_gw dev $link2_iface table link2
    ip route add default via $link2_gw table link2

    # aplicar mudanças no iproute
    ip route flush cache


    echo -n "Liberando acesso para clientes..."
    # clientes link1
    for ip in `cat /etc/ips.link1`
    do

    # liberação de FORWARD
    $ipt -A FORWARD -s $ip -j ACCEPT

    # marcar pacotes para gráfico de consumo de banda
    $ipt -t mangle -A PREROUTING -s $ip -j ACCEPT # down
    $ipt -t mangle -A POSTROUTING -d $ip -j ACCEPT # up

    # mascaramento - radio uol
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.5.71 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.74 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.75 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.118 -j ACCEPT

    # nat caixa econômica federal (conectividade)
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.201.0.0/16 --dport 80 -j ACCEPT

    # redirecionamento para o proxy
    $ipt -t nat -A PREROUTING -p tcp -s $ip --dport 80 -j REDIRECT --to-port 3128
    $ipt -t nat -A PREROUTING -p tcp -s $ip --dport 8080 -j REDIRECT --to-port 3128

    $ipt -t nat -A POSTROUTING -s $ip -d 0/0 -j SNAT --to $link1_ip_local

    echo -n "."

    done
    for ip in `cat /etc/ips.link2`
    do

    $ipt -A FORWARD -s $ip -j ACCEPT

    # marcar pacotes para gráfico de consumo de banda
    $ipt -t mangle -A PREROUTING -s $ip -j ACCEPT # down
    $ipt -t mangle -A POSTROUTING -d $ip -j ACCEPT # up

    # mascaramento - radio uol
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.5.71 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.74 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.75 -j ACCEPT
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.118 -j ACCEPT

    # nat caixa econômica federal (conectividade)
    $ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.201.0.0/16 --dport 80 -j ACCEPT

    # redirecionamento para o proxy
    $ipt -t nat -A PREROUTING -p tcp -s $ip --dport 80 -j REDIRECT --to-port 3128
    $ipt -t nat -A PREROUTING -p tcp -s $ip --dport 8080 -j REDIRECT --to-port 3128

    $ipt -t nat -A POSTROUTING -s $ip -d 0/0 -j SNAT --to $link2_ip_local

    echo -n "."

    done
    echo ""
    echo "----------------------------------"

    Notem que ele faz a chamada de dois aquivos com duas faixas de ips ... Mas somente um dos aquivos funciona ... este script peguei em
    Linux: Controlando 2 links de internet (roteados) em um gateway Linux com SQUID [Artigo]
    Esse script pede para mecher no squid.conf que esta assim :
    http_port 3128 transparent

    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
    cache_mem 128 MB
    maximum_object_size_in_memory 128 KB
    maximum_object_size 32 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 512 16 256
    cache_access_log /var/log/squid/access.log
    visible_hostname kurumin
    ftp_user evandro@terrasanta.org.br
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl Safe_ports port 901 # SWAT
    acl purge method PURGE
    acl CONNECT method CONNECT

    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost


    #acl livre src "/etc/squid/conf/livre"
    #http_access allow livre

    #acl proibidos url_regex -i "/etc/squid/conf/proibidos"
    #http_access deny proibidos

    #acl bloqueados url_regex -i "/etc/squid/conf/bloqueados"
    #http_access deny bloqueados


    # proibe downloads das extensoes que estão no arquivo down

    #acl down urlpath_regex -i "/etc/squid/conf/down"
    #http_access deny down

    # bloqueia o uso do msn exeto os liberados no arquivo livre

    #acl msn url_regex -i /gateway/gateway.dll
    #http_access deny msn

    # ----------REGRA------------------------
    # criando as acls
    #acl ips_link1 src "/etc/ips.link1"
    #tcp_outgoing_address 192.168.15.242 ips_link1
    #acl ips_link2 src "/etc/ips.link2"
    #tcp_outgoing_address 192.168.14.242 ips_link2

    # ----------------------------------

    #http_access allow ips_link1
    #http_access allow ips_link2

    acl redelocal src 192.168.0.0/24

    http_access allow redelocal
    http_access deny all
    Última edição por dogman; 02-02-2009 às 11:39.

  4. Ok... Acho que esse seu script ta sobrecarregado com coisas que você não precisa. Mas vamos fazer uns testes com ele pra tentar descobrir o que pode estar havendo.

    1. Do host 192.168.0.10 ou 192.168.0.9 (diretoria) execute um ping para os ips 192.168.15.242 e 192.168.15.1.
    2. De qualquer outro hosts (exceto os da diretoria) execute um ping para os ips 192.168.14.242 e 192.168.14.1.

    Poste os resultados ai... Se até ai sair tudo ok, vamos fazer outros testes.



  5. Citação Postado originalmente por Magnun Ver Post
    Ok... Acho que esse seu script ta sobrecarregado com coisas que você não precisa. Mas vamos fazer uns testes com ele pra tentar descobrir o que pode estar havendo.

    1. Do host 192.168.0.10 ou 192.168.0.9 (diretoria) execute um ping para os ips 192.168.15.242 e 192.168.15.1.
    2. De qualquer outro hosts (exceto os da diretoria) execute um ping para os ips 192.168.14.242 e 192.168.14.1.

    Poste os resultados ai... Se até ai sair tudo ok, vamos fazer outros testes.
    Gostaria de te agradecer pela atenção

    Bem vamos lá
    depois de colocar o script para rodar aconteceu assim
    eu so pingo 192.168.15.1
    o 192.168.15.242, 192.168.14.1 e 192.168.14.242 não pingo






Tópicos Similares

  1. dividir link para duas redes
    Por fajo no fórum Servidores de Rede
    Respostas: 2
    Último Post: 22-03-2009, 12:34
  2. Dividir link por serviço
    Por JHONNE no fórum Redes
    Respostas: 5
    Último Post: 05-06-2008, 02:31
  3. Dividir link full entre dois provedores
    Por marciorct no fórum Redes
    Respostas: 8
    Último Post: 17-05-2008, 10:40
  4. Dividir Link Internet - Literalmente
    Por juniovitorino no fórum Servidores de Rede
    Respostas: 4
    Último Post: 05-11-2006, 14:15
  5. Dividir links velox.
    Por juniovitorino no fórum Servidores de Rede
    Respostas: 2
    Último Post: 06-02-2006, 13:12

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L