Como posso associar permanentemente comandos tc qdisc a uma interface específica?

2

Eu preciso usar um comando tc qdisc para limitar o uso da largura de banda em uma interface criada por openvpn . Isso funciona muito bem quando eu executo o comando manualmente, mas ocasionalmente a conexão cai ou reinicia e isso parece cancelar ou desativar as configurações de largura de banda aplicadas anteriormente. Existe uma maneira de fazer com que um comando tc qdisc seja aplicado permanentemente (ou pelo menos até que eu opte por cancelá-lo) em uma interface específica de modo que, sempre que a interface for ativada, minhas configurações de largura de banda sejam aplicadas? Eu preciso de algo como o sinalizador firewall-cmd permanent que faz as configurações ficarem.

O comando que estou usando atualmente é parecido com isto:

tc qdisc add dev tun0 tbf rate 1mbit latency...

em que tun0 é o nome da interface criado por openvpn .

    
por steevithak 12.01.2018 / 16:49

1 resposta

4

openvpn tem uma opção chamada --up cmd que executa cmd sempre que a conexão VPN é estabelecida pela primeira vez, e uma opção --up-restart que informa openvpn a também executar o comando --up quando uma conexão é reiniciada .

Você pode escrever um script que contém o comando tc qdisc ... , torná-lo executável com chmod +x e, em seguida, adicionar --up /path/to/my/script --up-restart à linha de comando openvpn .

Como alternativa, o cmd pode ser uma string corretamente citada contendo o comando inteiro e todos os seus argumentos. por exemplo,

openvpn ...  --up 'tc qdisc ...' --up-restart ...

Isto é possivelmente mais simples, mas um script é mais flexível e torna mais fácil fazer mais de uma coisa quando a conexão é estabelecida.

BTW, há também uma opção --down cmd , que é usada para executar scripts ou outros programas sempre que uma VPN é desconectada.

Veja man openvpn para mais detalhes sobre --up e --down e opções relacionadas.

Nota: é possível que sua distribuição Linux já faça uso desse recurso e tenha um diretório onde você possa criar um script para que ele seja executado automaticamente sempre que a VPN for estabelecida ou reiniciada. Verifique a documentação do pacote openvpn da sua distribuição. Se fizer algo assim, siga as instruções. Caso contrário, use a opção --up , conforme mencionado acima.

    
por 13.01.2018 / 05:06