Title: CS244a: An Introduction to Computer Networks
1Teaching tools for a network infrastructure
teaching lab The Virtual Router and NetFPGA
Sigcomm Education Workshop August 20th, 2002
Nick McKeown Professor of Electrical Engineering
and Computer Science, Stanford
University nickm_at_stanford.edu www.stanford.edu/ni
ckm
2Outline
- Why have a network infrastructure teaching lab
- Hardware Platform NetFPGA
- Software Platform Virtual Router
- Demo of Virtual Router (hopefully)
3Why 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.
4Platform 1 Hardware Platform
5Hardware 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 -gt simulation/verification -gt synthesis
-gt download
6Hardware Platform NetFPGA
Packet buffers
1
Ethernet Interface 1
User FPGA
User memory
2
Ethernet Interface 2
- No CPU
- Only interface is via Ethernet
- Program FPGA via Ethernet
- Reset board remotely
8
Ethernet Interface 8
Controller
7Hardware Platform NetFPGA
Campus Network
Ethernet Interface 1
User FPGA
Ethernet Interface 2
Ethernet Interface 8
User memory
Firewall
Ethernet Interface 1
User FPGA
Ethernet Interface 2
Ethernet Interface 8
User memory
Controller
Web/ftp
Analyzer
8Hardware Platform NetFPGAStatus
- Prototype Summer 2002
- First classroom use April 2003
- Boards available Early 2004
- Looking for sponsors and alpha-users
9Platform 2 Software Platform
10Software 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,
11Software Platform Virtual RouterStudents view
A
Ethernet frames
B
Ethernet frames
Students user-space router
Ethernet frames
Ethernet frames
C
Campus Network
Ethernet frames
Virtual Router Client
D
Web/ftp servers
12Example 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
13Software Platform Virtual RouterThe Virtual
Router Server
VR Client
Instructional machines
PCLinux
Firewall
Campus Network
Virtual Router Server
Web/ftp servers
14Software Platform Virtual RouterStudents view
Each interface has locally unique Ethernet and IP
address.
Arbitrary topology
VR Client
VR Client
VR Client
VR Client
VR Client
Campus Network
Web/ftp servers
15Software Platform Virtual RouterStudents view
Topology per student
Campus Network
Web/ftp servers
16Software Platform Virtual RouterThe 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
Instructional machines
Firewall/Load-balancer
Virtual Router Server
Web/ftp servers
17Software Platform Virtual RouterStatus
- 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