Netkit: Easy Emulation of Complex Networks on Inexpensive ...

22
UNIVERSITÀ DEGLI STUDI ROMA TRE Dipartimento di Informatica e Automazione Netkit: Easy Emulation of Complex Networks on Inexpensive Hardware Maurizio Pizzonia Massimo Rimondini 4th International Conference on Testbeds and Research Infrastructures for the Development of Networks & Communities (TridentCom 2008)

Transcript of Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Page 1: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

UNIVERSITÀ DEGLI STUDI ROMA TREDipartimento di Informatica e Automazione

Netkit: Easy Emulation of Complex Networks on Inexpensive Hardware

Maurizio PizzoniaMassimo Rimondini

4th International Conference on Testbeds and Research Infrastructuresfor the Development of Networks & Communities (TridentCom 2008)

Mar 18th, 2008

Page 2: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

software integration

project

based on user mode

linux

tools to set up

virtual labs

ready to use labs & teaching material

Netkit in a Nutshell

software integration

project

based on user mode

linux

tools to set up

virtual labs

ready to use labs & teaching material

Page 3: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Overview

ArchitectureSupported technologiesVirtual network setupApplicationsRelated workScalability

Page 4: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

NIC

Architecture

Host kernel

Host OS

User-ModeLinux

User-ModeLinux

NIC

Virtual hub

NIC

Guest OSGuest OS

TAPforwarding

Page 5: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

NIC

NIC

Architecture

Host kernel

Host OS

User-ModeLinux

User-ModeLinux

NIC

Virtual hub

NIC

Guest OSGuest OS

TAP

User-ModeLinux

NIC

Guest OS

Virtual hub

Quagga

router vhost2vhost1

forwarding

foo@host$ ./uml-kernel modules=/home/foo/kernel/modules name=vhost1 title=vhost1 umid=vhost1 mem=260M ubd0=/home/foo/vhost1.disk,/home/foo/fs/fs.img root=98:1 uml_dir=/home/foo/uml/mconsole eth0=daemon,,,/home/foo/hubs/vhub_foo_A.cnct eth1=daemon,,,/home/foo/hubs/vhub_foo_tap.cnct quiet con0=xterm con1=null SELINUX_INIT=0 █

host machinehost machine

Page 6: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

NIC

Architecture

Host kernel

Host OS

TAPforwarding

NICUser-ModeLinux

User-ModeLinux

NIC

Virtual hub

NIC

Guest OSGuest OS

User-ModeLinux

NIC

Guest OS

Virtual hub

Quagga

Page 7: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Architecture

NICUser-ModeLinux

User-ModeLinux

NIC

Virtual hub

NIC

Guest OSGuest OS

User-ModeLinux

NIC

Guest OS

Virtual hub

Quagga

vtools

ltools

configure multiple virtual machinesset up a virtual labmanage a single user mode linux instance (virtual machine)customizable hardware & net configuration

Virtual labfoo@host$ lstart █

host machinehost machine

foo@host$ vstart vhost1 --eth0=Afoo@host$ vstart router --eth0=A --eth1=tap,10.0.0.1,10.0.0.2foo@host$ vstart vhost2 --eth0=tap,10.0.0.1,10.0.0.3█

host machinehost machine

Page 8: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

SupportedTechnologies

virtual machine

virtual hub software

virtual machine running appropriate software

Page 9: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

SupportedTechnologies

• Ethernet 802.3, 802.1d Bridging and Spanning Tree, 802.1Q VLAN tagging

• MPLS forwarding• IPv4, IPv6, IP filtering and mangling (NAT, etc.), IPsec

(transport and tunnel mode, ESP and AH), ARP, ICMP• UDP, TCP, GRE tunnels, Equal cost multipath load

balancing, PIM-SM• ...

• DHCP, PPP, DNS, HTTP(S), Web proxy, MTA• FTP, NFS, Samba• Telnet, SSH• RIP, OSPF, IS-IS, BGP, SNMP• RADIUS, PAM, IKE, Snort, Traffic capturing and

forging• Scripting languages• ...

Debian package manager

Compile time configurations provided More

can be added

More can be added

MPLS forwardingMPLS forwarding

RIP, OSPF, IS-IS, BGP, SNMPRIP, OSPF, IS-IS, BGP, SNMP

Page 10: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

router bgp 100network 100.1.0.0/16neighbor 11.0.0.2 remote-as 20neighbor 11.0.0.2 description Router as20r2 (primary)neighbor 11.0.0.2 prefix-list defaultIn inneighbor 11.0.0.2 prefix-list mineOutOnly out!ip prefix-list defaultIn seq 5 permit 0.0.0.0/0ip prefix-list mineOutOnly seq 5 permit 100.1.0.0/16

Setting up a Lab

1. Define nodesmkdir as20r1 as20r2 as200r1 as100r1

2. Define topology3. Populate configuration files using native

syntax4. Tell nodes to self configure

eth2 eth1

eth0

eth0eth1

eth1eth0

eth0

eth2eth1

E

C

F A

J B

as20r1[0]="A"as20r1[1]="F"as20r1[2]="C"

as20r2[0]="E"as20r2[1]="C"

as200r1[0]="A"as200r1[1]="B"

as100r1[0]="E"as100r1[1]="F"as100r1[2]="J"

as20r2[0]="E"

eth0

E

as100r1/etc/quagga/bgpd.conf

/sbin/ifconfig eth0 11.0.0.1 netmask 255.255.255.252 up/sbin/ifconfig eth1 11.0.0.5 netmask 255.255.255.252 up/sbin/ifconfig eth2 100.1.0.1 netmask 255.255.0.0 up/etc/init.d/quagga start

as100r1.startup

Page 11: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Setting up a Lab

Typical size: <200KBEmail/Web friendly

├── as100r1│ └── etc│ └── zebra│ ├── bgpd.conf│ └── daemons├── as100r1.startup├── as200r1│ └── etc│ └── zebra│ ├── bgpd.conf│ └── daemons├── as200r1.startup├── as20r1│ └── etc│ └── zebra│ ├── bgpd.conf│ └── daemons├── as20r1.startup├── as20r2│ └── etc│ └── zebra│ ├── bgpd.conf│ └── daemons├── as20r2.startup└── lab.conf

Page 12: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Ready to Use Labs

Basic topicsRouting with static routes and RIPARP

Application levelDNSEmail

AdvancedBridgingSTP

Interdomain RoutingPrefix filteringStub & Multihomed ASTransit AS

Page 13: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Applications

GARR emulation

Configuration testingTroubleshooting

Operation

IGP–BGP interactions

Routing instabilitiesProtocol development

Research

ActualProspective

Page 14: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Emulab

ModelNet

IMUNESEinar

UMLMON

PlanetLab/VINI

Other Network Emulators

VNUML

•User-Mode Linux•No kernel/filesystem image•System wide configuration•Targeted to sys admins

•User-Mode Linux•No kernel/filesystem image•System wide configuration•Targeted to sys admins

Inexpensive Hardwareon

Complex NetworksofEmulationEasy

•Live CD only•Xen based

•Live CD only•Xen based

•User-Mode Linux•XML•Conceived to run as root

•User-Mode Linux•XML•Conceived to run as root

•Live CD only•FreeBSD kernel

•Live CD only•FreeBSD kernel

•Large scale•Server clusters•Require affiliation & approval

•Large scale•Server clusters•Require affiliation & approval

University of Zagreb

•Marko Zec, M. Mikuc. Operating System Support for Integrated Network Emulation in IMUNES. Proc. ASPLOS-XI, Oct 2004.

•Marko Zec. Implementing a Clonable Network Stack in the FreeBSD Kernel. Proc. 2003 USENIX Annual Technical Conference, Jun 2003.

University of Zagreb

•Marko Zec, M. Mikuc. Operating System Support for Integrated Network Emulation in IMUNES. Proc. ASPLOS-XI, Oct 2004.

•Marko Zec. Implementing a Clonable Network Stack in the FreeBSD Kernel. Proc. 2003 USENIX Annual Technical Conference, Jun 2003.

Universidad Politécnica de Madrid•F. Galan, D. Fernández. Distributed Virtualization Scenarios

Using VNUML. Proc. System and Virtualization Management Workshop (SVM’07). Oct 2007

•D. Fernández, F. Galán, T. de Miguel. Study and Emulation of IPv6 Internet Exchange (IX) based Addressing Models. IEEE Communications Magazine, 42(1):105–112, Jan 2004

•F. Galán, D. Fernández, J. Ruiz, O. Walid, and T. de Miguel. Use of Virtualization Tools in Computer Network Laboratories. Proc. International Conference on Information Technology Based Higher Education and Training (ITHET 2004), Jun 2004.

Universidad Politécnica de Madrid•F. Galan, D. Fernández. Distributed Virtualization Scenarios

Using VNUML. Proc. System and Virtualization Management Workshop (SVM’07). Oct 2007

•D. Fernández, F. Galán, T. de Miguel. Study and Emulation of IPv6 Internet Exchange (IX) based Addressing Models. IEEE Communications Magazine, 42(1):105–112, Jan 2004

•F. Galán, D. Fernández, J. Ruiz, O. Walid, and T. de Miguel. Use of Virtualization Tools in Computer Network Laboratories. Proc. International Conference on Information Technology Based Higher Education and Training (ITHET 2004), Jun 2004.

Communities started around 2002• L. Peterson, A. Bavier, M. Fiuczynski, and S. Muir. Experiences Building

PlanetLab. Proc. OSDI 2006, Nov 2006.• L. Peterson and T. Roscoe. The Design Principles of PlanetLab. ACM

SIGOPS Operating Systems Review, 40(1):11–16, 2006.• A. Bavier, N. Feamster, M. Huang, L. Peterson, and J. Rexford. In VINI

Veritas: Realistic and Controlled Network Experimentation. Proc. SIGCOMM 2006, Sep 2006.

• P. Mahadevan, D. Krioukov, K. Fall, and A. Vahdat. A Basis for Systematic Analysis of Network Topologies. Proc. SIGCOMM 2006, Sep 2006.

• R. Ricci, J. Duerig, P. Sanaga, D. Gebhardt, M. Hibler, K. Atkinson, J. Zhang, S. Kasera, and J. Lepreau. The Flexlab Approach to Realistic Evaluation of Networked Systems. Proc. USENIX NSDI 2007, Apr 2007.

• E. Eide, L. Stoller, and J. Lepreau. An Experimentation Workbench for Replayable Networking Research. Proc. USENIX NSDI 2007, Apr 2007.

Communities started around 2002• L. Peterson, A. Bavier, M. Fiuczynski, and S. Muir. Experiences Building

PlanetLab. Proc. OSDI 2006, Nov 2006.• L. Peterson and T. Roscoe. The Design Principles of PlanetLab. ACM

SIGOPS Operating Systems Review, 40(1):11–16, 2006.• A. Bavier, N. Feamster, M. Huang, L. Peterson, and J. Rexford. In VINI

Veritas: Realistic and Controlled Network Experimentation. Proc. SIGCOMM 2006, Sep 2006.

• P. Mahadevan, D. Krioukov, K. Fall, and A. Vahdat. A Basis for Systematic Analysis of Network Topologies. Proc. SIGCOMM 2006, Sep 2006.

• R. Ricci, J. Duerig, P. Sanaga, D. Gebhardt, M. Hibler, K. Atkinson, J. Zhang, S. Kasera, and J. Lepreau. The Flexlab Approach to Realistic Evaluation of Networked Systems. Proc. USENIX NSDI 2007, Apr 2007.

• E. Eide, L. Stoller, and J. Lepreau. An Experimentation Workbench for Replayable Networking Research. Proc. USENIX NSDI 2007, Apr 2007.

Page 15: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

Startup timeCurrent

entry price: >400 €

Current entry price:

>400 €

VNUML

Netkit

0

100

200

300

400

500

600

700

800

1 11 21 31 41 51 61 71 81 91

Tim

e (

seco

nds)

# of vms

400400

100

100

Page 16: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

CPU load during 1GB HTTP transfer

1st setting2nd setting3rd setting

Page 17: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

CPU load during 1GB HTTP transfer

%C

PU

Time (s)

x1

0

10

20

30

40

50

60

70

80

90

100

0 20 40 60 80 100 120

VNUMLNetkitRemote

Page 18: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

CPU load during 1GB HTTP transfer

Load a

vera

ge (

1 m

in)

Time (s)0

1

2

3

4

5

6

0 20 40 60 80 100 120

VNUMLNetkitRemote

x1

Page 19: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

CPU load during 1GB HTTP transfer

%C

PU

Time (s)

x5

0

10

20

30

40

50

60

70

80

90

100

0 100 200 300 400 500 600 700 800

VNUMLNetkit

Page 20: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Pentium 4 3.2GHz, 2GB RAM (~350 €)

Scalability

CPU load during 1GB HTTP transfer

Load a

vera

ge (

1 m

in)

Time (s)

x5

0

1

2

3

4

5

6

7

8

9

0 100 200 300 400 500 600 700 800

VNUMLNetkit

Page 21: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

So What?

Take homeLightweightEasyTurn key (labs)

What next?UI improvements (e.g., test procedure)More labs (e.g., ISP topologies)Better scalability by distribution (VDE?)

ApplicationsGood scalability

Page 22: Netkit: Easy Emulation of Complex Networks on Inexpensive ...

Where to Go Next

Releases & DocumentationLive CD

Ready to use LabsMailing list (138 subscribers) & FAQPublications

http://www.netkit.org/

Thanks to: You, Giuseppe Di Battista, Maurizio Patrignani, Stefano Pettini, …