+ Responder ao Tópico



  1. #1

    Padrão LAYER7 Balanceamento com 3 links

    Boa tarde Galera!
    Estou com um problemão aqui e gostaria de um help!
    Tenho 3 links (01 Adsl 4MB , 01 Adsl 1MB, 01 Link dedicado 512Kb)
    Gostaria de fazer com que a navegação saia pelo 4MB. Os serviços de email (25, 110) pelo 512Kb. E o resto pelo 1MB.
    Até ai consegui fazer tudo funcionar. Mas qdo resovil redirecionar os Downloads de EXE , MP3 , RAR e etc. para o 1MB começaram meus problemas.
    Ele não consegue fazer com que esses downloads venham pelo Link de 1MB. Ou ele vem pelo link de 4Mb ou não vem.
    O que é mais estranho é que quando vou fazer donwload que vem do Emule que vem do SOUCEFORGE ele vem certo pelo 1MB.
    Dá pra entender?
    Acredito que ele esteja conflitando com a regra da porta 80 qdo é feito download via http. Mas qual seria a solução!?

    Vou mandar parte de meu script pra vossa análize.
    Obrigado se alguém puder ajudar.

    #ETH5 - Cliente
    #ETH0 - LINK 4 MB
    #ETH6 - LINK 512Kb
    #ETH7 - LINK 1 MB

    iptables -F
    iptables -t nat -F
    iptables -t mangle -F

    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth6 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth7 -j MASQUERADE
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu


    #REGRAS PARA O 4MB
    iptables -t mangle -A PREROUTING -i eth5 -p tcp --dport 80 -j MARK --set-mark 1

    #REGRAS PARA O 512Kbps
    iptables -t mangle -A PREROUTING -i eth5 -p tcp --dport 25 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -i eth5 -p tcp --dport 110 -j MARK --set-mark 2

    #REGRAS PARA O 1MB
    iptables -t mangle -A PREROUTING -m layer7 --l7proto exe -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -m layer7 --l7proto mp3 -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -m layer7 --l7proto rar -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -m layer7 --l7proto zip -j MARK --set-mark 3


    #REGRAS PARA O 4MB
    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 1

    #REGRAS PARA O 512Kbps
    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

    #REGRAS PARA O 1MB
    iptables -t mangle -A OUTPUT -m layer7 --l7proto exe -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -m layer7 --l7proto mp3 -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -m layer7 --l7proto rar -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -m layer7 --l7proto zip -j MARK --set-mark 3

    ip route add default via 192.168.1.1 dev eth0 table 200
    ip route add default via 192.168.0.1 dev eth6 table 201
    ip route add default via 10.0.0.138 dev eth7 table 202
    ip rule add fwmark 1 table 200
    ip rule add fwmark 2 table 201
    ip rule add fwmark 3 table 202

    ip route flush cache

  2. #2

    Padrão

    Galera, eu preciso desativar os pacotes marcianos?
    Estou lendo sobre isso.
    Alguem tem alguma dica?

  3. #3

    Padrão

    Dei um tail -f para ver os logs da porta 80.
    Seguinte -> qdo navego normalmente ele sai pela OUT=ETH0 e com o IP que sai para ETH0 que é 192.168.1.2, e qdo vou fazer download de algum arquivo EXE ele pega certo o IP da ETH7 que é 10.0.0.2 , mas só que ele mostra em OUT=ETH0.
    A ETH0 é o meu default Gateway.
    Acredito que o problema é nas minhas rotas do IPROUTE, mas não consigo navegar de maneira nenhuma se eu tirar o meu Default GW.
    Alguem tem alguma dica?
    Vlw

  4. #4

    Padrão tenho pouca esperiencia mas...

    velho é o seguinte veja o meu caso e minhas regras e vê se te ajuda,

    tenho dois links dedicados sendo um de 512 e outro de 1024, uso o bfw (você encontra ele em BrazilFW Firewall and Router )
    faço somente o seguinte uso as regras que ja vem prontas no bfw para balanceamento, e uso o peso no link de 512 - peso 1 e o peso no link de 1024 - peso 3...
    isso fas que vá uma conexão para o link menor e tres para maior mais uso as seguintes regras abaixo para que tudo que for msn e paginas que usem 443 passem somento no link de 512.
    iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp --dport 1853:1864 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p udp --dport 1853:1864 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p udp --dport 6891:6900 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp --dport 6891:6900 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp -d login.passport.net -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -p tcp -d svcs.microsoft.com -j MARK --set-mark 2
    ip rule add fwmark 2 table 20 prio 20
    ip route add default via (ip do meu routeador) dev eth1 table 20


    agora nunca usei o l7 mais se usasse acho que colocaria assim

    iptables -t mangle -A POSTROUTING -m layer7 --l7proto msn -j MARK --set-mark 2

    bom como disse eu to completamente engatinhando em iptables li a primeira apostila ontem sobre isso ve ai se ajuda em algo..

    até boa sorte.

  5. #5

    Padrão

    Obrigado amigo dyllong
    Eu finalmente consegui resolver meu problema hoje. Usei o tcp_outgoing_address no Squid.
    Ficou mto bom - agora todo down de .exe .iso .rar .zip .mp3 e etc desce pelo 1MB - email e 443 desce pelo 512 - e o resto pelo 4MB.
    Vou fazer um Tuto e postar aki no under pq sofri pra fazer isso funcionar. Catando umpouco aki outro ali , rs.
    Obrigado t+