ip -o -s -s route show table cache
Existe um tabela chamada "cache" que nem preciso dizer que ela contém o cache :)
com a opção -s é exibido a idade(age), em segundos, daquela entrada, quantas vezes aquela regra foi usada(used), etc.
A opção -o é só pra mostra tudo em uma linha só. Fica mais fácil de fazer grep ou wc -l
A idade é zerada toda vez que aquela regra é usada e a o valor used é incrementado.
Não consegui determinar de quanto em quanto tempo essa tabela é esvaziada. Apenas determinei que de tempos em tempos ela é completamente zerada e reiniciada. Uma vez que eu acompanhei demorou algo em torno de 8 minutos, de uma outra vez 3:30min, depois 4 min cravados. Então o mais certo é: vai saber né?
o importante é lembrar que quando se alterar rotas ou rules é importante limpar essa tabela de cache com o comando:
ip route flush cache
ou
ip r f c
Do contrário você vai morrer tentando e não vai entender o comportamento do seu linux roteando.
Vou só incluir alguns comando aqui de exemplo que serão úteis logo logo:
ip rule show
ip rule add from 192.168.0.0/24 table 10
ou
ip rule add from 192.168.0.0/24 table dez
ou
ip rule add from 192.168.0.0/24 lookup 10
ou
ip rule add from 192.168.0.0/24 table dez
Observações:
lookup ou
table podem ser usado interchangeable.
o Nome ou número da tabela no arquivo
/etc/iproute2/rt_tables também podem ser usados interchangeable.
ip rule from 10.1.1.0/22 lookup WAN
ip rule to 200.0.0.1/24 lookup ADSL
Usando marcas(lembrando que o pacote não é alterado de forma alguma, essa marcação quem toma conta é o kernel, como se fosse NAT, pois existem uma tabela, porém no NAT o pacote ainda é alterado, nesse caso não):
iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 10
ip rule add fwmark 10 table GVT
Se você realmente deseja alterar o pacote deve usar o alvo TOS do iptables(não testei):
iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -j TOS --set-tos 0x10
tente: iptables -j TOs -h para descobrir as opções do --set-tos
ip rule add tos 0x10 lookup 10
Quando você for listar as rules você verá que surge na tela 'lowdelay' ao invés do valor 0x10. Isso porque o ip traduz e/ou mapeia isso de acordo com o arquivo
/etc/iproute2/rt_dsfieldip route get 192.168.1.55
Will pretend sending a packet to this destination resolve and get back the route that will be used to reach the destination. It actually creates an entry into the cache table. Check it out with ip route show cache
As the manual says it's equivalent to send a ping and running ip route show cache.
Marcadores: iptables