Teaching tools for a network infrastructure teaching lab
Teaching tools for a network infrastructure teaching lab The Virtual Router and Net. FPGA Sigcomm Education Workshop August 20 th, 2002 Nick Mc. Keown Professor of Electrical Engineering and Computer Science, Stanford University nickm@stanford. edu www. stanford. edu/~nickm Aug 20 th, 2002 Sigcomm Education Workshop 1
Outline Why have a network infrastructure teaching lab v Hardware Platform: Net. FPGA v Software Platform: Virtual Router v Demo of Virtual Router (hopefully) v Aug 20 th, 2002 Sigcomm Education Workshop 2
Why have a network infrastructure teaching lab v Many of our students go to networking companies: Ø Ø Ø v v 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 20 th, 2002 Sigcomm Education Workshop 3
Platform #1: Hardware Platform Net. FPGA Aug 20 th, 2002 Sigcomm Education Workshop 4
Hardware Platform: Net. FPGA v v v 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 missequencer, data transcoder, … Design flow: Industry standard flow Ø Verilog -> simulation/verification -> synthesis -> download Aug 20 th, 2002 Sigcomm Education Workshop 5
Hardware Platform: Net. FPGA Packet buffers User memory v v No CPU Only interface is via Ethernet Program FPGA via Ethernet Reset board remotely User FPGA User program Aug 20 th, 2002 Sigcomm Education Workshop Ethernet Interface #1 1 Ethernet Interface #2 2 Ethernet Interface #8 8 Controller 6
Hardware Platform: Net. FPGA 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 20 th, 2002 Sigcomm Education Workshop 7
Hardware Platform: Net. FPGA Status Prototype: Summer 2002 v First classroom use: April 2003 v Boards available: Early 2004 v v Looking for sponsors and alpha-users… Aug 20 th, 2002 Sigcomm Education Workshop 8
Platform #2: Software Platform Virtual Router Aug 20 th, 2002 Sigcomm Education Workshop 9
Software Platform: Virtual Router v v v 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: Qo. S router, lookup algorithms, routing protocols, Firewall, … Aug 20 th, 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’. s e m a r f et n r he Et Et Student’s Ethernet frame s user-space Eth ern router et f ram es “Virtual Router Client” Ethernet frames Campus Network ames t fr herne A B C D Web/ftp servers Aug 20 th, 2002 Sigcomm Education Workshop 11
Example assignment March 2002, ~100 BS/MS students v Implement a fully functional IP router, including: Ø Ø Ø v 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 20 th, 2002 Sigcomm Education Workshop 12
Software Platform: Virtual Router The Virtual Router Server VR Client Instructional machines Socket PC Linux Firewall Campus Network “Virtual Router Server” Web/ftp servers Aug 20 th, 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 Campus Network VR Client Web/ftp servers Aug 20 th, 2002 Sigcomm Education Workshop 14
Software Platform: Virtual Router Student’s view Topology per student Campus Network Web/ftp servers Aug 20 th, 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 Ethernet DA Instructional to reach VR Client. machines Router. Intercepts Server specific Ethernet addresses on behalf of VR Clients Firewall/ Load-balancer “Virtual Router Server” Web/ftp servers Aug 20 th, 2002 Sigcomm Education Workshop 16
Software Platform: Virtual Router Status Prototype V 1. 0: Summer 2001 v First classroom use: March 2002 v Ø CS 244 a at Stanford, Assignment #3, ~100 students V 2. 0: Summer 2002 v Next classroom use: March 2003 v First planned release: Summer 2003 v v Looking for sponsors and alpha-users… Aug 20 th, 2002 Sigcomm Education Workshop 17
- Slides: 17