Premier Training & Business Partner Red Hat

Configurazione della rete su RHEL / CentOS 6

Michele Milaneschi
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

Una delle prime cose da fare dopo aver installato una macchina Linux, è la configurazione della rete. Ciò consiste nel far comunicare la macchina con altri host della rete interna piuttosto che con il mondo esterno.

network

Dovremo quindi assegnare un indirizzo IP locale, una netmask, un gateway (se vogliamo che comunichi con l’esterno) ed infine i DNS per la risoluzione dei nomi host.

L’assegnazione dei parametri di rete potrà essere fatta in automatico tramite l’uso di un server DHCP presente sulla LAN, o manualmente assegneremo noi i parametri.

Nel nostro caso andremo ad inserire manualmente le informazioni per la configurazione della rete:

La nostra macchina avrà la seguente configurazione:

Indirizzo IP: 192.168.0.35
Subnet: 255.255.255.0
Gateway: 192.168.0.1

DNS: 8.8.8.8
DNS: 8.8.4.4

Vediamo come procedere:

Il file di configurazione della scheda di rete si trova in /etc/sysconfig/network-scripts con il nome di ifcfg-eth0 dove l’ultimo numero può variare nel caso avessimo più schede di rete installate.

Noi abbiamo una sola scheda di rete quindi il file che andremo a configurare è ifcfg-eth0, e lo facciamo tramite editor di testo (nano):

1
$ nano /etc/sysconfig/network-scripts/ifcfg-eth0

Troveremo già questo file in parte precompilato, vediamo cosa significa ogni voce:

DEVICE=”eth0” Indica il nome del dispositivo
HWADDR=”00:40:F4:E9:29:A6” Indica l'indirizzo fisico della scheda di rete
NM_CONTROLLED=”no” Indica se la nuova configurazione deve essere presa “al volo” o dopo un riavvio del servizio. E' preferibile lasciarlo a “no”
ONBOOT=yes Indica se la scheda di rete si deve attivare al Boot
BOOTPROTO=static Indica se l'assegnazione dell'IP locale viene fatta in maniera statica o dinamica ( BOOTPROTO=dhcp )

Andiamo quindi ad inserire la nostra configurazione cambiamo alcuni parametri:

lan

In questo caso l’inserimento della subnet potrebbe essere fatto anche tramite la seguente voce:

PREFIX=24

Fatto ciò riavviamo il servizio:

1
$ service network restart

lan1

Se tutto è andato a buon fine ci verra restituito l’OK
Per vedere la configurazione diamo il comando:

1
$ ip addr show

lan2

Nel caso in cui avessimo configurato più interfacce di rete e ci interessasse vedere a video solamente una e non tutte quante digitiamo lo stesso comando seguito dall’interfaccia:

1
$ ip addr show eth0

lann2

Detto ciò andiamo a configurare i DNS per la risoluzione dei nomi host:

Andiamo ad inserirli nel file /etc/resolv.conf tramite editor di testo:

1
$ nano /etc/resolv.conf

lan3

Come si può notare è stata inserita la stringa “search localhost”, questo perché viene utilizzata prima la mappatura dei nomi nel file hosts e successivamente i server DNS esterni.

Per testare basta fare un ping verso un IP esterno, se risponde correttamente al ping avremo appurato che la nostra macchina ha accesso anche alla rete esterna:

lan4

Fatto ciò l’host in questione potrebbe far parte di un dominio specifico e potremmo avere la necessità di inserire l’hostname della macchina.

Inseriremo come hostname pc1 e come dominio talla.it

Questo lo facciamo se in fase di installazione all’inserimento di questi parametri abbiamo lasciato quelli di default ossia “localhost.localdomain”

Per fare questo andiamo a modificare il file relativo all’hostname e al dominio ( /etc/sysconfig/network) e inseriremo la mappatura dell’host nel file hosts (/etc/hosts) per una maggior comodità.

1
$ nano /etc/sysconfig/network

lan5

1
$ nano /etc/hosts

lan6

Per rendere effettive le modifiche riavviamo il sistema con il comando:

1
$ reboot

Dopo il riavvio verifichiamo tramite il seguente comando:

1
$ hostname

lan7

Infine da una macchina che si trova sulla stessa rete proviamo a pingare l’host tramite il suo nome completo (hostname.dominio ) che prende il nome di FQDN (Fully Qualified Domain Name):

Questo previa configurazione del file host dalla macchina cui pinghiamo.

1
ping pc1.talla.it

lan8

DETTAGLI DI CONFIGURAZIONE DI RETE:

Ci potremmo trovare nel caso in cui lasciamo al DHCP la configurazione degli indirizzi ma NON vogliamo che modifichi i DNS nel file /etc/resolv.conf.

Per fare ciò nel file di configurazione della scheda di rete cancelliamo la configurazione che abbiamo fatto precedentemente e alla voce BOOTPROTO inseriamo dhcp.

lan9

Non dimentichiamo di riavviare il servizio:

1
service network restart

Se facciamo un ping verso google tutto sembra funzionare correttamente ma se andaimo a vedere il file resolv.conf i DNS che abbiamo precedentemente impostato non ci sono più ma sono stati sovrascritti.

Li reinseriamo e per far si che non vengano sovrascritti aggiungiamo alla configurazione della scheda di rete: PEERDNS=no

1
$ echo PEERDNS=”no” >> /etc/sysconfig/network-scripts/ifcfg-eth0

Riavviamo il servizio di rete e vedremo che i DNS non saranno più sorascritti.

Il file ifcfg-eth0 avrà la seguente struttura:

lan10

Il file resolv.conf rimarrà invariato:

lan11

Un Altra condizione potrebbe essere che un utente NON root debba poter abilitare o disabilitare l’intefaccia di rete.

Abbiamo creato un utente di nome “michele” e vogliamo che possa poter attivare disattivare l’intefaccia di rete.

Per fare questo basterà inserire nel file ifcfg-eth0 la seguente riga: USERCTL=”yes”

1
echo USERCTL=”yes>> /etc/sysconfig/network-scripts/ifcfg-eth0

Riavviamo il servizio:

1
$ service network restart

Adesso l’utente michele potrà disattivare/attivare l’interfaccia eth0 tramite i seguenti comandi:

1
2
$ ifdown eth0
$ ifup eth0

lan12

 

==> Per approfondire il protocollo TCP/IP leggi l’interessantissimo articolo Network Primer sul nostro blog.[:en]

Una delle prime cose da fare dopo aver installato una macchina Linux, è la configurazione della rete. Ciò consiste nel far comunicare la macchina con altri host della rete interna piuttosto che con il mondo esterno.

network

Dovremo quindi assegnare un indirizzo IP locale, una netmask, un gateway (se vogliamo che comunichi con l’esterno) ed infine i DNS per la risoluzione dei nomi host.

L’assegnazione dei parametri di rete potrà essere fatta in automatico tramite l’uso di un server DHCP presente sulla LAN, o manualmente assegneremo noi i parametri.

Nel nostro caso andremo ad inserire manualmente le informazioni per la configurazione della rete:

La nostra macchina avrà la seguente configurazione:

Indirizzo IP: 192.168.0.35
Subnet: 255.255.255.0
Gateway: 192.168.0.1

DNS: 8.8.8.8
DNS: 8.8.4.4

Vediamo come procedere:

Il file di configurazione della scheda di rete si trova in /etc/sysconfig/network-scripts con il nome di ifcfg-eth0 dove l’ultimo numero può variare nel caso avessimo più schede di rete installate.

Noi abbiamo una sola scheda di rete quindi il file che andremo a configurare è ifcfg-eth0, e lo facciamo tramite editor di testo (nano):

1
$ nano /etc/sysconfig/network-scripts/ifcfg-eth0

Troveremo già questo file in parte precompilato, vediamo cosa significa ogni voce:

DEVICE=”eth0” Indica il nome del dispositivo
HWADDR=”00:40:F4:E9:29:A6” Indica l'indirizzo fisico della scheda di rete
NM_CONTROLLED=”no” Indica se la nuova configurazione deve essere presa “al volo” o dopo un riavvio del servizio. E' preferibile lasciarlo a “no”
ONBOOT=yes Indica se la scheda di rete si deve attivare al Boot
BOOTPROTO=static Indica se l'assegnazione dell'IP locale viene fatta in maniera statica o dinamica ( BOOTPROTO=dhcp )

Andiamo quindi ad inserire la nostra configurazione cambiamo alcuni parametri:

lan

In questo caso l’inserimento della subnet potrebbe essere fatto anche tramite la seguente voce:

PREFIX=24

Fatto ciò riavviamo il servizio:

1
$ service network restart

lan1

Se tutto è andato a buon fine ci verra restituito l’OK
Per vedere la configurazione diamo il comando:

1
$ ip addr show

lan2

Nel caso in cui avessimo configurato più interfacce di rete e ci interessasse vedere a video solamente una e non tutte quante digitiamo lo stesso comando seguito dall’interfaccia:

1
$ ip addr show eth0

lann2

Detto ciò andiamo a configurare i DNS per la risoluzione dei nomi host:

Andiamo ad inserirli nel file /etc/resolv.conf tramite editor di testo:

1
$ nano /etc/resolv.conf

lan3

Come si può notare è stata inserita la stringa “search localhost”, questo perché viene utilizzata prima la mappatura dei nomi nel file hosts e successivamente i server DNS esterni.

Per testare basta fare un ping verso un IP esterno, se risponde correttamente al ping avremo appurato che la nostra macchina ha accesso anche alla rete esterna:

lan4

Fatto ciò l’host in questione potrebbe far parte di un dominio specifico e potremmo avere la necessità di inserire l’hostname della macchina.

Inseriremo come hostname pc1 e come dominio talla.it

Questo lo facciamo se in fase di installazione all’inserimento di questi parametri abbiamo lasciato quelli di default ossia “localhost.localdomain”

Per fare questo andiamo a modificare il file relativo all’hostname e al dominio ( /etc/sysconfig/network) e inseriremo la mappatura dell’host nel file hosts (/etc/hosts) per una maggior comodità.

1
$ nano /etc/sysconfig/network

lan5

1
$ nano /etc/hosts

lan6

Per rendere effettive le modifiche riavviamo il sistema con il comando:

1
$ reboot

Dopo il riavvio verifichiamo tramite il seguente comando:

1
$ hostname

lan7

Infine da una macchina che si trova sulla stessa rete proviamo a pingare l’host tramite il suo nome completo (hostname.dominio ) che prende il nome di FQDN (Fully Qualified Domain Name):

Questo previa configurazione del file host dalla macchina cui pinghiamo.

1
ping pc1.talla.it

lan8

DETTAGLI DI CONFIGURAZIONE DI RETE:

Ci potremmo trovare nel caso in cui lasciamo al DHCP la configurazione degli indirizzi ma NON vogliamo che modifichi i DNS nel file /etc/resolv.conf.

Per fare ciò nel file di configurazione della scheda di rete cancelliamo la configurazione che abbiamo fatto precedentemente e alla voce BOOTPROTO inseriamo dhcp.

lan9

Non dimentichiamo di riavviare il servizio:

1
service network restart

Se facciamo un ping verso google tutto sembra funzionare correttamente ma se andaimo a vedere il file resolv.conf i DNS che abbiamo precedentemente impostato non ci sono più ma sono stati sovrascritti.

Li reinseriamo e per far si che non vengano sovrascritti aggiungiamo alla configurazione della scheda di rete: PEERDNS=no

1
$ echo PEERDNS=”no” >> /etc/sysconfig/network-scripts/ifcfg-eth0

Riavviamo il servizio di rete e vedremo che i DNS non saranno più sorascritti.

Il file ifcfg-eth0 avrà la seguente struttura:

lan10

Il file resolv.conf rimarrà invariato:

lan11

Un Altra condizione potrebbe essere che un utente NON root debba poter abilitare o disabilitare l’intefaccia di rete.

Abbiamo creato un utente di nome “michele” e vogliamo che possa poter attivare disattivare l’intefaccia di rete.

Per fare questo basterà inserire nel file ifcfg-eth0 la seguente riga: USERCTL=”yes”

1
echo USERCTL=”yes>> /etc/sysconfig/network-scripts/ifcfg-eth0

Riavviamo il servizio:

1
$ service network restart

Adesso l’utente michele potrà disattivare/attivare l’interfaccia eth0 tramite i seguenti comandi:

1
2
$ ifdown eth0
$ ifup eth0

lan12

 

Per approfondire il protocollo TCP/IP leggi l’interessantissimo articolo Network Primer sul nostro blog.

Info about author

Michele Milaneschi

RHCE Consultant