¿Enrutar el tráfico a mis rutas ipv4 excepto a la dirección 0.0.0.0?

¿Enrutar el tráfico a mis rutas ipv4 excepto a la dirección 0.0.0.0?

Cómo enrutar el tráfico a mis rutas ipv4 excepto la dirección 0.0.0.0
porque no quiero que sea la interfaz predeterminada

predeterminado a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100
169.254.0.0/16 dev enp7s0 alcance enlace métrica 1000
192.168.5.0/24 dev enp7s0 proto kernel alcance enlace src 192.168.5.84 métrica 100
192.168.60.0/24 dev vpn_softether proto kernel alcance enlace src 192.168.60.50
209.80.36.170 a través de 192.168.60.1 dev vpn_softether
216.117.82.227 a través de 192.168.60.1 dev vpn_softether

Quiero hacer vpn_softether como interfaz predeterminada.
Lo que ya he probado...

ip r agregue 0.0.0.0/1 a través de 0.0.0.0 dev vpn_softether
ip r agregue 128.0.0.0/1 a través de 0.0.0.0 dev vpn_softether

ip r agregue 0.0.0.0/1 a través de 192.168.5.1
ip r agregue 128.0.0.0/1 a través de 192.168.5.1

ip r agregar valor predeterminado a través de 192.168.60.1

ip r del 0.0.0.0/1 vía 192.168.60.1 dev vpn_softether
ip r del 128.0.0.0/1 vía 192.168.60.1 dev vpn_softether

ip r del 0.0.0.0/1 vía 192.168.5.1
ip r del 128.0.0.0/1 vía 192.168.5.1

ip r agregar 0.0.0.0/1 a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r agregar 128.0.0.1/1 a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100


ip r del 0.0.0.0/1 a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r del valor predeterminado a través de 192.168.60.1 dev vpn_softether
ip r del 128.0.0.0/1 a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100

ip r del 0.0.0.0/1 a través de 192.168.60.1 dev vpn_softether proto dhcp métrica 100
ip r del valor predeterminado a través de 192.168.5.1 dev enp7s0
ip r del 128.0.0.0/1 a través de 192.168.60.1 dev vpn_softether proto dhcp métrica 100

ip r agregue 0.0.0.0/1 a través de 192.168.60.1 dev vpn_softether
ip r agregar valor predeterminado a través de 192.168.5.1 dev enp7s0 proto dhcp métrica 100
ip r agregue 128.0.0.0/1 a través de 192.168.60.1 dev vpn_softether

pero no funcionó... ¿Hay alguna otra forma de hacerlo?
Gracias.

Respuesta1

Tenga en cuenta que sólo puede enrutar "todo el tráfico" aunointerfaz, no para de alguna manera todos ellos.

Si desea conservar su ruta predeterminada (por cualquier motivo), déjela en paz, no la agregue ni la elimine. Si puedes agregarlo o eliminarlo, no necesitas mantener la ruta predeterminada...

Entonces,

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 

debería hacer el trabajo, suponiendo que la puerta de enlace vpn_softetheresté activada 192.168.60.1. Tenga en cuenta que también necesita una regla para enviar a cualquier lugar al que esté conectada su VPN enp7s0, o la VPN no podrá comunicarse con el otro punto final y, como resultado, no tendrá ninguna conexión. Entonces algo como

ip route add 1.2.3.4/32 via 192.168.5.1 dev enp7s0

¿Dónde 1.2.3.4está la dirección IP del otro punto final? Mantener la defaultregla para esto (si esta fue su motivación para esa condición)notrabajar.

Respuesta2

Quiero agregar a la respuesta anterior:

ip route add 1.2.3.4/32 via 192.168.5.1 dev enp7s0

Es un enfoque equivocado. Esta ruta desaparecerá cuando enp7s0se apague. Esta ruta no aparecerá cuando enp7s0se conecte. Mientras tanto, su interfaz VPN estará en línea, pero no funcionará porque no podrá acceder 1.2.3.4.

Puede crear dinámicamente esta ruta usando netplan una vez que enp7s0esté activa. Pero esta ruta consta de una dirección IP, un nombre de interfaz de red y una IP de puerta de enlace. significa que esno portátil a través de diferentes redes. La práctica demuestra que esta solución es demasiado dolorosa y, por tanto, no se recomienda. Se olvidará del hecho de que agregó una ruta importante a netplan en el corto plazo. Más adelante, esta ruta se convertirá en un problema para ti. Es completamente imposible utilizar esta solución en una red grande.

La solución correcta es excluir 1.2.3.4de la ruta predeterminada que está creando para la redirección del tráfico VPN. Parasolución de ejemplo para wireguard. Debe excluir 1.2.3.4/32y 0.0.0.0/0poner el resultado en AllowedIPs. En líneala calculadora está aquí. Puedes leer allí un párrafo "una alternativa mejor", pero el autor se equivoca, no hay alternativas.

Por ejemplo 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

Desafortunadamente, esta solución no es ideal: puede tener varias VPN y, por lo tanto, debe excluir todas las IP de los puntos finales de cada ruta predeterminada de VPN.

Por ejemplo, si tiene 2 VPN y desea agregar otra, debe excluir la IP del tercer punto final de las IP permitidas de las dos configuraciones de VPN existentes. Será mejor si Wireguard tiene una calculadora o DisallowedIPsfuncionalidad interna.

Entonces mi solución es omitir AllowedIPsla configuración y crear rutas predeterminadas usted mismo. Estoy usando lo siguienteexcluidor de calculadoraescrito en Python. Necesitas hacer lo siguiente:

  1. Recopile todos los puntos finales de todas las configuraciones del cliente Wireguard.
  2. Resuelva todos los puntos finales.
  3. Excluir puntos finales de destino de 0.0.0.0/0(y de ::/0).
  4. Agregue rutas predeterminadas para cada bloque de IP que recibió de la calculadora.

PD: Puedo recomendarle que agregue estas rutas en una tabla separada para cada interfaz VPN. Porque serán muchos de ellos.

PD: he hecho mi route-up.client.shy route-down.client.shcomoesencia pública aquí.

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

información relacionada