Necesito agregar una ruta que no se eliminará después de reiniciar. Leí estas dos formas de hacerlo:
Añadir ip route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
al archivo /etc/network/interfaces
o
Cree el archivo /etc/network/if-up.d/route con:
#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
y hacerlo ejecutable:
chmod +x /etc/network/if-up.d/route
Así que estoy confundido. ¿Cuál es la mejor manera de hacerlo?
Respuesta aceptada:
Mencionaste /etc/network/interfaces
, entonces es un sistema Debian...
Cree una tabla de enrutamiento con nombre. Como ejemplo, he usado el nombre "mgmt" a continuación.
echo '200 mgmt' >> /etc/iproute2/rt_tables
Arriba, el kernel admite muchas tablas de enrutamiento y se refiere a ellas mediante números enteros únicos numerados del 0 al 255. También se define un nombre, mgmt, para la tabla.
A continuación, un vistazo a un /etc/iproute2/rt_tables
predeterminado sigue, mostrando que algunos números están reservados. La elección en esta respuesta de 200 es arbitraria; uno podría usar cualquier número que no esté ya en uso, 1-252.
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
A continuación, un archivo de interfaces de Debian 7/8 define eth0
y eth1
. eth1
es la red 172. eth0
podría usar DHCP también. 172.16.100.10
es la dirección IP para asignar a eth1
. 172.16.100.1
es la dirección IP del enrutador.
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The production network interface
auto eth0
allow-hotplug eth0
# iface eth0 inet dhcp
# Remove the stanzas below if using DHCP.
iface eth0 inet static
address 10.10.10.140
netmask 255.255.255.0
gateway 10.10.10.1
# The management network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 172.16.100.10
netmask 255.255.255.0
post-up ip route add 172.16.100.0/24 dev eth1 src 172.16.100.10 table mgmt
post-up ip route add default via 172.16.100.1 dev eth1 table mgmt
post-up ip rule add from 172.16.100.10/32 table mgmt
post-up ip rule add to 172.16.100.10/32 table mgmt
Reinicie o reinicie la red.
Actualización:exposición sobre EL
Noté en un comentario que "también se preguntaba por RHEL".
En Enterprise Linux ("EL":RHEL/CentOS/et al), cree una tabla de enrutamiento con nombre como se mencionó anteriormente.
EL /etc/sysconfig/network
archivo:
NETWORKING=yes
HOSTNAME=host.sld.tld
GATEWAY=10.10.10.1
EL /etc/sysconfig/network-scripts/ifcfg-eth0
a continuación, usando una configuración estática (sin NetworkManager y sin especificar "HWADDR" y "UUID" para el ejemplo a continuación).
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=10.10.10.140
NETMASK=255.255.255.0
NETWORK=10.10.10.0
BROADCAST=10.10.10.255
EL /etc/sysconfig/network-scripts/ifcfg-eth1
(sin NetworkManager y sin especificar "HWADDR" y "UUID" para el ejemplo a continuación).
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=172.16.100.10
NETMASK=255.255.255.0
NETWORK=172.16.100.0
BROADCAST=172.16.100.255
EL /etc/sysconfig/network-scripts/route-eth1
archivo:
172.16.100.0/24 dev eth1 table mgmt
default via 172.16.100.1 dev eth1 table mgmt
EL /etc/sysconfig/network-scripts/rule-eth1
archivo:
from 172.16.100.0/24 lookup mgmt
Actualización para RHEL8
Este método descrito anteriormente funciona con RHEL 6 y RHEL 7, así como con los derivados, pero para RHEL 8 y derivados, primero debe instalar network-scripts
para utilizar el método descrito anteriormente.
dnf install network-scripts
La instalación produce una advertencia de que network-scripts
se eliminará en una de las próximas versiones importantes de RHEL y que NetworkManager proporciona ifup
/ifdown
guiones también.