• Non ci sono risultati.

3.4 Collegamento con il layer IPv6 di FreeBSD 4.x

4.0.4 TEST per DUMMYNET

Il test effettuato a DUMMYNET prevede la verifica fondamentale di due grandi tipologie di regole

• Regole relative alle pipe • Regole relative alle queue

Capitolo 4. Conclusioni 91

Test DUMMYNET - regole sulle pipe

Questa tipologia di regole è stata testata creando delle pipe con dei ritardi o delle limitazioni di banda, in ingresso ed in uscita, e verificando tramite lo ”show” delle pipe il relativo filtraggio. Per esempio con il comando:

ipfw add pipe 1 ipv6 from me to any ipfw pipe 1 config bw 30Kbit/s

Crea una pipe dall’host locale (IPv6) verso tutti gli altri limitando la velocità del canale a 30Kbit/s Se per esempio ora proviamo ad effettuare un ping6 in localhost e successivamente scriviamo il comando ipfw pipe show visualizzerò:

Figura 4.1: Visualizzazione dello stato delle pipe

In pratica questa visualizzazione dimostra il successo del test in quanto la pipe ha filtrato i pacchetti provenienti dal localhost limitando la banda. Per testare in maniera più precisa la limitazione di banda abbiamo effettuato un ping6 e dal valore di de- lay delle risposte del ping abbiamo verificato il ritardo impostato. I test hanno avuto successo.

Capitolo 4. Conclusioni 92

Test DUMMYNET - regole sulle queue

Le regole sulle queue sono state verificate creando delle pipe/queue in questo modo:

ipfw add pipe 1 ipv6 from me to any

ipfw pipe 1 config bw 64Kbit/s queue 10Kbytes

Questo comando crea una pipe con limitazione di velocità di 64Kbit/s e di banda bari a 10Kbytes. Effettuiamo ora un ping6 sull’host locale e successivamente lanciamo il comando di visualizzazione della pipe:

Figura 4.2: Visualizzazione dello stato delle pipe queue

Osserviamo che il traffic shaper ha effettuato egregiamente il suo lavoro, lo si nota sia dalla visualizzazione grafica, sia dal tempo di risposta del ping.

Bibliografia

[1] Paolo Valente - Sviluppo di un sistema di Fair Queuing in ambiente Unix, Tesi di laurea, Ottobre 2000

[2] Manuale di sistema su ipfw2: visualizzabile digitando il comando man ipfw oppure su internet alla pagina http://www.FreeBSD.org/cgi/man.cgi?query=ipfw [3] Manuale di sistema su dummynet: visualizzabile digitando il comando man

dummynet oppure su internet alla pagina

http://www.FreeBSD.org/cgi/man.cgi?query=dummynet.

[4] C. Patridge. Request for Comment 1809: Using the flow label field in IPv6, Giugno 1995.

[5] IAB, IESG. Request for Comment 1881: IPv6 Address Allocation Management, Dicembre 1995.

[6] Y. Rekhter, T. Li. Request for Comment 1887: An Architecture for IPv6 Unicast

Address Allocation, Dicembre 1995.

[7] R. Elz. Request for Comment 1887: A Compact Representation of IPv6

Addresses, Aprile 1996.

[8] R. Callon, D. Haskin. Request for Comment 2185: Routing Aspects Of IPv6

Transition, Settembre 1997.

[9] S. Deering, R. Hinden. Request for Comment 2460: Internet Protocol, Version 6

(IPv6) Specification, Dicembre 1998.

[10] A. Conta, S. Deering. Request for Comment 2463: Internet Control Message

Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification,

Dicembre 1998.

[11] M. Crawford. Request for Comment 2464: Transmission of IPv6 Packets over

Ethernet Networks, Dicembre 1998.

[12] D. Haskin, S. Onishi. Request for Comment 2465: Management Information

Base for IP Version 6: Textual Conventions and General Group, Dicembre 1998.

[13] D. Haskin, S. Onishi. Request for Comment 2466: Management Information

Base for IP Version 6: ICMPv6 Group, Dicembre 1998.

BIBLIOGRAFIA 94

[14] D. Johnson, S. Deering. Request for Comment 2526: Reserved IPv6 Subnet

Anycast Addresses, Marzo 1999.

[15] D. Borman, S. Deering, R. Hinden. Request for Comment 2675: IPv6

Jumbograms, Agosto 1999.

[16] R. Hinden, B. Carpenter, L. Masinter. Request for Comment 2732: Format for

Literal IPv6 Addresses in URL’s, Dicembre 1999.

[17] R. Gilligan, E. Nordmark. Request for Comment 2893: Transition Mechanisms

for IPv6 Hosts and Routers, Agosto 2000.

[18] B. Haberman, D. Thaler. Request for Comment 3306: Unicast-Prefix-based

IPv6 Multicast Addresses, Agosto 2002.

[19] R. Draves. Request for Comment 3484: Default Address Selection for Internet

Protocol version 6 (IPv6), Febbraio 2003.

[20] R. Gilligan, S. Thomson, J. Bound, J. McCann, W. Stevens. Request for

Comment 3493: Basic Socket Interface Extensions for IPv6, Febbraio 2003.

[21] R. Hinden, S. Deering. Request for Comment 3513: IPv6 Addressing

Architecture, Aprile 2003.

[22] W. Stevens, M. Thomas, E. Nordmark, T. Jinmei. Request for Comment 3542:

Advanced Sockets Application Program Interface (API) for IPv6, Maggio 2003.

[23] R. Hinden, S. Deering, E. Nordmark. Request for Comment 3587: IPv6 Global

Unicast Address Format, Agosto 2003.

[24] B. Wijnen. Request for Comment 3595: Textual Conventions for IPv6 Flow

Label, Settembre 2003.

[25] J. Rajahalme, A. Conta, B. Carpenter, S. Deering. Request for Comment 3697:

IPv6 Flow Label Specification, Marzo 2004.

[26] Larry L. Peterson & Bruce S. Davie. Computer Networks - A System Approach Second Edition. Morgan Kaufmann Publishers (S. Francisco, California). [27] The Kame Project - http://www.kame.org

[28] Note implementative del progetto Kame visualizzabili presenti nel file

/usr/src/share/doc/IPv6/IMPLEMENTATION disponibile all’interno della

Elenco delle figure

1 Gestione del pacchetto in presenza dei moduli Dummynet e Ipfw2 . . 5

1.1 Schema di funzionamento di ipfw2 . . . 8

1.2 Schema di chiamata del firewall ipfw2 per lo stack IPv4 . . . 10

1.3 Funzionamento generale di Dummynet . . . 16

1.4 Gestione del pacchetto in presenza dei moduli Dummynet e Ipfw2 . . 17

1.5 Esempio di traduzione di una regola IPv4 . . . 21

2.1 Formato header IPv4 . . . 27

2.2 Formato header IPv6 . . . 28

2.3 Schema extension header . . . 29

4.1 Visualizzazione dello stato delle pipe . . . 91

4.2 Visualizzazione dello stato delle pipe queue . . . 92

Lista figure 94

Indice

1 IPFW2 e Dummynet 7

1.1 Il firewall IPFW2 . . . 7

1.1.1 Cos’è il firewall IPFW2 . . . 7

1.1.2 Funzionamento del firewall . . . 9

1.1.3 Struttura delle regole . . . 11

1.1.4 Regole statiche e regole dinamiche . . . 12

1.1.5 Come è implementato . . . 12

La parte controllo . . . 13

La parte operativa . . . 13

1.2 Dummynet: il traffic shaper . . . 15

1.2.1 Descrizione generale . . . 15

1.2.2 Implementazione . . . 16

La parte controllo di dummynet . . . 16

Interfacciamento con i layer di gestione del pacchetto . . . 18

La parte operativa di dummynet . . . 19

1.3 Interfaccia con l’utente . . . 20

1.3.1 Descrizione generale . . . 20

1.3.2 Dettagli implementativi . . . 23

2 Internet Protocol Versione 6 26 2.1 Differenze con IPv4 . . . 26

2.1.1 Header . . . 26

2.2 Lo stack protocollare IPv6 in FreeBSD . . . 30

3 Realizzazione 31 3.1 Modifiche ad IPFW2 . . . 32

3.1.1 Modifiche per il supporto delle regole statiche . . . 32

3.1.2 Modifiche per il supporto delle regole dinamiche . . . 39

3.1.3 Altre modifiche . . . 42

3.1.4 Modifiche all’header di IPFW2 . . . 43

3.2 Modifiche a Dummynet . . . 46

3.2.1 Modifica al meccanismo di I/O di Dummynet . . . 46

3.2.2 Altre Modifiche . . . 52

3.2.3 Modifiche all’header di Dummynet . . . 53

3.3 Modifiche all’interfaccia utente . . . 55

3.3.1 Estensione delle funzionalitá presenti . . . 55 96

INDICE 97

Estensione delle strutture dati . . . 55

Modifiche alle funzioni operative presenti . . . 56

Aggiunta di funzionalitá . . . 67

3.4 Collegamento con il layer IPv6 di FreeBSD 4.x . . . 79

3.4.1 Inserimento delle chiamate ad IPFW2 e DUMMYNET . . . . 79

Modifiche ad ip6_input . . . 79

Modifiche ad ip6_output . . . 81

4 Conclusioni 86 4.0.2 Fase di verifica e test . . . 86

4.0.3 Test per IPFW2 . . . 86

Test IPFW2 - regole statiche . . . 86

Test sulla regole relativa al filtraggio per indirizzo singolo . . 87

Test sulle regole relative al filtraggio per indirizzi multipli . . 87

Test sulle regole relative al filtraggio per subnet-mask . . . 88

Test per il filtraggio da/verso l’interfaccia corrente . . . 88

Test per il filtraggio dei protocolli TCP/UDP/ICMPv6 . . . . 88

Test IPFW2 - regole dinamiche . . . 90

4.0.4 TEST per DUMMYNET . . . 90

Test DUMMYNET - regole sulle pipe . . . 91

Test DUMMYNET - regole sulle queue . . . 92

Documenti correlati