Configurazione delle interfacce di rete - DEISNet Reti di...

23
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

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)