Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. #7

    Padrão

    Cara, novamente, acho que não precisa de tudo isso...

    Faz o seguinte teste. Edita o arquivo /etc/iproute2/rt_tables e adicione 2 as seguines linhas:
    21 velox
    22 speedy

    Cria esse script:


    echo "Configurando Variáveis..."
    # Localização do comando iptables
    IPTABLES=/sbin/iptables
    # Localização do comando ip
    IP=/sbin/ip

    # Interface Externa 1 - velox
    NET_EXT_INT0=eth0
    # IP Virtua
    NET_EXT_IP0=192.168.14.242
    # Default Gateway Virtua
    NET_EXT_GW0=192.168.14.1


    # Interface interna
    NET_INT_INT1=eth2
    # IP interno
    NET_INT_IP1=192.168.0.1
    # Subnet interna
    NET_INT_SUB1=24
    # Rede interna
    NET_INT_NET1=192.168.0.0


    # Interface externa 2 - embratel
    NET_EXT_INT2=eth1
    # IP Speedy
    NET_EXT_IP2=192.168.15.242
    # Default Gateway Speedy
    NET_EXT_GW2=192.168.15.1

    echo "Limpando as tabelas..."
    $IPTABLES -F
    $IPTABLES -F -t nat
    $IPTABLES -F -t mangle
    $IPTABLES -X -t nat
    $IPTABLES -X -t mangle
    $IPTABLES -X


    #REGRA DO SQUID
    $IPTABLES -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128

    echo "Criando chain NAT para eth0..."
    $IPTABLES -t nat -N NAT_ETH0
    $IPTABLES -t nat -F NAT_ETH0
    $IPTABLES -t nat -A NAT_ETH0 -j SNAT --to ${NET_EXT_IP0}

    echo "Configurando chain NAT para eth2..."
    $IPTABLES -t nat -N NAT_ETH2
    $IPTABLES -t nat -F NAT_ETH2
    $IPTABLES -t nat -A NAT_ETH2 -j SNAT --to ${NET_EXT_IP2}

    echo "Aplicando regras de NAT da eth1 e eth2..."
    $IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT2} -j NAT_ETH2
    $IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT0} -j NAT_ETH0


    echo "Permitindo ping local..."
    $IPTABLES -A INPUT -p icmp -s ${NET_INT_NET1}/${NET_INT_SUB1} -d ${NET_INT_IP1} -j ACCEPT

    echo "Adicionando marcação para IPs da diretoria"
    iptables -t mangle -A PREROUTING -s 192.168.0.10/32 -j MARK --set-mark 22
    iptables -t mangle -A PREROUTING -s 192.168.0.9/32 -j MARK --set-mark 22

    echo "Adicionando marcação para restante dos IPs"
    iptables -t mangle -A PREROUTING -j MARK --set-mark 21


    echo "Removendo possíveis rotas"
    $IP rule del lookup speedy
    $IP rule del lookup speedy
    $IP rule del lookup velox
    $IP rule del lookup velox
    $IP route del default
    $IP route del default

    echo "Adicionando default gateway para Velox"
    $IP route add default via ${NET_EXT_GW0} table velox

    echo "Adicionando default gateway para Speedy"
    $IP route add default via ${NET_EXT_GW2} table speedy

    echo "Vinculando tráfego marcado a tabela"
    $IP rule add fwmark 21 table 21 prio 20
    $IP rule add fwmark 22 table 22 prio 20


    echo "Desabilitando filtro de caminho reverso..."
    echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

    echo "Habilitando roteamento de pacotes..."
    echo 1 > /proc/sys/net/ipv4/ip_forward




    Depois de executar o script verifica as regras com esse comando:
    ip rule list

    e verifica as rotas de cada tabela com esse comando:
    ip route list table speedy
    ip route list table velox

    Qualquer coisa posta ai...
    Última edição por Magnun; 04-02-2009 às 07:35.