1Sigcomm Education WorkshopAug 20th, 2002
High PerformanceSwitching and RoutingTelecom Center Workshop: Sept 4, 1997.
Teaching tools for a network infrastructure teaching lab
The Virtual Router and NetFPGA
Sigcomm Education WorkshopAugust 20th, 2002
Nick McKeownProfessor of Electrical Engineering and Computer Science, Stanford University
[email protected]/~nickm
Aug 20th, 2002 Sigcomm Education Workshop2
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 Workshop3
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 Workshop4
Platform #1: Hardware Platform
NetFPGA
Aug 20th, 2002 Sigcomm Education Workshop5
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 Workshop6
Hardware Platform: NetFPGA
Ethernet Interface #1
Ethernet Interface #2
Ethernet Interface #8
UserFPGAUserFPGA
Controller
User memory
User program
Packet buffers1
2
8
No CPU Only interface is
via Ethernet Program FPGA
via Ethernet Reset board
remotely
Aug 20th, 2002 Sigcomm Education Workshop7
Hardware Platform: NetFPGAEthernet
Interface #1
Ethernet Interface #2
Ethernet Interface #8
UserFPGA
UserFPGA
User memory
Ethernet Interface #1
Ethernet Interface #2
Ethernet Interface #8
UserFPGA
UserFPGA
User memory
Firewall
CampusNetwork
Controller Web/ftp Analyzer
Aug 20th, 2002 Sigcomm Education Workshop8
Hardware Platform: NetFPGAStatus
Prototype: Summer 2002 First classroom use: April 2003 Boards available: Early 2004
Looking for sponsors and alpha-users…
Aug 20th, 2002 Sigcomm Education Workshop9
Platform #2: Software Platform
Virtual Router
Aug 20th, 2002 Sigcomm Education Workshop10
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 Workshop11
Software Platform: Virtual Router
Student’s view
Student’s user-space
router
Ethernet frames
Ethernet frames
Ethernet frames
Ethernet framesEthernet frames
Web/ftp servers
CampusNetwork “Virtual Router Client”
1. Packet arrives destined for web
server ‘C’.
2. Student’s code (in C, C++, Java,
perl) receives Ethernet packet
and must route it to correct interface.
A
B
C
D
Aug 20th, 2002 Sigcomm Education Workshop12
Example assignmentMarch 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 Workshop13
Software Platform: Virtual Router
The Virtual Router Server
Web/ftp servers
CampusNetwork
Firewall
PCLinux
Instructional machines
“Virtual Router Server”
VRClient
Socket
Aug 20th, 2002 Sigcomm Education Workshop14
Software Platform: Virtual Router
Student’s view
VRClient
VRClient
VRClient
VRClient
VRClient
Arbitrary topology
CampusNetwork
Web/ftp servers
Each interface has locally
unique Ethernet and IP address.
Aug 20th, 2002 Sigcomm Education Workshop15
Software Platform: Virtual Router
Student’s view
Topology per student
CampusNetwork
Web/ftp servers
Aug 20th, 2002 Sigcomm Education Workshop16
Software Platform: Virtual Router
The Virtual Router Server
Web/ftp servers
Firewall/Load-balancer
Instructional machines
“Virtual Router Server”
Classifies incoming packet to determine which student should
route the packet. Picks next hop
Ethernet DA to reach VR Client.
Intercepts specific Ethernet addresses
on behalf of VR Clients
Aug 20th, 2002 Sigcomm Education Workshop17
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…