¿En qué order se analiza la tabla de routes?

En mi pc tengo que seguir la tabla de routing:

Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 

No entiendo cómo se analiza, quiero decir de arriba hacia abajo o de abajo hacia arriba.

Si se analiza de arriba hacia abajo, todo se enviará siempre al enrutador de mi casa, aunque el destino de la IP sea 192.168.1.15; pero lo que sabía (¿equivocadamente?) era que si una computadora estaba dentro de mi misma networking local, una vez que recuperaba el destino MAC a través de un post de transmisión, mi PC podía enviar el post directamente al destino.

La tabla de routing se usa en order de más específico a less específico.

Sin embargo, en Linux es un poco más complicado de lo que cabría esperar. En primer lugar, hay más de una tabla de routing, y cuándo se utiliza la tabla de routing depende de una serie de reglas.

Para get la image completa:

 $ ip rule show 0: from all lookup local 32766: from all lookup main 32767: from all lookup default $ ip route show table local broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 broadcast 192.168.0.0 dev eth0 proto kernel scope link src 192.168.1.27 local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27 broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27 $ ip route show table main default via 192.168.1.254 dev eth0 192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.1.27 $ ip route show table default $ 

La tabla local es la tabla de routing especial que contiene routes de control de alta prioridad para direcciones locales y de difusión.

La tabla main es la tabla de routing normal que contiene todas las routes que no son de política. Esta es también la tabla que puedes ver si simplemente ejecutas ip route show (o ip ro para abreviar). Recomiendo no usar el command de route , ya que solo muestra la tabla main y su formatting de salida es algo arcaico.

La tabla default está vacía y reservada para el postprocesamiento si las reglas pnetworkingeterminadas anteriores no seleccionaron el package.

Puede agregar sus propias tablas y agregar reglas para usarlas en casos específicos. Un ejemplo es si tiene dos conexiones a Internet, pero un server o subnetworking siempre debe enrutarse a través de una connection a Internet particular.

El libro Policy Routing with Linux explica todo esto con exquisito detalle.

La tabla de routing generalmente se aplica en order de "más específico" a "less específico". Un destino de 0.0.0.0 con una máscara de networking de 0.0.0.0 , es decir, su ruta pnetworkingeterminada , es el less específico posible y, por lo tanto, siempre se aplicará en último lugar.

Si tuviera la dirección MAC para otra PC en su networking local, pero estaba en una subnetworking diferente, podría agregar una ruta de host específica para esa PC y probablemente reciba la comunicación.