+ Responder ao Tópico



  1. #1

    Padrão tc + iptables MARK

    Olá pessoal, eu estou tentando fazer aqui uma implementação com o iptables + tc para controle de banda. Eu gostaria de utilizar o iptables para marcar os pacotes e depois fazer com que o tc olhe essas marcas e coloque esses pacotes na fila apropriada. Eu achei algumas implementações onde fizeram isso, mas não ficou muito claro para mim!

    Eu tentei fazer da seguinte forma, primeiro marcar o pacote com uma origem que eu queira para qualquer lugar com o iptables:

    iptables -t mangle -A POSTROUTING -s 192.168.1.20/255.255.255.0 -j MARK --set-mark 2

    Até ai blz! Eu consigo ver a regra na tabela, o problema é quando eu tento fazer a implementação no TC. Eu estou tentando fazer da seguinte forma mas estou tendo dificuldades de terminar o comando:

    tc filter add dev eth0.10 parent 1:0 protocol ip fw

    Na internet eu achei dessa forma:

    tc filter add dev eth0 parent 1: protocol ip prio 7 handle 33 fw classid 1:33

    O que eu não consigo entender disto é onde eu vou especificar a "marca" que fiz com o iptables! Onde eu vou colocar o valor "2" que eu setei no iptables!

    Alguém pode me dar essa dica!

    Muito obrigado!

    André

  2. #2

    Padrão Re: tc + iptables MARK

    Bom, depois de alguma pesquisa eu consegui fazer!

  3. #3

    Padrão Re: tc + iptables MARK

    Posta ai pro pessoal entender tb, muitas pessoas tem duvidas nessas confgiurações.
    Abraços.

  4. #4

    Padrão Re: tc + iptables MARK

    Falae zenun, tudo certo?

    Substiuindo o handle 33 por handle 2 vc filtra o pacote com o a marca que vc fez no iptables, não foi isso que você fez?

    Abraço.

  5. #5

    Padrão Re: tc + iptables MARK

    Bom, o que eu acabei fazendo aqui foi o seguinte, eu preciso identificar o trafego de algumas máquinas para poder coloca-lo em uma das classes do TC. Para isso eu estava pensando em utilizar o iptables, pois com ele eu tenho uma flexibilidade boa. É possível fazer isso com o próprio tc tb.

    Um pacote pode ser marcado com o iptables da seguinte forma:

    iptables -t mangle -A PREROUTING -i eth0.10 -o eth1.200 -d 192.168.182.150 -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -i eth0.10 -o eth1.200 -d 192.168.182.150 -j RETURN


    Neste exemplo eu coloque uma marca com o valor 3. Agora eu posso utilizar essa marca para poder classificar no TC. Isso é feito da seguinte forma:

    tc filter add dev eth1.200 parent 2:0 protocol ip prio 0 handle 3 fw classid 2:10

    O que isso vai fazer é colocar os pacotes marcados com 3 na classe 2:10. É possível também classificar os pacotes diretamente no iptables utilizando o target CLASSIFY, ou seja, não seria necessária essa regra do TC indicando qual classe o pacote deve ir. Isso é feito desta forma:

    iptables -t mangle -A POSTROUTING -s 192.168.182.150/255.255.255.255 -j CLASSIFY --set-class 2:10


    Bom, espero que isso ajude algumas pessoas que necessitam utilizar essa combinação, IPTABLES + TC.

    André