- tc + iptables MARK
+ Responder ao Tópico
-
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é
-
Re: tc + iptables MARK
Bom, depois de alguma pesquisa eu consegui fazer!
-
Re: tc + iptables MARK
Posta ai pro pessoal entender tb, muitas pessoas tem duvidas nessas confgiurações.
Abraços.
-
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.
-
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é