+ Responder ao Tópico



  1. #1

    Padrão Roteamento Linux

    Pessoal, alguém me pode me dar um help? Estou precisando fazer um roteamento entre redes em linux 4 placas, porém algo está saindo errado.
    Tenho a seguinte estrutura:

    eth0 - 192.168.1.2 - Link Embratel
    eth1 - 192.168.0.1 - Rede Local
    eth2 - 189.19.240.115 - Link Speedy
    eth3 - 192.168.2.1 - Wireless Router

    Preciso que somentes os pacotes marcados ou as rotas definidas a parte saiam pelo Speedy.
    Tanto da "Rede Local" quanto "Wireless". Vejam como está atualmente a configuração.
    Eu pingo o gateway default do modem telefonica 189.19.240.1, mas nao tenho acesso ao sites.
    E o curioso que o traceroute eu chego ao destino.

    Rota Padrão
    ip route add default via 192.168.1.1

    Link Embratel
    ip route add 192.168.1.0/24 dev $eth0 src 192.168.1.2 table embratel
    ip route add default via 192.168.1.1 table embratel

    Link Speedy
    ip route add 189.19.208.0/24 dev eth2 src 189.19.240.115 table speedy
    ip route add default via 189.19.240.1 table speedy

    Regras das tabelas
    ip rule add fwmark 0x3 table speedy prio 10

  2. #2

    Padrão

    cara, outro dia ajudei um pessoal com algo parecido, dá uma olhada aqui: https://under-linux.org/forums/proxy...tml#post315252



  3. #3

    Padrão

    Então já fiz desta forma também, a única parte ali que não ultilizei foi aquela sua regra do Iptables com a ação de RETURN. alias nem entendi bem qual seria a função dela neste problema.

  4. #4

    Padrão

    Eu coloquei esse link mais como fonte de referencia pra você verificar as regras do iptables pra marcação de pacotes...

    O return é pra parar a execução do firewall, o MARK no iptables funciona similar ao LOG, ele não para a execução das regras. Dessa forma se eu tivesse as regras assim:

    iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j MARK --set-mark 20
    iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 10

    Na verdade estaria tudo marcado como 10 porque a regra de baixo sobreescreve a de cima. O pacote primeiro é marcado como 20 e depois remarcado como 10. Por isso o RETURN, faz os pacotes que foram marcados como 20 pararem de ser analisados pelo iptables.

    Talvez fosse interessante fazer uma marcação pra speedy e outra pra embratel.

    Até mais...



  5. #5

    Padrão

    Após fazer as configurações para essa rotas speedy, executei os teste de PING e TRACEROUTE e verifiquei que os pacotes chegam até o destino através do link Telefônica, porém acontece algo estranho que ainda não identifiquei, eu só consigo ter acesso aos sites do Google (google, gmail, orkut ...) os demais não, mesmo entrar com IPs direto, o que elimina a possibilidades de problemas com DNS. Muito estranho eu ter acesso somente acesso ao Google pelo Speedy e não ter acesso aos demais, já que não absolutamente nenhuma regra de firewall e proxy filtrando.
    Conectei um laptop diretamente ao modem Speedy e consigo o acesso normalmente.
    Já viu isso em algum lugar ?



    Att.

  6. #6

    Padrão

    Você fez marcação por protocolo?? Os serviços do google usam https (porta 443)... No exemplo que passei havia marcação somente pra porta 80.



  7. #7

    Padrão

    Não fiz marcação por protocolo, mas agora consegui sair pela rota Speedy, porém ainda não do jeito que espero.
    Após criar a tabela de roteamento Speedy, também criei uma regra a carater de teste para o IP de meu host.

    ip rule add from 192.168.0.250/32 table speedy prio 1

    Com esta regra consigo ter acesso a internet normalmente por Speedy, mas com a regra anterior sob marcaçào de pacotes não tenho o mesmo resultado, verifiquei que os pacotes até obedecem a regra de ip rule e iptables, mas ainda assim não tenho acesso.
    As regras que quero que funcionem são estas:

    ip rule add fwmark 10 table speedy prio 1

    iptables -t mangle -A PREROUTING -s 192.168.0.250/32 -j MARK --set-mark 10

    O que será que está havendo agora? tendo que o resultado de roteamento deveria ser o mesmo.


    Att

  8. #8

    Padrão

    Você tem mais alguma regra de marcação?? Como tá esse firewall?
    Verifica o vinculamento da marcação à tabela...
    ip rule list

    e o conteudo das tabelas:
    ip route list table nome_da_tabela

    ve se ta tudo ok. Outra coisa, tem alguma rota no kernel do linux? lista ai... route -n
    Se não me engano o iproute2 tem prioridade sobre as regras do kernel...



  9. #9

    Padrão

    Não tenho nenhuma outra marcação de pacotes no firewall. Só tenho uma única marcação e de um único ip de origem, o qual marquei com 10. só tenho essa regra ip rule criada também. O fato que me deixou curioso, fazer o traceroute e verificar que essa regras estão desviando a rota para o speedy, é como se os pacotes estivessem somente indo mas não voltando no caso de http, mas no ping eu mando e recebo resposta.

  10. #10

    Padrão

    O trace está parando no Linux??

    Entra com uma linha de LOG no firewall para ver se está chegando na regra que você criou para marcar.



  11. #11

    Padrão

    roda um tcpdump, ou se você estiver com interface o wireshark, pra capturar os pacotes de ida e volta tanto no linux que está fazendo o roteamento quanto no host que gera a requisição.