Static Route Ubuntu in if-up.d e Ottetti IP

Mi gasava molto l’idea che andando su Google e cercando “static route ubuntu” il primo risultato era un post che avevo scritto un mese fa.

Ho deciso quindi di raffinare la cosa “grezza” fatta un mese fa e con un po’ di tempo a disposizione ho scritto uno script in bash da inserire in /etc/network/if-up.d/ .

In questa particolare cartella ci son tutti gli script che partono quando un interfaccia è “salita”.

La particolarità di questo script è che parte solamente in presenza di una particolare rete, altrimenti evita di inserire la static route, questo perchè come nel caso del mio portatile ho bisogno di static diverse per reti diverse :

1. Create un file staticroute in /etc/network/if-up.d ( sudo touch etc/network/if-up.d/staticroute )
2. Dategli i permessi giusti : ( sudo chmod 777 staticroute )
3. Inserite lo script qui sotto tenendo customizzandovi i parametri che sono IPTOMATCH e OTTETTI ed ovvimante i gateway…

#!/bin/sh

#Luigi Molinaro 
#Setto l ottetto da matchare ed il numero di ottetti
#ESEMPI :
#10.0.0.0
#IPTOMATCH=’10′
#OTTETTI=’1′
#
#192.168.1.0
#IPTOMATCH=’192.168.1′
#OTTETTI=’3′

IPTOMATCH=’10′
OTTETTI=’1′

#Prendo dal stdOut di ifconfig solo il primo ottetto dell IP da ogni interfaccia

IPOWL=$(/sbin/ifconfig eth0 | grep “inet addr:” | sed “s/^.*inet addr:\([0-9.]*\).*$/\1/” | cut -d . -f $OTTETTI)
IPOWL2=$(/sbin/ifconfig eth1 | grep “inet addr:” | sed “s/^.*inet addr:\([0-9.]*\).*$/\1/” | cut -d . -f $OTTETTI)

if [ "$IPOWL" = "$IPTOMATCH" ] || [ "$IPOWL2" = "$IPTOMATCH" ]; then
echo Adding Route 10.10.0.0 …
/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50
echo Adding Route 10.11.0.0 …
/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50
else
echo No Static Route to insert
fi

se volete invece inserire una route statica non in base alla rete basta semplicemente inserire in staticroute :

/sbin/route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.1.1.50