O ip
comando só permite nomes de tabela numéricos. Mas vejo que algumas tabelas padrão existem com nomes alfabéticos ( local
, main
). Existe uma maneira de dar a ele um alias alfabético?
slowcoder's questions
Tenho o seguinte código rodando no meu servidor para me permitir fazer SSH no meu servidor mesmo quando o servidor está conectado a uma VPN. O código abaixo roda como um serviço após a inicialização.
ip addr add 192.168.1.113 dev enp1s0 label enp1s0:0
ip rule add from 192.168.1.113 table 402
ip route add default via 192.168.1.1 dev enp1s0:0 table 402
Isso funciona com o OpenVPN, mas não com o WireGuard porque meu cliente WireGuard adiciona algumas regras antes da minha regra acima.
0: from all lookup local
32761: from all lookup main suppress_prefixlength 0
32762: not from all fwmark 0xca6c lookup 51820
32763: from 192.168.1.113 lookup 402
32766: from all lookup main
32767: from all lookup default
Se eu adicionar a regra from 192.168.1.113 lookup 402
depois da conexão wireguard, então posso usar SSH no servidor. Então, estou assumindo que é uma questão de prioridade.
Como posso garantir que minha regra ( 32763
) mantenha a prioridade mesmo depois que o Wireguard se conectar e adicionar essas duas regras ( 32761
, )?32762
SOLUÇÃO COM FALHA:
Aprendi que os números à esquerda são prioridades. Então, tentei definir a prioridade da minha regra mais baixa.
ip rule add from 192.168.1.113 table 402 prio 300
.. mas depois que me conectei à VPN Wireguard, o cliente Wireguard simplesmente colocou suas regras abaixo das minhas em prioridade 299
, e 298
.
298: from all lookup main suppress_prefixlength 0
299: not from all fwmark 0xca6c lookup 51820
300: from 192.168.1.113 lookup 402
Existe alguma maneira de evitar isso? Acho que eu poderia colocar um PostUp
comando no arquivo de configuração do wireguard que altera a prioridade, mas sinto que tem que haver uma solução mais limpa.