Linux Network Testing



Похожие документы
Sicurezza nelle reti

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Introduzione allo sniffing

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Reti di Telecomunicazione Lezione 8

Laboratorio di Networking Operating Systems. Lezione 2 Principali strumenti di diagnostica

Informazioni Generali (1/2)

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Packet Filter in LINUX (iptables)

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

Firewall e Abilitazioni porte (Port Forwarding)

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Introduzione a Wireshark Andrea Atzeni < shocked@polito.it > Marco Vallini < marco.vallini@polito.it >

Reti di Calcolatori

Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing. Chiara Braghin chiara.braghin@unimi.it

Lezione n.9 LPR- Informatica Applicata

WAN / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Tesi di Laurea Specialistica EMULAZIONE DI EFFETTI WAN NELLA VALUTAZIONE DELLE PRESTAZIONI DI SERVER WEB. Candidato Emiliano Zeppa.

Introduzione alle applicazioni di rete

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

ARP e instradamento IP

QoS e Traffic Shaping. QoS e Traffic Shaping

Instradamento IP A.A. 2005/2006. Walter Cerroni. IP: instradamento dei datagrammi. Routing : scelta del percorso su cui inviare i dati

Inizializzazione degli Host. BOOTP e DHCP

Reti di Telecomunicazione Lezione 6

Configurazione Rete in LINUX

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

SWITCH. 100 Mb/s (UTP cat. 5E) Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

Internetworking TCP/IP: esercizi

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Dal protocollo IP ai livelli superiori

Studi di Settore. Nota Operativa 22/4/2013

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

University of Modena and Reggio Emilia. Laboratorio di Comunicazioni Multimediali WIRESHARK. Daniela Saladino

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Setup dell ambiente virtuale

Transmission Control Protocol

Indirizzamento privato e NAT

Socket API per il Multicast

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Sicurezza applicata in rete

La sicurezza delle reti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Esercitazione 5 Firewall

Mida Directory. Introduzione. Mida Directory

Registratori di Cassa

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Livello di Rete. Gaia Maselli

Corso di recupero di sistemi Lezione 8

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Martedì 22 Febbraio 2005, ore 15.00

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

9 Febbraio 2015 Modulo 2

Riccardo Paterna

ARP (Address Resolution Protocol)

Internet Control Message Protocol ICMP. Struttura di un Messaggio ICMP. Segnalazione degli Errori

Syllabus C310 - Insegnamenti disciplinari

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Firewall applicativo per la protezione di portali intranet/extranet

Cenni di programmazione distribuita in C++ Mauro Piccolo

DA SA Type Data (IP, ARP, etc.) Padding FCS

Dal menù Network/Interface/Ethernet configurare le interfacce WAN e LAN con gli opportuni ip:

INFOCOM Dept. Software Router

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

Antonio Cianfrani. Extended Access Control List (ACL)

Il modello TCP/IP. Sommario

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Elementi sull uso dei firewall

Dispense corso Laboratorio di Internet

inserire la SD CARD che si trova dentro alla scatola

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Programmazione modulare

Bilanciamento di traffico VoIP su reti wireless

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Access Control List (I parte)

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Router(config)# access-list access-list number {permit deny} {test-conditions}

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

L Inoltro e l Instradamento

Corso avanzato di Reti e sicurezza informatica

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Dipartimento di Ingegneria dell Informazione e Metodi Matematici Laboratorio di Reti Prof. Fabio Martignon

Транскрипт:

Introduzione agli strumenti per il testing di rete su Linux 6, 13 Novembre 2007

Sommario 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Panoramica sugli strumenti di misura Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Panoramica sugli strumenti di misura Testing di applicazioni di rete Serve a: Validare un protocollo/algoritmo direttamente sul campo Scoprire problemi legati all implementazione Ambienti simulati vs ambienti emulati simulare significa riprodurre le prestazioni di un sistema reale (ritardo, banda, perdita di pacchetti, ecc.) usando funzionalità limitate e valide solo all interno di quell ambiente (es. NS-2). emulare significa riprodurre le funzionalità di un sistema reale (configurazioni, architetture, protocolli, ecc.) e limitarne le prestazioni usando strumenti per il controllo della QoS (Quality of Service).

Configurare le interfacce di rete Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Configurare le interfacce di rete ifconfig ifconfig permette di apportare modifiche a livello Data link (2) e IP (3) alcuni esempi: Attivare una interfaccia di rete: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up Cambiare il valore di MTU: # ifconfig lo mtu 1500 Mostrare la configurazione corrente: # ifconfig -a

Configurare le interfacce di rete route route opera a livello IP e permette di impostare le regole di routing per i pacchetti alcuni esempi: Impostare la route di default: # route add default gw 192.168.0.1 Impostare la route per il IP specifico: # route add -host 192.168.0.2 dev eth0 Mostrare la tabella di routing corrente: # route -n

Configurare le interfacce di rete Altri comandi utili arp: operazioni sulla tabella ARP (livello 2 e 3) iwconfig: interfacce wireless (livello 2) ping: invio messaggi ICMP/ping (livello 3) tracepath e mtr: invio messaggi ICMP/traceroute (livello 3)

Generatori di traffico Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Generatori di traffico iperf Serve a generare flussi TCP e UDP Funzionamento come receiver (server): $ iperf -s -p 1234 Funzionamento come sender (client): $ iperf -c 192.168.0.1 -p 1234 -t 600 Aggiungendo il parametro -u si ottengono flussi UDP

Monitor del traffico di rete Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Monitor del traffico di rete tcpdump Serve a catturare i pacchetti che passano attraverso una interfaccia di rete Necessita di una interfaccia di rete che supporti il promiscuous mode Alcuni esempi: # tcpdump -n -i eth0 # tcpdump -n -i eth0 tcp and dst 192.168.0.1 # tcpdump -n -i eth0 -X udp and dst port 1234 and src port 4321 # tcpdump -n -i any -w outfile.cap

Monitor del traffico di rete getsockopt() Chiamata di sistema UNIX Serve a catturare le informazioni esportate del kernel per ogni socket aperto Esempio: #include <netinet/tcp.h>... struct tcp_info info = {0}; int info_len = sizeof(struct tcp_info); getsockopt(send_sock, SOL_TCP, TCP_INFO, (void*)&info, &info_len); printf("%u %u %u\n", info.tcpi snd ssthresh, info.tcpi snd cwnd, info.tcpi rtt);

Monitor del traffico di rete Web100 Serve a monitorare le variabili interne per ogni socket aperto (RTT, CWND, ecc..) Composto da: una patch per il kernel Linux che abilita il monitor delle variabili interne interfacce e librerie a livello applicativo che utilizzano le API L interfaccia gutil

Monitor del traffico di rete Altri monitor di rete iptraf netstat es: # netstat -ntpae wireshark (ex ethereal) e tshark etherape

Introduzione Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Introduzione Cosa è possibile fare limitare il rate con cui vengono spediti i pacchetti emulare i ritardi presenti in reti di grandi dimensioni (WAN) emulare la perdita di pacchetti secondo una percentuale desiderata emulare pacchetti duplicati emulare l arrivo di pacchetti fuori ordine

Outline 1 Introduzione Panoramica sugli strumenti di misura 2 I tool di base per l amministrazione di rete Configurare le interfacce di rete Generatori di traffico Monitor del traffico di rete 3 Controllo del traffico di rete Introduzione

Il pacchetto iproute2 Composto da una serie di programmi userspace che permettono di gestire i parametri di QoS esportati dal Kernel Necessita dei moduli del kernel attivabili dal menu: Networking ---> Networking options ---> QoS and/or fair queueing ---> Permette di: impostare delle policy di routing avanzate, con possibilità di gestire reti multiple e load balancing del traffico configurare tunnel IP e GRE configurare il protocollo IPSEC impostare delle discipline di queueing e gestire la banda disponibile classificare in maniera avanzata i pacchetti in base al contenuto o all instradamento

Controllo del traffico Schema di elaborazione dei pacchetti in Linux (iptables): Livelli superiori (tcp, udp,...) Disciplina di queueing Interfaccia di input Policy di ingresso Demultiplexing Forwarding Policy di uscita Interfaccia di output Controllo del traffico

Discipline di queueing: il comando tc La caratteristica più importante utilizzata è quella che permette di limitare la banda in uscita e/o applicare ritardi La modalità con cui devono essere spediti i pacchetti che attraversano una interfaccia di rete si indica tramite il parametro qdisc (queueing discipline) Tra le possibili qdisc ci sono: pfifo fast: semplice coda FIFO, dispone di tre bande, ciascuna con priorità diversa. I pacchetti inseriti nella banda 0 hanno priorità di invio maggiore su quelli inseriti nella banda 1 e così via per le bande 1 e 2. tbf: è un meccanismo di controllo che utilizza l algoritmo Token Bucket Filter per schedulare l invio dei dati

tbf: parametri di configurazione (1/2) limit: il massimo numero di bytes che possono essere lasciati in coda in attesa latency: indica il limite di tempo che un pacchetto può attendere in coda prima che venga scartato (alternativo a limit) burst o buffer o maxburst: dimensione in byte del bucket, è il numero massimo di byte che possono essere inviati allo stesso istante rate: il rate desiderato a cui deve essere limitato il traffico in uscita

tbf: parametri di configurazione (2/2) Nota sul parametro burst o buffer Un istante in kernel mode equivale a 1 jiffies (1 jiffies = 1 HZ, dove HZ dipende dalla configurazione del Kernel e può valere 10, 100 oppure 1000). Quindi, se HZ = 100, per ottenere un flusso di 1 Mbyte/s è necessario impostare: burst = 1 Mbyte/s = 10Kbyte 100 s 1 Tale valore deve essere superiore alla minima dimensione dei pacchetti (MTU) che è pari di solito a 1500 byte.

Classi e filtri (1/2) le classi servono per differenziare il traffico e applicare una diversa disciplina a seconda del tipo di dati gli elementi filter permettono di specificare delle condizioni secondo cui viene effettuato il routing root qdisc: 1: pfifo_fast 0 1 2 M:m qdisc tipo M:m class classi: 1:1 1:2 1:3 qdisc: 10:0 tbf 20:0 tbf 30:0 tbf traffico: real-time telnet, DNS query non-interattivo FTP, SMTP data

Classi e filtri (2/2) Sia le qdisc che le classi possiedono un identificativo formato da due numeri major:minor L identificativo viene passato come argomento del parametro handle L handle permette di identificare l elemento stesso e il suo genitore I qdisc hanno sempre minor number 0 Ogni interfaccia di rete possiede di default almeno un qdisc con handle pari a 1: (root qdisc) di tipo pfifo fast Per le classi il major number di un elemento deve essere lo stesso dell elemento genitore, Il minor number deve essere unico per le classi che si trovano sotto lo stesso qdisc

Un esempio Impostare un limite di 20 Kbyte/s (160 Kbit/s) al traffico che passa attraverso l interfaccia lo (loopback) # tc qdisc add dev lo root tbf rate 160kbit buffer 1600 limit 3000 # tc -s qdisc # tc qdisc del dev lo root

Il modulo netem Aggiunge un nuovo qdisc a quelli visti prima Serve a generare ritardi, loss, packet re-ordering Destinato soprattutto al testing di reti e di protocolli Aggiungere semplice ritardo sull interfaccia di rete lo # tc qdisc add dev lo root netem delay 100ms Il ritardo applicabile è limitato come risoluzione dalla frequenza del timer delle interruzioni (dato dalla variabile HZ definita nel file include/asm/param.h del sorgente del kernel Linux). Su architetture Intel (indicate come i386 nel kernel) tale risoluzione è pari a 10 ms (oppure 1 ms se si utilizza HZ = 1000).

Esempio: ritardo e limitazione di banda # tc qdisc add dev lo root handle 1:0 netem delay 100ms # tc qdisc add dev lo parent 1:1 handle 10: tbf rate 160kbit buffer 1600 limit 3000 root qdisc: 1: netem tc qdisc add dev eth0 root handle 1:0 netem delay 100ms leaf qdisc: 10:0 tbf tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 160kbit buffer 1600 limit 3000

Riferimenti Riferimenti [c3lab] http://c3lab.poliba.it/index.php/metodidicontrollo [web100] http://www.web100.org/ [tc] http://lartc.org [netem] http://linux-net.osdl.org/index.php/netem