Devo aggiungere un percorso che non verrà eliminato dopo il riavvio. Ho letto questi due modi per farlo:
Aggiungi ip route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
nel file /etc/network/interfaces
o
Crea il file /etc/network/if-up.d/route con:
#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
e rendilo eseguibile :
chmod +x /etc/network/if-up.d/route
Quindi sono confuso. Qual è il modo migliore per farlo?
Risposta accettata:
Hai menzionato /etc/network/interfaces
, quindi è un sistema Debian...
Crea una tabella di routing denominata. Ad esempio, ho usato il nome "mgmt", di seguito.
echo '200 mgmt' >> /etc/iproute2/rt_tables
Sopra, il kernel supporta molte tabelle di routing e si riferisce a queste con numeri interi univoci numerati da 0 a 255. Per la tabella viene definito anche un nome, mgmt.
Di seguito, uno sguardo a un /etc/iproute2/rt_tables
predefinito segue, mostrando che alcuni numeri sono riservati. La scelta in questa risposta di 200 è arbitraria; si potrebbe utilizzare qualsiasi numero che non sia già in uso, 1-252.
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
Di seguito, un file di interfacce Debian 7/8 definisce eth0
e eth1
. eth1
è la rete 172. eth0
potrebbe usare anche DHCP. 172.16.100.10
è l'indirizzo IP da assegnare a eth1
. 172.16.100.1
è l'indirizzo IP del router.
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
Riavvia o riavvia la rete.
Aggiornamento:in corso su EL
Ho notato in un commento che ti stavi "chiedendo anche RHEL".
In Enterprise Linux ("EL" – RHEL/CentOS/et al), crea una tabella di routing denominata come menzionato sopra.
L'EL /etc/sysconfig/network
file:
NETWORKING=yes
HOSTNAME=host.sld.tld
GATEWAY=10.10.10.1
EL /etc/sysconfig/network-scripts/ifcfg-eth0
file, utilizzando una configurazione statica (senza NetworkManager e senza specificare "HWADDR" e "UUID" per l'esempio di seguito).
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
THE EL /etc/sysconfig/network-scripts/ifcfg-eth1
(senza NetworkManager e senza specificare "HWADDR" e "UUID" per l'esempio riportato di seguito).
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
file:
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
file:
from 172.16.100.0/24 lookup mgmt
Aggiornamento per RHEL8
Questo metodo sopra descritto funziona con RHEL 6 e RHEL 7 così come i derivati, ma per RHEL 8 e derivati, è necessario prima installare network-scripts
per utilizzare il metodo sopra descritto.
dnf install network-scripts
L'installazione produce un avviso che network-scripts
verrà rimosso in una delle prossime versioni principali di RHEL e NetworkManager fornisce ifup
/ifdown
anche gli script.