Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Marionnet
Su Marionnet quando si collegano due macchine bisogna fare attenzione alla tipologia dei cavi
utilizzati, esistono due tipologie di cavi:
§ Crossover
I "cavi incrociati" (crossover) sono utilizzati per le connessioni fra dispositivi di rete dello stesso
livello dello stack.
Ad es: Switch↔Switch, Host↔Host
§ Straight
I "cavi dritti" (straight) sono utilizzati per le connessioni fra dispositivi di livello differente.
Ad es: Switch↔Host
1
Configurazione di una Rete
Configurazione Permanente
Per configurare permanentemente le Interfacce di Rete bisogna memorizzare la configurazione
delle interfacce in /etc/network/interfaces.
Nel caso il servizio NetworkManager sia in esecuzione si utilizza il tool nmcli, questo
sovrascrive le regole presenti in /etc/network/interfaces. È possibile controllare se il
servizio NetworkManager tramite l'utilizzo del seguente comando:
$ pgrep -l network
È anche possibile utilizzare file di configurazione indipendenti in /etc/network/interfaces.d
(includendoli successivamente all'interno del file interfaces tramite la direttiva source).
$ nano /etc/network/interfaces
source-directory /etc/network/interfaces.d
…
Si descrivono di seguito gli elementi di configurazione della direttiva iface all'interno del file
/etc/network/interfaces per la configurazione di un Interfaccia di Rete:
Modalità
dhcp Inizializzazione dell'Interfaccia in modo automatico col protocollo DHCP
loopback Interfaccia locale (127.0.0.1)
static Seguono parametri per configurare l'interfaccia
Esempio:
Dato il seguente schema di rete, composto da due Host h1 e h2 collegati tramite uno Switch S1.
2
Configurazione di una Rete
Applicazione delle Modifiche
All'avvio del sistema, se la direttiva auto non è presente nei file di configurazione opportuni,
l'interfaccia di rete risulterà spenta. Per attivare l'interfaccia, utilizzando le configurazioni dei file di
configurazione, si utilizzano i comandi ifup e ifdown:
$ ifdown <iface> ← Disattiva l'interfaccia
$ ifup <iface> ← Attiva l'interfaccia
Si tenga in considerazione che:
§ L'opzione -a permette di agire su tutte le interfacce configurate.
§ In caso di errori nei file di configurazione, il comando ifup fallirà.
Esempio:
Disattiva l'interfaccia eth0
$ ifdown eth0
Attiva l'interfaccia eth0
$ ifup eth0
Disattiva e Riattiva l'interfaccia eth0
$ ifdown eth0 && ifup eth0
NOTA:
Quando si controlla la configurazione di un'interfaccia (così come di qualsiasi altra configurazione),
vanno utilizzati prima tutti i comandi e mezzi necessari tramite CLI e solo alla fine si controlla
direttamente il file di configurazione.
3
Configurazione di una Rete
Test Connessione
Per verificare la connettività fra due Host esistono diverse possibilità che sfruttano diversi
protocolli ai vari livelli dello stack TCP/IP.
Ping
Il metodo più diffuso e conosciuto è quello dell'utilizzo del comando ping, che utilizza il
protocollo di supporto ICMP, quindi, di default si basa sul Livello-3.
Il comando ping, di defualt, invia una successione di pacchetti ICMP ECHO_REQUEST e
attende la relativa risposta ECHO_REPLY, misurando il tempo che intercorre tra l’invio e la
ricezione di ogni pacchetto per poi riporta semplici statistiche. L’indirizzo localhost viene
risolto in un indirizzo IP normale che dall’output è 127.0.0.1
$ ping <ip-addr>
Esempio:
Testare la connessione tra H1 e H2 (192.168.1.2) tramite ping
H1$ ping 192.168.1.2
Arping
Un altro tool disponibile su Linux è arping, che verifica la presenza di un indirizzo IP a Livello-2
(H2N) per mezzo di richieste ARP. Il protocollo ARP agisce a Livello-2, quindi il comando arping
permette di raggiungere solo gli Host che fanno parte dello stesso dominio di broadcast.
$ arping [-0] [-i <iface>] {-B,<ip-addr>}
Il comando arping, di default, invia una successione di richieste ARP (in broadcast) per un
determinato indirizzo IP. Funziona anche senza avere configurato l'indirizzo IP dell'interfaccia, ma
l'interfaccia deve comunque essere attiva (in questo caso utilizzare il parametro opzionale -0).
Alcune Opzioni
-0 Specifica di inviare un pacchetto ARP di tipo "who-has" (richiesta di indirizzo MAC)
-B Esegue ARP cercando di risolvere l'indirizzo IP 255.255.255.255
Forza l'utilizzo di un'interfaccia di rete specificata, senza questa opzione, arping cerca
-i
di "indovinare" la configurazione delle interfacce
Esempio:
Testare la connessione tra H1 e H2 (192.168.1.2) tramite arping
H1$ ping -i eth0 192.168.1.2
4
Configurazione di una Rete
Se qualcosa non funziona non controllare subito il file di configurazione delle interfacce, ma
utilizzare i comandi opportuni per verificare lo stato attuale del sistema e dopo aver verificato qual
è lo stato attuale del sistema si va a cercare cosa è stato a causare l'errore.
5
Configurazione di una Rete
Configurazione Temporanea
I comandi ifconfig e ip possono essere utilizzati per configurare le interfacce di rete senza
utilizzare alcun file. In questo caso, la configurazione sarà temporanea e sarà persa al riavvio della
macchina. La sintassi per la configurazione di un indirizzo IP (Sintassi Semplificata) è la seguente:
$ ifconfig <iface> <ip-address> [up]
Oppure:
$ ip addr {add,change,replace} dev <iface> <ip-address>
Il comando ip è stato pensato per gestire facilmente diversi indirizzi IP associati alla stessa
interfaccia di rete. Per questo motivo è necessario scegliere sempre l'azione opportuna (add,
change, replace). Il comando ip non configura automaticamente la subnet in base alla classe
dell'indirizzo configurato.
Deconfigurare un'Interfaccia
Per rimuovere l'assegnazione di un indirizzo utilizzare:
$ ifconfig <iface> 0
Oppure:
$ ip addr del <ip-address> dev <iface>
NOTA:
Anche in questo caso, ip è pensato per gestire molteplici indirizzi assegnati alla stessa Interfaccia
di Rete, motivo per cui è necessario specificare l'indirizzo che si vuole rimuovere.
6
Configurazione di una Rete
Configurazione di Rete (2 Interfacce)
Collegare in rete due nodi tramite uno switch.
Far comunicare i due nodi utilizzando gli indirizzi IP e gli Hostname mostrati in figura.
Soluzione:
Marionnet
1. Machine: h1, h2
2. Switch: S1
3. Straight cable: d1 [h1 to S1], d2 [S1 to h2]
§ Then press the [Start all] button.
H1 Terminal
$ nano /etc/network/interfaces ← Configurazione dell'interfaccia eth0 tramite file
auto eth0
iface eth0 inet static
address 192.168.1.1
$ ifup eth0 ← Attivazione dell'interfaccia eth0
$ ifconfig eth0 ← Stampa la configurazione attuale dell'interfaccia eth0, se attiva
Oppure:
$ ip addr show eth0
H2 Terminal
$ nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.2
$ ifup eth0
$ ifconfig eth0
$ ping 192.168.1.1
Test Connessione su H1
$ ping 192.168.1.2 ← Verifica della connessione con l'Host h2
Oppure:
$ arping -i eth0 192.168.1.2
7
Configurazione di una Rete
Configurazione di Rete (3 Interfacce)
Provare ad aggiungere un'interfaccia di rete ad h1:
- Lasciare scollegata l'interfaccia
- Configurare un indirizzo IP (192.168.2.1)
- Cercare di risolvere il nuovo indirizzo assegnato tramite arping da h2
Soluzione:
Marionnet
§ Press the [Shutdown all] button.
1. Machine > Modify > h1 > Ethernet cards = 2
§ Then press the [Start all] button.
H1 Terminal
$ ifdown eth0 ← Disattivazione dell'interfaccia eth0
$ nano /etc/network/interfaces ← Configurazione dell'interfaccia eth1 tramite file
auto eth0
iface eth0 inet static
address 192.168.1.1
auto eth1
iface eth1 inet static
address 192.168.2.1
$ ifup eth0 eth1 ← Attivazione delle interfaccie eth0 e eth1
Test Connessione su H2
$ arping -i eth0 192.168.2.1 ← Verifica della connessione con l'Host h1 (eth1)
NOTA:
Ethernet card 1: eth0
Ethernet card 2: eth1
8
Configurazione di una Rete
Configurazione di Rete (3 Interfacce + 2 Switch)
Provare ora collegando la nuova interfaccia allo stesso switch (o a un secondo switch collegato al
primo, per ottenere uno schema migliore in Marionnet):
- Cercare di risolvere il nuovo indirizzo assegnato tramite arping da h2
Soluzione:
Marionnet
§ Press the [Shutdown all] button.
1. Switch: S2
2. Straight cable: d3 [h1 to S2], d4 [S2 to S1]
§ Then press the [Start all] button.
Test Connessione su H2
$ arping -i eth0 192.168.2.1