Configurazione delle interfacce di rete - DEISNet Reti di...
Transcript of Configurazione delle interfacce di rete - DEISNet Reti di...
1
Configurazione delle
interfacce di rete
A.A. 2005/2006
Walter Cerroni
2
Instradamento dei datagrammi IP
• Routing : scelta del percorso su cui inviare i dati
– i router formano struttura interconnessa e cooperante:
i datagrammi passano dall’uno all’altro finché
raggiungono quello che può consegnarli direttamente al destinatario
• Direct delivery : il destinatario del datagramma è sulla stessa rete fisica di chi trasmette, quindi si spedisce il datagramma direttamente al destinatario
• Indirect delivery : il destinatario non è sulla stessa rete di chi trasmette, quindi il datagramma è inviato ad un router intermedio
2
3
Direct delivery: da Host 1 a Host 3
HOST3
HOST2HOST1ROUTER1
MAN – WAN
ETHERNET
ROUTER2
HOST4
ARP request HOST1 chiede l’indirizzo MAC di HOST3
ARP reply HOST3 risponde direttamente a HOST1
MAC ADDRESS: HOST3 IP ADDRESS: HOST3 DATI
4
HOST4
Indirect delivery: da Host 1 a Host 4
HOST3
HOST2HOST1ROUTER1
MAN – WAN
ETHERNET
ROUTER2
ARP request HOST1 chiede l’indirizzo MAC di ROUTER1
ARP reply ROUTER1 risponde a HOST1
MAC ADDRESS: ROUTER1 IP ADDRESS: HOST4 DATI
3
5
Address Resolution Protocol – ARP (RFC 826)
• Il nodo sorgente invia una trama broadcast (ARP request) contenente l’indirizzo IP del nodo destinazione
• Tutte le stazioni della rete locale leggono la trama broadcast
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP ARP requestrequest per IP = 137.204.57.10per IP = 137.204.57.10
6
Address Resolution Protocol – ARP
• Il destinatario risponde al mittente, inviando un messaggio
(ARP reply) che contiene il proprio indirizzo fisico
• Con questo messaggio l’host sorgente è in grado di
associare l’appropriato indirizzo fisico all’IP destinazione
• Ogni host mantiene una tabella (cache ARP) con le
corrispondenze fra indirizzi logici e fisici
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP ARP replyreply contenente indirizzo fisicocontenente indirizzo fisico
4
7
Proxy-ARP
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP ARP requestrequest per IP = 137.204.57.250per IP = 137.204.57.250
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
8
Proxy-ARP (2)
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP replayARP replay con indirizzo MAC di 137.204.57.34con indirizzo MAC di 137.204.57.34
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
5
9
Proxy-ARP (3)
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
Pacchetto IP perPacchetto IP per 137.204.57.250 con indirizzo MAC di 137.204.57.34137.204.57.250 con indirizzo MAC di 137.204.57.34
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
10
Uso della netmask
• Un indirizzo IP è diviso in due parti
– Network-ID che identifica la rete
– Host-ID che identifica l’host all’interno della rete
• La suddivisione è indicata dalla netmask, una sequenza
di 4 byte associata all’indirizzo, in cui
– i bit a 1 corrispondono ai bit dedicati al Network-ID
– i bit a 0 corrispondono ai bit dedicati all’Host-ID
• Notazioni:
– dotted decimal: 255.248.0.0
– CIDR: /13 (è il numero di bit = 1)
Host-IDNetwork-IDindirizzo IP
000.00000000.0000000011111111.11111netmask
13 bit 19 bit
6
11
Altri esempi
Host-IDNetwork-IDindirizzo IP
0000000011111111.11111111.11111111netmask
24 bit 8 bit
Es.: 192.168.8.10/24 (255.255.255.0)
192.168.4.201/24 (255.255.255.0)
HNetwork-IDindirizzo IP
0011111111.11111111.11111111.111111netmask
30 bit 2 bit
Es.: 10.0.0.1/30 (255.255.255.252)
10.0.0.6/30 (255.255.255.252)
12
Reti IP
• Una rete IP è individuata dall’indirizzo di rete, che è quello con i bit
dell’Host-ID tutti a zero:
– 192.168.8.0/24
– 10.0.0.4/30
• Tutti gli indirizzi che hanno lo stesso Network-ID appartengono alla
stessa rete IP
– comunicano tra loro tramite direct delivery
– comunicano con gli altri tramite indirect delivery attraverso un gateway
• L’indirizzo di broadcast, che serve per raggiungere tutti gli host di
una rete IP, è quello con i bit dell’Host-ID tutti a uno:
– 192.168.8.255/24
– 10.0.0.7/30
• In genere l’indirizzo immediatamente prima del broadcast è
assegnato al gateway di default usato per le indirect delivery
– 192.168.8.254/24
– 10.0.0.6/30 (anche se in un collegamento punto-punto ha meno senso)
7
13
Configurazione interfacce di rete (Windows)
è l’indirizzo assegnato
all’interfaccia
serve per conoscere la rete
IP di appartenenza
indica il gateway di default
da utilizzare per la
consegna indiretta
sono gli indirizzi dei server
DNS per la traduzione da
nomi ad indirizzi IP
14
Configurazione interfacce di rete (Linux)
ifconfig elenca e descrive le interfacce di rete
[root@deis73 root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:08:74:1A:3B:D0
inet addr:192.168.10.73 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5455169 errors:0 dropped:0 overruns:0 frame:0
TX packets:692862 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:491958448 (469.1 Mb) TX bytes:808647510 (771.1 Mb)
Interrupt:10 Base address:0xecc0 Memory:ff8e0000-0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:39305 errors:0 dropped:0 overruns:0 frame:0
TX packets:39305 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18026986 (17.1 Mb) TX bytes:18026986 (17.1 Mb)
8
15
Multi-homed host
[root@netlab-gw root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:02:36:3B:F9
inet addr:192.168.8.254 Bcast:192.168.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:40727 errors:0 dropped:0 overruns:1570 frame:0
TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4332152 (4.1 Mb) TX bytes:3302 (3.2 Kb)
Interrupt:11 Base address:0xe800
eth1 Link encap:Ethernet HWaddr 52:54:05:F4:B5:45
inet addr:137.204.107.62 Bcast:137.204.107.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:55079 errors:0 dropped:0 overruns:0 frame:0
TX packets:428 errors:0 dropped:0 overruns:0 carrier:0
collisions:6 txqueuelen:1000
RX bytes:5074939 (4.8 Mb) TX bytes:58749 (57.3 Kb)
Interrupt:9 Base address:0xec00
lo Link encap:Local Loopback...
16
Altri parametri
Il comando route –n mostra la tabella di routing
[root@deis76 root]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
137.204.57.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 137.204.57.254 0.0.0.0 UG 0 0 0 eth0
Il file /etc/resolv.conf contiene gli indirizzi dei server DNS
[root@deis76 etc]# cat resolv.conf
nameserver 192.168.10.1
nameserver 192.168.10.4
9
17
Comando IFCONFIG
ifconfig <interface> <address> netmask <mask>
broadcast <broadcast-address>
assegna un indirizzo ad una interfaccia specificando la netmask e
l’indirizzo di broadcast
<interface> è l’interfaccia da configurare (es. eth0, eth1, …)
<address> è l’indirizzo IP da assegnare (es. 192.168.8.27)
<mask> è la netmask da associare all’IP (es. 255.255.255.0)
<broadcast-address> è l’indirizzo IP broadcast della rete a cui
appartiene l’interfaccia (es. 192.168.8.255)
ifconfig <interface> up
attiva l’interfaccia specificata
ifconfig <interface> down
disattiva l’interfaccia specificata
18
IP aliasing
La stessa interfaccia di rete può avere più di un indirizzo IP
• si impostano gli alias come se fossero interfacce fittizie
• eth0 può avere gli alias eth0:0, eth0:1, eth0:2, …
192.168.11.0/24
192.168.10.0/24
host3host2host1
[root@host3 root]# ifconfig eth0 192.168.10.3 netmask 255.255.255.0
broadcast 192.168.10.255
[root@host3 root]# ifconfig eth0:0 192.168.11.3 netmask 255.255.255.0
broadcast 192.168.11.255
10
19
Interfacce di rete dell’host con IP aliasing
[root@host3 etc]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:08:74:3A:2C:D0
inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
Interrupt:10 Base address:0xecc0 Memory:ff8e0000-0
eth0:0 Link encap:Ethernet HWaddr 00:08:74:3A:2C:D0
inet addr:192.168.11.3 Bcast:192.168.11.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0xecc0 Memory:ff8e0000-0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
...
20
File di configurazione di rete
• Per specificare i parametri di rete da attivare all’avvio, si
usano specifici script di inizializzazione/configurazione
• Per distribuzioni RedHat/Fedora (e simili):
– inizializzazione /etc/init.d/network
– configurazione /etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
– lo script /etc/init.d/network invoca gli altri file di configurazione
– la configurazione da interfaccia grafica agisce su questi script
– è possibile attivare/disattivare/reimpostare/verificare le interfacce
di rete secondo i parametri specificati negli script con il comando
/etc/init.d/network [ start | stop | restart | status ]
11
21
Il comando ARP (1)
Il comando arp –n visualizza il contenuto della cache ARP
con le corrispondenze tra indirizzi IP e MAC conosciuti e
l’interfaccia su cui tale corrispondenza ha validità
[root@deis76 root]# arp -n
Address HWtype HWaddress Flags Mask Iface
137.204.57.88 ether 00:60:B0:78:E8:FD C eth0
192.168.10.75 (incomplete) eth2
137.204.57.26 ether 00:00:74:73:E2:CC C eth0
192.168.10.179 ether 00:08:74:1A:3B:F7 C eth2
137.204.57.108 ether 00:04:76:98:A9:D1 C eth0
192.168.10.175 ether 00:08:74:1A:3B:9F C eth2
137.204.57.254 ether 00:E0:63:C2:6E:5A C eth0
192.168.10.174 ether 00:0D:56:0A:A0:CB C eth2
137.204.57.181 ether 00:30:C1:D5:EE:9B C eth0
137.204.57.2 ether 08:00:20:FB:13:71 C eth0
192.168.10.85 ether 00:A0:C9:AC:FF:A6 C eth2
22
Il comando ARP (2)
• Per eliminare una voce dalla cache ARP:
arp –i <interface> –d <IP_addr>
• Per aggiungere manualmente una voce alla cache ARP:
arp –i <interface> –s <IP_addr> <HW_addr> [ temp ]
(temporanea se si specifica il flag temp)
• Per aggiungere una voce di proxy-ARP:
arp –i <interface> –s <IP_addr> –D <interface> pub
<interface> indica l’interfaccia su cui rispondere alle richieste
• Per generare delle ARP request:arping –I <interface> <IP_addr>
12
23
DHCP – RFC 2131
Dynamic Host Configuration Protocol
Configurazione automatica e dinamica di
• Indirizzo IP
• Netmask
• Broadcast
• Host name
• Default gateway
• Server DNS
Server su porta 67 UDP
24
DHCP – 1
DHCPDISCOVER
• Quando un host attiva l’interfaccia di rete, invia in
modalità broadcast un messaggio DHCPDISCOVER in
cerca di un server DHCP
13
25
DHCP – 2
DHCPOFFER
• Ciascun server DHCP presente risponde all’host con un
messaggio DHCPOFFER con cui propone un indirizzo
IP
DHCPOFFER
26
DHCP – 3
DHCPREQUEST
• L’host accetta una delle offerte proposte dai server e
manda un messaggio DHCPREQUEST in cui richiede la
configurazione, specificando il server
14
27
DHCP – 4
DHCPACK
• Il server DHCP risponde all’host con un messaggio
DHCPACK specificando i parametri di configurazione
28
DHCP leasing
• DHCP permette l’allocazione dinamica degli indirizzi IP
• Host diversi possono utilizzare lo stesso indirizzo in tempi diversi
• L’allocazione deve essere limitata ad un intervallo
temporale stabilito dal server, eventualmente rinnovabile
• Quando un host viene spento o disconnesso deve
rilasciare l’indirizzo e renderlo disponibile per una nuova allocazione
• Il rilascio può essere esplicito (DHCPRELEASE) o
avvenire allo scadere del periodo di lease
• Il tempo di lease è uno dei parametri forniti dal server nel DHCPOFFER
15
29
Linux come server DHCP
• Il demone utilizzato è /usr/sbin/dhcpd
• Da avviare con lo script /etc/init.d/dhcpd/etc/init.d/dhcpd [ start | stop | restart | status ]
• Configurazione in /etc/dhcpd.conf
maggiori dettagli con man dhcpd.conf
• Registro degli assegnamenti in/var/lib/dhcp/dhcpd.leases
30
dhcpd.conf – gruppi di host
# Esempio di file di configurazione per dhcpd
ddns-update-style none;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.110 192.168.10.115;
range 192.168.10.200 192.168.10.210;
default-lease-time 3600;
max-lease-time 10800;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.255;
option routers 192.168.10.254;
option domain-name-servers 137.204.191.1;
}
almeno una delle interfacce del sistema deve appartenere alla
subnet specificata
parametri comuni a tutta la subnet
è necessario specificare se aggiornare o meno il DNS dinamico
insieme di indirizzi
usati in DHCP
16
31
dhcpd.conf – host specifici
# Esempio di file di configurazione per dhcpd
ddns-update-style none;
subnet 192.168.10.0 netmask 255.255.255.0 {
...
host deis73 {
hardware ethernet 00:08:83:2f:65:c0;
fixed-address 192.168.10.221;
}
host deis76 {
hardware ethernet 00:02:3f:7e:0f:45;
fixed-address 192.168.10.222;
}
}
è possibile assegnare un IP fisso sulla base
dell’indirizzo MAC
32
dhcpd.conf – subnet multiple
# Esempio di file di configurazione per dhcpd
ddns-update-style none;
shared-network my_network {
subnet 192.168.10.0 netmask 255.255.255.0 {
...
}
subnet 192.168.11.0 netmask 255.255.255.0 {
...
}
}
necessario se si
vogliono definire subnet diverse sulla stessa rete fisica
(il nome my_network èsimbolico)
17
33
Linux come client DHCP – Avvio
[root@deis77 root]# dhclient eth1
Internet Software Consortium DHCP Client V3.0pl1
...
Listening on LPF/eth1/00:a0:c9:ac:ff:a6
Sending on LPF/eth1/00:a0:c9:ac:ff:a6
Sending on Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.10.73
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPACK from 192.168.10.73
bound to 192.168.10.112 -- renewal in 15 seconds.
dhclient <interface>
34
Linux come client DHCP – Chiusura
[root@deis77 root]# dhclient -r eth1
Internet Software Consortium DHCP Client V3.0pl1
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Listening on LPF/eth1/00:a0:c9:ac:ff:a6
Sending on LPF/eth1/00:a0:c9:ac:ff:a6
Sending on Socket/fallback
DHCPRELEASE on eth1 to 192.168.10.73 port 67
dhclient -r <interface>
Registro degli assegnamenti in
/var/lib/dhcp/dhclient.leases
18
35
Windows come client DHCP
36
Esercitazione in laboratorio (1)
• Osservare la topologia, il cablaggio e la configurazione dell’armadio
di rete
• Visualizzare la configurazione di rete attuale degli host
• Visualizzare gli script di configurazione della rete
• Utilizzare i comandi ping e traceroute
• Visualizzare la cache ARP del sistema
192.168.8.0/24
10.0.0.y/30 10.0.0.z/3010.0.0.x/30
19
37
Esercitazione in laboratorio (2)
• Modificare la configurazione delle interfacce di rete (*)
• Impostare il proxy ARP per un IP non utilizzato (*)
• Creare degli alias IP (*)
• Configurare ed attivare un server DHCP (*)
• Attivare un client DHCP (*)
• Utilizzare l’analizzatore di protocollo (*)
• (*) ricordarsi di usare il comando sudo per l’invocazione dei comandi che richiedono i
diritti di root
192.168.8.0/24192.168.8.x/30
eth1eth0
I comandi ping e traceroute
A.A. 2005/2006
Walter Cerroni
20
39
Internet Control Message Protocol (ICMP)
• Type definisce il tipo di messaggio ICMP
– messaggi di errore
– messaggi di richiesta di informazioni
• Code descrive il tipo di errore e ulteriori dettagli
• Checksum controlla i bit errati nel messaggio ICMP
• Add. Fields dipendono dal tipo di messaggio ICMP
• Data intestazione e parte dei dati del datagramma che ha generato l’errore
IP header
Message Type
Message Code
Checksum
Additional Fields (optional)
Data
20 - 60 byte
1 byte
1 byte
2 byte
variabile
variabile
Protocollo che svolge funzioni di controllo per conto di IP
40
Messaggi di errore (1)
• Destination Unreachable (Type = 3)generato da un gateway quando la sottorete o l’host non sono raggiungibili, oppure da un host quando si presenta un errore sull’indirizzo dell’entità di livello superiore a cui trasferire il datagramma
• Codici errore di Destination Unreachable0 = sottorete non raggiungibile
1 = host non raggiungibile
2 = protocollo non disponibile
3 = porta non disponibile
4 = frammentazione necessaria ma bit don’t fragmentsettato
21
41
Messaggi di errore (2)
• Time Exceeded (Type = 11)
– generato da un router quando il Time-to-Live di un
datagramma si azzera ed il datagramma viene
distrutto (Code = 0)
– generato da un host quando un timer si azzera in
attesa dei frammenti per riassemblare un datagramma
ricevuto in parte (Code = 1)
• Redirect (Type = 5)generato da un router per indicare all’host sorgente
un’altra strada più conveniente per raggiungere l’host
destinazione
42
Messaggi di richiesta di informazioni
• Echo (Type = 8)
• Echo Reply (Type = 0)
– l’host sorgente invia la richiesta ad un altro host o ad
un gateway
– la destinazione deve rispondere immediatamente
– metodo usato per determinare lo stato di una rete e
dei suoi host, la loro raggiungibilità e il tempo di
transito nella rete
– Additional Fields:
• Identifier: identifica l’insieme degli echo appartenenti allo
stesso test
• Sequence Number: identifica ciascun echo nell’insieme
• Optional Data: usato per inserire eventuali dati di verifica
22
43
Comando PING
ping DEST
Permette di controllare se l’host DEST è raggiungibile o meno da SORG
• SORG invia a DEST un pacchetto ICMP di tipo “echo”
• Se l'host DEST è raggiungibile da SORG, DESTrisponde inviando indietro un pacchetto ICMP di tipo
“echo reply”
SORG DEST
44
Comando PING – Output
L’output mostra
• la dimensione del pacchetto “echo reply”
• l’indirizzo IP di DEST
• il numero di sequenza della risposta
• il “time-to-live” (TTL)
• il “round-trip time” (RTT)
• alcuni risultati statistici: N°pacchetti persi, MIN, MAX e media del RTT
23
45
Comando TRACEROUTE
traceroute DESTPermette di conoscere il percorso seguito dai pacchetti inviati da
SORG e diretti verso DEST
SORG DEST
• SORG invia a DEST una serie di pacchetti UDP (oppure ICMP di tipo
“echo”) con un TIME-TO-LIVE (TTL) progressivo da 1 a 30 (per default)
• Ciascun nodo intermedio decrementa TTL
• Il nodo che rileva TTL = 0 invia a SORG un pacchetto ICMP di tipo
TIME EXCEEDED
• SORG costruisce una lista dei nodi attraversati fino a DEST
• L’output mostra il TTL, il nome DNS e l’indirizzo IP dei nodi intermedi ed il
ROUND-TRIP TIME (RTT)