¿Por qué está involucrada la tabla principal, ya que configuré el enrutamiento para usar una tabla de enrutamiento personalizada?

¿Por qué está involucrada la tabla principal, ya que configuré el enrutamiento para usar una tabla de enrutamiento personalizada?

Tengo la siguiente situación:

- - - - - - -
| namespace |-------o      o------
- - - - - - -     vethY   ppp0
          vethX

dónde:

  • ppp0es una interfaz PPP y su dirección ip es 192.168.100.169/24
  • vethXes una interfaz ethernet virtual dentro del espacio de nombres y su dirección IP es 10.0.0.3/24
  • vethYes otra interfaz virtual de Ethernet, su dirección IP es 10.0.0.5/24 y también es la puerta de enlace predeterminada para el espacio de nombres.

De hecho, la tabla de enrutamiento en el espacio de nombres es la siguiente:

$ sudo ip netns exec my_namespace ip route
default via 10.0.0.5 dev vethX
10.0.0.0/24 dev vethX proto kernel scope link src 10.0.0.3

Quiero utilizar enrutamiento basado en políticas en este escenario; en particular, quiero usar una tabla de enrutamiento personalizada cuando la interfaz entrante de paquetes de red es vethYo la ppp0interfaz.

Creé la tabla de enrutamiento personalizada con el nombre 'T1'agregando la entrada "T1" en el archivo /etc/iproute2/rt_tables.
Luego agregué la regla de enrutamiento de política que le indicará al sistema cuándo usar esta nueva tabla de enrutamiento.
Ahora las reglas de enrutamiento de políticas son:

$ ip rule
0:      from all lookup local
32764:  from all iif ppp0 lookup T1
32765:  from all iif vethY lookup T1
32766:  from all lookup main
32767:  form all lookup default

Luego agregué las siguientes reglas a mi tabla personalizada

$ ip route show table T1
default via 192.168.100.169 dev ppp0
10.0.0.0/24 dev vethY scope link
192.168.100.180 dev ppp0 scope link

La última línea muestra cuál es el otro punto final del enlace punto a punto.
Además, la tabla de enrutamiento principal está vacía.

Con esta configuración, si estoy en el espacio de nombres y hago ping a 10.0.0.5, no recibo respuestas (ni la respuesta ARP).
Los paquetes de solicitud llegan a la interfaz vethY (lo he visto usando Wirehark) pero no se genera ninguna respuesta.
Si mi caché de arp está vacío, cuando se envía una solicitud de arp no se enviará ninguna respuesta de arp.

En cambio, si agrego la regla
10.0.0.0/24 dev vethY scope link
también a la tabla principal, todos los paquetes fluyen de la manera correcta.

¿Por qué no recibo respuestas si no agrego esta regla a la tabla principal?
¿Por qué está involucrada la tabla principal, ya que configuré el enrutamiento para usar T1 para todos los paquetes provenientes de vethY o ppp0?

información relacionada