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.
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:
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 |
Se tutto è andato a buon fine ci verra restituito l’OK
Per vedere la configurazione diamo il comando:
1 | $ ip addr show |
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 |
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 |
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:
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 |
1 | $ nano /etc/hosts |
Per rendere effettive le modifiche riavviamo il sistema con il comando:
1 | $ reboot |
Dopo il riavvio verifichiamo tramite il seguente comando:
1 | $ hostname |
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 |
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.
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:
Il file resolv.conf rimarrà invariato:
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 |
==> 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.
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:
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 |
Se tutto è andato a buon fine ci verra restituito l’OK
Per vedere la configurazione diamo il comando:
1 | $ ip addr show |
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 |
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 |
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:
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 |
1 | $ nano /etc/hosts |
Per rendere effettive le modifiche riavviamo il sistema con il comando:
1 | $ reboot |
Dopo il riavvio verifichiamo tramite il seguente comando:
1 | $ hostname |
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 |
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.
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:
Il file resolv.conf rimarrà invariato:
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 |
Per approfondire il protocollo TCP/IP leggi l’interessantissimo articolo Network Primer sul nostro blog.