Come impostare indirizzi IP fissi su Debian

Questo piccolo howto ha lo scopo di indicare come modificare il comportamento di default di Debian per quanto riguarda la connettività e le schede di rete.
Debian infatti imposta come attiva la scheda di rete che viene selezionata in fase di installazione, e la imposta in modo che richieda IP, subnetmask, gateway e DNS da un server DHCP sulla LAN. Ma che cosa dobbiamo modificare per attivare le altre schede di rete eventualmente presenti sul nostro PC o per impostare degli indirizzi IP statici.
Il file che in Debian gestisce la configurazione delle schede di rete è /etc/network/interfaces, che dopo un'installazione si presenta così:

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

# The first network card - this entry was created during the
# Debian installation automatically added when upgrading
auto eth0
iface eth0 inet dhcp

Nel file sono presenti solo l'interfaccia di loopback e la prima scheda di rete, configurata in DHCP. E' possibile aggiungere una seconda scheda di rete o modificare la configurazione della prima semplicemente agendo sul file in questione. Ad esempio:

# The loopback interface
auto lo
iface lo inet loopback

# The first network card 
auto eth0
iface eth0 inet dhcp

# Una seconda interfaccia di rete, configurata in modo statico
auto eth1
iface eth1 inet static
             address 192.168.0.111
             netmask 255.255.255.0
             gateway 192.168.0.1
             dns-search somedomain.org
             dns-nameservers 195.238.2.21 195.238.2.22
             broadcast 192.168.0.0

Il parametro auto specifica che la scheda di rete in questione deve essere attivata all'avvio del PC.
Nella configurazione static è possibile specificare alcuni parametri, come l'indirizzo IP da assegnare alla scheda, la subnet mask della rete, il gateway di default, l'indirizzo per i messaggi broadcast e le impostazioni sui server DNS che, se indicate, andranno ad aggiungersi a quelle presenti nel file /etc/resolv.conf.
Per rendere attive le modifiche, basta riavviare la scheda di rete modificata o aggiunta:

# ifdown eth1
# ifup eth1

E' possibile aggiungere altri parametri all'interfaccia, oppure far eseguire alcuni comandi dopo l'attivazione della scheda stessa. Ad esempio i parametri seguenti (dopo il commento # Parametri aggiuntivi indicano a Debian di attivare una route aggiuntiva ogni qualvolta la scheda eth1 viene attivata (e di eliminare la route aggiuntiva quando la scheda viene disattivata attraverso ifdown):

# The loopback interface
auto lo
iface lo inet loopback

# The first network card 
auto eth0
iface eth0 inet dhcp

# Una seconda interfaccia di rete, configurata in modo statico
auto eth1
iface eth1 inet static
             address 192.168.0.111
             netmask 255.255.255.0
             gateway 192.168.0.1
             dns-search somedomain.org
             dns-nameservers 195.238.2.21 195.238.2.22
             broadcast 192.168.0.0
             # Parametri aggiuntivi
             up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 dev $IFACE
             down route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 dev $IFACE
             up echo Interface $IFACE going up | /usr/bin/logger -t ifup
             down echo Interface $IFACE Going down | /usr/bin/logger -t ifdown