CS244a: An Introduction to Computer Networks

Download Report

Transcript CS244a: An Introduction to Computer Networks

Teaching tools for a network
infrastructure teaching lab
The Virtual Router and NetFPGA
Sigcomm Education Workshop
High Performance
Switching and Routing
Telecom Center Workshop: Sept 4, 1997.
August 20th, 2002
Nick McKeown
Professor of Electrical Engineering
and Computer Science, Stanford University
[email protected]
www.stanford.edu/~nickm
Aug 20th, 2002
Sigcomm Education Workshop
1
Outline
Why have a network infrastructure teaching lab
 Hardware Platform: NetFPGA
 Software Platform: Virtual Router
 Demo of Virtual Router (hopefully)

Aug 20th, 2002
Sigcomm Education Workshop
2
Why have a network
infrastructure teaching lab

Many of our students go to networking companies:





Software engineers implement network protocols, and
Hardware engineers architect and design switches and routers.
More likely to design a router than a computer.
We had classes on digital system design, computer
programming, networking and on packet switch
architectures. No lab classes in networking.
Want students to design, implement, deploy and
debug their own infrastructure elements: IP
routers, Ethernet switches, and elements of their
own creation.
Aug 20th, 2002
Sigcomm Education Workshop
3
Platform #1: Hardware Platform
NetFPGA
Aug 20th, 2002
Sigcomm Education Workshop
4
Hardware Platform: NetFPGA





What: Circuit board with 8 Ethernet interfaces
and user-programmable FPGAs.
How used: Students architect, design and deploy
their own hardware in an operational network.
Canonical assignment: Ethernet switch
Other assignments: IP router, firewall, packet
mis-sequencer, data transcoder, …
Design flow: Industry standard flow

Verilog -> simulation/verification -> synthesis -> download
Aug 20th, 2002
Sigcomm Education Workshop
5
Hardware Platform: NetFPGA
Packet buffers
User memory




No CPU
Only interface is
via Ethernet
Program FPGA via
Ethernet
Reset board
remotely
User
FPGA
Ethernet
Interface #8
User program
Aug 20th, 2002
Ethernet
Interface #1
Ethernet
Interface #2
Sigcomm Education Workshop
1
2
8
Controller
6
Hardware Platform: NetFPGA
Campus
Network
Ethernet
Interface #1
User
FPGA
User memory
Ethernet
Interface #2
Ethernet
Interface #8
Firewall
Ethernet
Interface #1
User
FPGA
User memory
Ethernet
Interface #2
Ethernet
Interface #8
Controller Web/ftp Analyzer
Aug 20th, 2002
Sigcomm Education Workshop
7
Hardware Platform: NetFPGA
Status
Prototype: Summer 2002
 First classroom use: April 2003
 Boards available: Early 2004


Looking for sponsors and alpha-users…
Aug 20th, 2002
Sigcomm Education Workshop
8
Platform #2: Software Platform
Virtual Router
Aug 20th, 2002
Sigcomm Education Workshop
9
Software Platform: Virtual Router





Problem: How to have 200 students each build and
deploy their own router, without kernel hacking
and without their own dedicated machine?
What: PC/Linux-based “Virtual Router Server”;
students write user-space “Virtual Router Clients”
in C, C++, Java, Perl, …
How used: Students architect, design and deploy
their own router in an operational network with
their own arbitrary topology.
Canonical assignment: Internet router.
Other assignments: QoS router, lookup
algorithms, routing protocols, Firewall, …
Aug 20th, 2002
Sigcomm Education Workshop
10
2. Student’s code
Software Platform:
Virtual Router
(in C, C++, Java, perl)
Student’s
view
receives Ethernet
packet and must
route it to correct
interface.
1. Packet arrives
destined for web
server ‘C’.
A
B
Student’s
user-space
router
“Virtual Router Client”
Ethernet frames
Campus
Network
C
D
Web/ftp servers
Aug 20th, 2002
Sigcomm Education Workshop
11
Example assignment
March 2002, ~100 BS/MS students

Implement a fully functional IP router,
including:






Address lookup (static routing table)
TTL check and decrement
IP checksum check and update
ARP request/reply
ICMP: enough for traceroute and ping to work
Environment:



Students receive/send raw Ethernet packets
Four network interfaces
Written in ANSI C
Aug 20th, 2002
Sigcomm Education Workshop
12
Software Platform: Virtual Router
The Virtual Router Server
VR
Client
Instructional
machines
PC
Linux
Firewall
Campus
Network
“Virtual Router Server”
Web/ftp servers
Aug 20th, 2002
Sigcomm Education Workshop
13
Software Platform: Virtual Router
Student’s view
Each interface has
locally unique
Ethernet and IP
address.
Arbitrary topology
VR
Client
VR
Client
VR
Client
Campus
Network
VR
Client
VR
Client
Web/ftp servers
Aug 20th, 2002
Sigcomm Education Workshop
14
Software Platform: Virtual Router
Student’s view
Topology per student
Campus
Network
Web/ftp servers
Aug 20th, 2002
Sigcomm Education Workshop
15
Software Platform: Virtual Router
The Virtual
Classifies incoming
packet to determine
which student should
route the packet. Picks
next hop
Instructional
Ethernet DA
to reach
machines
VR Client.
RouterIntercepts
Server specific
Ethernet addresses
on behalf of VR
Clients
Firewall/
Load-balancer
“Virtual Router Server”
Web/ftp servers
Aug 20th, 2002
Sigcomm Education Workshop
16
Software Platform: Virtual Router
Status
Prototype V1.0: Summer 2001
 First classroom use: March 2002


CS244a at Stanford, Assignment #3, ~100 students
V2.0: Summer 2002
 Next classroom use: March 2003
 First planned release: Summer 2003


Looking for sponsors and alpha-users…
Aug 20th, 2002
Sigcomm Education Workshop
17