¿Qué archivos de configuración afectan la tabla de enrutamiento de un sistema Debian?

¿Qué archivos de configuración afectan la tabla de enrutamiento de un sistema Debian?

Hasta donde yo sé, la configuración básica de la red entra /etc/network/interfacesy el sistema genera la tabla de enrutamiento a partir de esta información. También me enseñaron que, en general, /etc/network/interfaceses el lugar para agregar permanentemente comandos personalizados para manipular la tabla de enrutamiento (a veces también se sugiere /etc/rc.localun script personalizado /etc/network/if-up.d/). Además, se pueden especificar tablas de enrutamiento personalizadas en /etc/iproute2/rt_tables.

  • ¿Hay otros lugares que afectarán la tabla de enrutamiento (principal)?
    • En particular, ¿existen otras posibilidades además de /etc/network/interfaceshacer permanentes las rutas agregadas/eliminadas manualmente?
  • ¿Un sistema con múltiples NIC tiene un concepto deprimarioyinterfaces de red secundarias¿O estas sólo se utilizan para ayudar al usuario? (Durante la configuración, uno debe elegir el si principal y /etc/network/interfacescontendrá un comentario apropiado). Si tal concepto existe, ¿dónde se puede configurar?
  • ¿Existe alguna diferencia en el concepto de tabla de enrutamiento entre Debian Squeeze y Debian Jessie?

El trasfondo de mi pregunta es que tengo un sistema Debian Squeeze heredado y un nuevo sistema Debian Jessie que arrancan con diferentes tablas de enrutamiento pero que (hasta donde yo sé) están configurados de manera idéntica. Podría manipular manualmente la tabla de enrutamiento para adaptarla a mis necesidades y hacer que los cambios sean permanentes, /etc/network/interfacespero quiero entender qué está pasando.

EDITAR

Aquí están los archivos de configuración de ambas máquinas. Cambié las primeras partes de cada dirección IP por razones de privacidad. Sin embargo, las subredes y las partes de dirección de las respectivas redes no se modificaron. El /etc/network/interfaces.d/directorio de la máquina Jessie está vacío.

/etc/iproute2/rt_tablesen jessie

#
# reserved values
#
255 local
254 main
253 default
0   unspec
#
# local
#
#1  inr.ruhep

/etc/iproute2/rt_tablesen apretar

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep

/etc/rc.localen jessie

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/rc.localen apretar

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/network/interfacesen jessie

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
    address 143.103.155.254
    netmask 255.255.255.0
    network 143.103.155.0
    gateway 143.103.155.254

# The primary network interface
auto eth2
iface eth2 inet static
    address 27.126.19.194
    netmask 255.255.255.248
    network 27.126.19.192
    broadcast 27.126.19.199
    gateway 27.126.19.193
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 143.103.5.1
    dns-search subdomain.domain.de

/etc/network/interfacesen apretar

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

auto eth0
iface eth0 inet static
        address 143.103.155.254
        netmask 255.255.255.0
        network 143.103.155.0
        gateway 143.103.155.254

auto eth2
iface eth2 inet static
        address 27.126.19.194
        netmask 255.255.255.248
        network 27.126.19.192
        broadcast 27.126.19.199
        gateway 27.126.19.193

salida de ip route show table mainen Jessie

default via 143.103.155.254 dev eth1 
143.103.155.0/24 dev eth1  proto kernel  scope link  src 143.103.155.254 
27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194

salida de ip route show table mainen Squeeze

27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194
143.103.155.0/24 dev eth0  proto kernel  scope link  src 143.103.155.254
default via 27.126.19.193 dev eth2
default via 143.103.155.254 dev eth0  scope link

salida de route -nen Jessie

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth1
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2

salida de route -nen Squeeze

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         27.126.19.193  0.0.0.0         UG    0      0        0 eth2
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth0

Respuesta1

ambos de ustedes/etc/red/interfacesLos archivos contienen el mismo error: la puerta de enlace predeterminada se especifica dos veces.

Puede tener múltiples puertas de enlace predeterminadas, solo bajo una circunstancia muy específica (despreciando las métricas): que tenga varias tablas de enrutamiento, cada una especificada en el archivo./etc/iproute2/rt_tables, pero cada tabla de enrutamiento tendrá unsolteropuerta de enlace predeterminada.

En su lugar, especifique uno para cada interfaz, en elmisma mesa principal. Entonces, lo que estamos viendo aquí es una ligera diferencia en la implementación deliproute2paquete y cómo responde a los errores.

En el caso deJessie, establece la puerta de enlace mencionada en primer lugar, 143.103.155.254, como la única puerta de enlace, simplemente porque se menciona en primer lugar. Cuando se produce la declaración de la segunda puerta de enlace, 27.126.19.193, no pasa nada porque esnoprecedido por

      ip route del default

Squeeze, en cambio, trata el error de una manera diferente: limita elalcancede la segunda puerta de entrada aenlace local. Para más información sobrealcance, verel manual de iproute2, Que estados:

enlace de alcance --- la dirección es enlace local, válida solo en este dispositivo.

WikipediaEstablece que:

En una red informática, una dirección de enlace local es una dirección de red que es válida sólo para comunicaciones dentro del segmento de red (enlace) o el dominio de transmisión al que está conectado el host.

Así, la gama (sinónimo impreciso dealcance) de la segunda puerta de enlace se ha limitado en gran medida a su segmento de red (es decir, su dominio de transmisión 143.103.155.0/24). Por lo tanto, Jessie también, de otra manera, ha lidiado con su declaración incorrecta de múltiples puertas de enlace en la misma tabla de enrutamiento.

Por supuesto, no haycomportamiento esperadosobre cómo los paquetes manejan los errores. La forma correcta de configurar tu/etc/red/interfacesarchivo es omitir la declaración

   gateway 143.103.155.254

en total (esto es extraño también porque dice que la puerta de enlace de tu propia pc es... ¡ella misma!). Para ver una buena explicación de esto lea elPárrafo de solución inicial aquí; Más adelante, también se explica cómo agregar múltiples puertas de enlace, con múltiples tablas de enrutamiento.

Si, como usted afirma,

Puedo intentar nuevamente verificarlo, pero estoy bastante seguro de que ya lo intenté y todavía no pude acceder a ninguna IP externa.

Lo más probable es que se deba a que no permitiste el reenvío de IPv4 de una interfaz a otra (como sudo:

     echo 1 > /proc/sys/net/ipv4/ip_forward

se encarga de eso), o porque las reglas de iptables bloquearon el reenvío.

Respuesta2

La principal diferencia entre Squeeze y Jessie es que ipel comando requiere ifconfigel primero y iproute2el último.

ifconfig no conoce múltiples configuraciones de puerta de enlace, al menos sin métricas. Es por eso que ves diferencias entre los dos ip routecomandos (o route -n(obsoleto))

iproute2 puede rastrear múltiples tablas de enrutamiento

ip route show all

El concepto de interfaces de red primaria y secundaria es solo una forma de distinguirlas, generalmente llamadas eth0 (1.ª) y eth1 (2.ª), ¡pero el orden puede variar!

Y sí, puede establecer una ruta permanente /etc/network/interfacesmediante el uso de upesta manera:

up ip route add 1.2.3.4/24 via 1.2.3.1

información relacionada