19
How to Build Complex, Large-Scale Emulated Networks TridentCom 2010 Hung Nguyen, Matthew Roughan, Simon Knight Nick Falkner, Olaf Maennel, Randy Bush [email protected]

How to Build Complex, Large-Scale Emulated Networks

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: How to Build Complex, Large-Scale Emulated Networks

How to Build Complex, Large-ScaleEmulated Networks

TridentCom 2010

Hung Nguyen, Matthew Roughan, Simon KnightNick Falkner, Olaf Maennel, Randy Bush

[email protected]

[email protected]

Page 2: How to Build Complex, Large-Scale Emulated Networks

Data Networks

• Routers, Links, Autonomous Systems

AutonomousSystem

Internetwork

AS2

AS3

AS1

Router A Router B

Router C

2 / 19

Page 3: How to Build Complex, Large-Scale Emulated Networks

Small Internet

• Real Internet: 1000s of ASes, 10-100 routers each

3 / 19

Page 4: How to Build Complex, Large-Scale Emulated Networks

Research Platforms

Simulation

Realism

Scale

Emulation

Hardware

4 / 19

Page 5: How to Build Complex, Large-Scale Emulated Networks

Emulation

• Virtual routers in software emulate hardware routers• Realism, but need configuration

Host Machine

Virtual Machine 1 Virtual Machine 2 Virtual Machine 3

RoutingProcess

RoutingProcess

RoutingProcess

Router 1 Router 2 Router 3

5 / 19

Page 6: How to Build Complex, Large-Scale Emulated Networks

Configuration Problem

• Need to configure large number of devices• Many lines of code• Low-level configuration language• and allocate resources (IPs, AS numbers)

• Repeated trials difficult• Limits results

• Time consuming, tedious, doesn’t scale to largenetworks

• Error-prone

6 / 19

Page 7: How to Build Complex, Large-Scale Emulated Networks

Configuration Errors

• Valid syntax, wrong semantics• E.g. link IP addresses

A B

D C

192.168.0.1 129.168.0.2

192.168.3.1

192.168.3.2

192.168.1.1

192.168.1.2

192.168.2.1 192.168.2.2

7 / 19

Page 8: How to Build Complex, Large-Scale Emulated Networks

Configuration Errors

• Link from A to B has address wrong• Link will not carry traffic

A B

D C

192.168.0.1 129.168.0.2

8 / 19

Page 9: How to Build Complex, Large-Scale Emulated Networks

Configuration Errors

• Network automatically routes around problem• User may not realise, but results impacted

A B

D C

9 / 19

Page 10: How to Build Complex, Large-Scale Emulated Networks

Netkit

• Quagga real software router• VM: Virtual machine• UML: User-mode Linux• Requires configurations

Linux Host Machine

UML VM1 UML VM2 UML VM3

Quagga Routing

Quagga Routing

Quagga Routing

10 / 19

Page 11: How to Build Complex, Large-Scale Emulated Networks

AutoNetkit

Generates Netkit configurations

CompilerNetwork Model

PolicyFragments

NetkitConfiguration

Files

Verification

Netkit Host

NetworkDescription

ResourceAllocation

Deployment

Plugins

Physical & LogicalTopologies

11 / 19

Page 12: How to Build Complex, Large-Scale Emulated Networks

AutoNetkit: Creating Networks

myInternet

myAS

myInternet = Internetwork() myAS = myInternet.addAS(1234)

12 / 19

Page 13: How to Build Complex, Large-Scale Emulated Networks

AutoNetkit: Adding Routers

myInternet

myAS

rA rB

rC

rA = myAS.addRouter("Router_A")rB = myAS.addRouter("Router_B") rC = myAS.addRouter("Router_C")

13 / 19

Page 14: How to Build Complex, Large-Scale Emulated Networks

AutoNetkit: Adding Links

myInternet

myAS

rA rB

rC

myAS.addLink(rA, rB)myAS.addLink(rA, rC) myAS.addLink(rB, rC)

14 / 19

Page 15: How to Build Complex, Large-Scale Emulated Networks

AutoNetkit: Configuring and Deploying

myInternet

myAS

rA rB

rC

myInternet.compile()myInternet.addRouting() myNk =Netkit("myHost", "sknight")myNk.deploy(myInternet)

Netkit HostmyHost

Configs

15 / 19

Page 16: How to Build Complex, Large-Scale Emulated Networks

Verification

• Measurement: automated traceroute tests• Tests both paths and end-to-end connectivity

• Topology plots

Plot of AS 1234

Router_B

Router_C

1.0.0.8/30

.10eth0

.9eth1

Router_A

1.0.0.12/30

.13eth0

.14eth0

1.0.0.4 /30

.5eth1

.6eth1

16 / 19

Page 17: How to Build Complex, Large-Scale Emulated Networks

Performance

• Comparison: Created a 200 node test network• Using BGP, OSPF, DNS

• Manual Configuration• 2 days to write configurations• thousands of lines of low-level router configuration

code• another day to test by running traceroutes

• AutoNetkit• 1 hour to write high-level AutoNetkit code• hundreds of lines of descriptive code• automatic testing: myInternet.runTraceroutes()

17 / 19

Page 18: How to Build Complex, Large-Scale Emulated Networks

Future Work

CompilerNetwork Model

PolicyFragments

NetkitConfiguration

Files

Verification

Netkit Host

NetworkDescription

ResourceAllocation

Deployment

Plugins

Physical & LogicalTopologies

Support moreRouting Protocols

(RIP, IS-IS)

Deploy to Ciscoand Juniper routers

Add GUI,Network Design

Formal Methodsfor Verification

New Plugins(Optimisation,

Analysis)

18 / 19

Page 19: How to Build Complex, Large-Scale Emulated Networks

Conclusion

• AutoNetkit• Tool to simplify configure of complex, large-scale

emulated networks• Enables low-cost research of ISP size networks

• Questions?

19 / 19