Roteando o tráfego para minhas rotas IPv4, exceto o endereço 0.0.0.0?

Roteando o tráfego para minhas rotas IPv4, exceto o endereço 0.0.0.0?

Como rotear o tráfego para minhas rotas IPv4, exceto o endereço 0.0.0.0,
porque não quero que seja a interface padrão

padrão via 192.168.5.1 dev enp7s0 proto dhcp métrica 100
169.254.0.0/16 dev enp7s0 métrica de link de escopo 1000
192.168.5.0/24 dev enp7s0 proto kernel scope link src 192.168.5.84 métrica 100
192.168.60.0/24 dev vpn_softether link de escopo do proto kernel src 192.168.60.50
209.80.36.170 através de 192.168.60.1 dev vpn_softether
216.117.82.227 através de 192.168.60.1 dev vpn_softether

Quero fazer vpn_softether como interface padrão
O que já tentei ......

ip r adicionar 0.0.0.0/1 via 0.0.0.0 dev vpn_softether
ip r adicionar 128.0.0.0/1 via 0.0.0.0 dev vpn_softether

ip r adicionar 0.0.0.0/1 via 192.168.5.1
ip r adicionar 128.0.0.0/1 via 192.168.5.1

ip r adicionar padrão via 192.168.60.1

ip r del 0.0.0.0/1 via 192.168.60.1 dev vpn_softether
ip r del 128.0.0.0/1 via 192.168.60.1 dev vpn_softether

ip r del 0.0.0.0/1 via 192.168.5.1
ip r del 128.0.0.0/1 via 192.168.5.1

ip r adicionar 0.0.0.0/1 via 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r adicionar 128.0.0.1/1 via 192.168.5.1 dev enp7s0 proto dhcp métrica 100


ip r del 0.0.0.0/1 via 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r del padrão via 192.168.60.1 dev vpn_softether
ip r del 128.0.0.0/1 via 192.168.5.1 dev enp7s0 proto dhcp métrica 100

ip r del 0.0.0.0/1 via 192.168.60.1 dev vpn_softether proto dhcp métrica 100
ip r del padrão via 192.168.5.1 dev enp7s0
ip r del 128.0.0.0/1 via 192.168.60.1 dev vpn_softether proto dhcp métrica 100

ip r adicionar 0.0.0.0/1 via 192.168.60.1 dev vpn_softether
ip r adicionar padrão via 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r adicionar 128.0.0.0/1 via 192.168.60.1 dev vpn_softether

mas não funcionou... Existe alguma outra maneira de fazer isso?
Obrigado.

Responder1

Observe que você só pode rotear "todo o tráfego" parauminterface, não para de alguma forma todos eles.

Se você quiser manter sua rota padrão (por qualquer motivo), deixe a rota padrão de lado, não a adicione ou remova. Se você pode adicionar ou remover, não precisa manter a rota padrão...

Então,

ip route add 0.0.0.0/1 via 192.168.60.1 dev vpn_softether 
ip route add 128.0.0.0/1 via 192.168.60.1 dev vpn_softether 

deve fazer o trabalho, assumindo que o gateway ativado vpn_softetheré de fato 192.168.60.1. Observe que você também precisa de uma regra para enviar para onde quer que sua VPN esteja conectada enp7s0, ou a VPN não será capaz de se comunicar com o outro endpoint e, como resultado, você não terá nenhuma conexão. Então algo como

ip route add 1.2.3.4/32 via 192.168.5.1 dev enp7s0

onde 1.2.3.4está o endereço IP do outro endpoint. Manter a defaultregra para isso (se esta foi a sua motivação para aquela condição) iránãotrabalhar.

Responder2

Quero acrescentar à resposta anterior:

ip route add 1.2.3.4/32 via 192.168.5.1 dev enp7s0

É a abordagem errada. Esta rota desaparecerá quando enp7s0estiver desativada. Esta rota não aparecerá quando enp7s0estiver online. Enquanto isso, sua interface VPN estará online, mas não funcionará porque não será capaz de acessar 1.2.3.4.

Você pode criar esta rota dinamicamente usando o netplan assim que enp7s0estiver ativado. Mas esta rota consiste em um endereço IP, um nome de interface de rede e um IP de gateway. Isso significa que énão é portátil em redes diferentes. A prática mostra que esta solução é muito dolorosa e, portanto, não recomendada. Você esquecerá o fato de ter adicionado uma rota importante ao netplan no curto prazo. Mais tarde, esta rota se tornará um problema para você. É completamente impossível usar esta solução em uma rede grande.

A solução certa é excluir 1.2.3.4da rota padrão que você está criando para redirecionamento de tráfego VPN. Paraexemplo de solução para wireguard. Você precisa excluir 1.2.3.4/32e 0.0.0.0/0colocar o resultado em AllowedIPs. On-linecalculadora está aqui. Você pode ler ali um parágrafo “uma alternativa melhor”, mas o autor está errado, não há alternativas.

Por exemplo, 0.0.0.0/0menos 1.2.3.4/32será:

AllowedIPs = 0.0.0.0/8, 1.0.0.0/15, 1.2.0.0/23, 1.2.2.0/24, 1.2.3.0/30, 1.2.3.5/32, 1.2.3.6/31, 1.2.3.8/29, 1.2.3.16/28, 1.2.3.32/27, 1.2.3.64/26, 1.2.3.128/25, 1.2.4.0/22, 1.2.8.0/21, 1.2.16.0/20, 1.2.32.0/19, 1.2.64.0/18, 1.2.128.0/17, 1.3.0.0/16, 1.4.0.0/14, 1.8.0.0/13, 1.16.0.0/12, 1.32.0.0/11, 1.64.0.0/10, 1.128.0.0/9, 2.0.0.0/7, 4.0.0.0/6, 8.0.0.0/5, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/1

Infelizmente, esta solução não é ideal: você pode ter várias VPNs e, portanto, deve excluir todos os IPs de endpoint de cada rota padrão da VPN.

Por exemplo, se você tiver 2 VPNs e quiser adicionar outra, será necessário excluir o terceiro IP do endpoint dos IPs permitidos das duas configurações de VPN existentes. Será melhor se o wireguard tiver calculadora ou DisallowedIPsfuncionalidade interna.

Portanto, minha solução é omitir AllowedIPsa configuração e criar você mesmo as rotas padrão. Estou usando o seguinteexcluído de calculadoraescrito em python. Você precisa fazer o seguinte:

  1. Colete todos os endpoints de todas as configurações do cliente wireguard.
  2. Resolva todos os endpoints.
  3. Excluir endpoints de destino de 0.0.0.0/0(e de::/0 ).
  4. Adicione rotas padrão para cada bloco IP recebido da calculadora.

PS: Posso recomendar que você adicione essas rotas em uma tabela separada para cada interface VPN. Porque será um monte deles.

PS eu fiz o meuroute-up.client.sh e route-down.client.shcomoessência pública aqui.

Table = off
PostUp = /etc/wireguard/route-up.client.sh 51820 wg0 10.20.3.0/24 fd10:20:3::/64 10
PreDown = /etc/wireguard/route-down.client.sh 51820

informação relacionada