150 likes | 300 Views
GEC7: SPP Tutorial Notes. John DeHart Computer Science & Engineering Washington University www.arl.wustl.edu. Essence of a Good Tutorial. Mix of Talks and Hands-On Exercises Hands-On Exercises in Reverse Order Give them something that works first This lets them see how everything works
E N D
GEC7: SPP TutorialNotes John DeHartComputer Science & EngineeringWashington Universitywww.arl.wustl.edu
Essence of a Good Tutorial • Mix of Talks and Hands-On Exercises • Hands-On Exercises in Reverse Order • Give them something that works first • This lets them see how everything works • Then have them change something in the working exercise • Then give them less and have them fill in some details • Etc. • Have people on hand to answer questions and give help during hands-on exercises • Provide handouts so attendees have printed directions for exercises and copies of slides • Working in groups vs. working as individuals • Don’t try to do too much
What do we want to achieve? • Experience GPE and NPE based Routers? • GPE-based Router: • Simple Pass-Through • Two Interfaces • Packets from Interface 1 are sent out Interface 2 and vice versa • NPE-based Router: • Control from GPE • Local Delivery (LD) and Exception (EXC) traffic to GPE • Filters • Tunnels
What resources will be need? • Predefined SPP Slices and Accounts? • Pre-built tarfiles for attendees to download? • Network Connections at site? • Data generating nodes • Planetlab? • Coordinating planetlab slices with our SPP slices • Difficulty with UDP Tunnels on PlanetLab nodes.
Agenda (3 Hrs, with 15 min. break) • 0:00 – 0:20 Overview (Jon and/or Patrick) • System Components • Software Components and Interfaces • Deployed nodes and configuration • 0:20 – 0:45 Reserving and Using System Resources (Ken) • External Interfaces • NPE Resources • Command Line API • Traffic Monitoring • 0:45 – 1:10 Creating and Running GPE-based App (Jon) • Forest • Configuring external interfaces • Configuring and running Forest routers • Using Planetlab to generate traffic • 1:10 – 1:25 Break • 1:25 – 2:00 Creating and Running a Fastpath (John, Ken or Mart) • IPv4 • Similar to above • 2:00 – 3:00 Hands-on Session (Jon, John, Ken, Patrick)
Reserving and Using System Resources Talk • SPP Interfaces • External • Internal • Reservations • FastPath • SlowPath • XML file • Time • Resource Parameters • Interfaces • Command Line API • Leave ip_fpc and ip_fpd for FastPath talk or do here? Maybe mention here but leave details for later? • scfg • sliced • Traffic Monitoring • FastPath • Stats Indices • Queues • SlowPath • User Data from File
Creating and Running a FastPath • Configuring SPP Interfaces for a Fast Path • Meta-Interfaces and UDP Tunnels • Packet Formats • UDP Tunnels • Meta-Net Packets • Starting a FastPath • Fast Path Daemon (e.g. ip_fpd) • Local Delivery and Exception traffic • Responding to ICMP Requests, etc. • Filters • MN Specific (e.g. ip_fpc) • Generating Data • UDP Tunnel Encapsulation • Traffic Monitoring • FastPath • Stats Indices • Queues
Hands-On Session • Each person works individually • Use IPv4 Fastpath • One router/slice per person • Make tarfile available for them to download to their slice • Includes script to run to configure router • Make SPPmon and hardware file available for them to load on laptops • Part 1 • Configure router to route a packet from their laptop back to their laptop • “ping” router from their laptops using a program we provide • Needs to run on variety of laptop OS’s • Part 2 • Group 3 participants routers to join their routers • Add filters to send packets the long way around • Part 3 • Use traffic generators we have set up on Planetlab Nodes • We provide script/program that they run that sends message to server on PL Node to start traffic generator. • Manipulate Queue parameters • Monitor traffic
Tasks • Tarfile for configuring Router • SPPmon and hardware file for uses to load on laptop • Ping program for sending and receiving packet to test router. • Runs on users’ laptops (Linux, MacOS, Windows, Cygwin?) • Sends IP packet in UDP tunnel • Command line arguments to set tunnel and internal IP pkt headers • Receives IP packet in UDP tunnel and verifies that internal packet is same as sent. • Traffic generator start script/program client/server • Client • Runs on users’ laptops (Linux, MacOS, Windows, Cygwin?) • Sends IP packet (no tunnel required) to planetlab node to start traffic generator • Command line arguments to set planetlab node IP and Port, traffic parameters (duration, rate, type, IP hdrs) • Server • Runs on planetlab nodes • Receives IP packet (no tunnel) • Starts traffic generator with parameters as set in packet payload • Handouts detailing what resources each participant should use. • SPP, Slice, planetlab node for traffic generator (IP, Port#), etc. • Finish conversion of current SPP Utilities (client, resrv, …)
Command Lines for Utility Programs • sppPing –sppDA 1.2.3.4 –sppDPort 5555 –sppSPort 4444 –intDA 10.10.10.1 –intDPort 2222 –intSA 10.10.10.2 –intSPort 3333 • startTraffic –plDA 1.2.3.4 –plDPort 5555 –numPkts 1000 –pps 1000 –sppDA 1.2.3.4 –sppDPort 5555 –sppSPort 4444 –dataDA 10.10.10.1 –dataDPort 2222 –dataSA 10.10.10.2 –dataSPort 3333
Still to do… • Redo FastPath talk to include demo. • Change MetaRouter to Slice/Fastpath, MetaNet to Slice/FastPath • Change ‘Other end of MI’ to ‘Next Hop’ • Add payload size minimum to tgit. • Future reservations go away on reboots. • Redo SPPmon experiment files to use new SPPmon with labels. • Remove bw from release command(s) so user is not required to specify the bandwidth of an endpoint when doing a release. • Generate ssh tunnel instructions for users. We will probably not have direct I2 access. • Make up solution configureRouter.sh scripts for each user. Add to slice directories. • Automate backups of GPE Vservers • Clean up output from configureRouter.sh so it tells the user something understandable. • Re-populate all slices with files • Populate USB flash drives • Get mail working on SPP PLC • Automate startup of servers and receivers for TG • Servers seem to need re-starting regularly.
Still to do… • Backup plan for planetlab hosts that are not working • Have a second and third host ready for each user and make it easy to switch • To switch TGSRC need to change tgit • For TGSRC, probably don’t actually need to change configureRouter.sh since we don’t actually check for srcaddr/port and we don’t send anything back to the SRC. • Not sure we care about TGDST. If it is dead, does it really matter? ICMP error messages? • But to be complete we should change TGSRC in tgit and configureRouter.sh and TGDST in configureRouter.sh • All PL_HOST’s should have server and receiver started on them so we can quickly switch • 2/27/10: Added 33 more planetlab hosts to washu_sppDemo slice. • install fsd on all CPs • Try Fred’s suggestions on fixing SNMP open socket problems.
In progress • 2/26/10: Update USB stick with latest SPPmon and experiment files • Purchase USB flash drives (Order sent to Kelli, 2/25)
DONE • DONE: Clean up “mnet_run: entered: calling updateEnvIP” messages in ip_fpd • DONE: Clear ip_fpd.log file before running ip_fpd or just >& into it instead of >>h • DONE: Change configureRouter.sh so it gives them the commands needed at end but forces them to set the values for variables • DONE: Add something to configureRouter.sh to print dots while sleeping. • DONE: Change configureRouter.sh script to use the MID returned by scfg • DONE: Load emacs, pico (and other editors?) on ALL GPE slices • DONE: Add slide with example of get_ifaces and what each interface is. • DONE: Remove use of BINDIR in configureRouter.sh, set path to use /usr/local/bin and use utilities and daemons from there. • DONE: Fix scfg with new name changes (claim_resources, etc) • Then change scripts to use new names: Do this before FRIDAY!!! • DONE: Update /usr/local/bin binaries on all slices (Do this after updating scfg above) • DONE: Set hostname on spphost’s (Any implications for ONL?) • DONE: Config WASH back to normal (was testing ProtoGENIvlan stuff) • Test gec01 and gec02 with MI between: This will test KANS WASH link • DONE: Expand port numbers used for sliced so unique on each GPE • DONE: Make Sirius reservations • DONE: Fix sliced so it does not hog the CPU.
DONE • DONE: Fix User11 handout. • DONE: Verify that all experiment files have Pkts/s as Y Axis. • DONE: Test tunnels and experiment files that use them. • DONE: Change limit on open files on all CPs (added ulimit –n 10240 to /etc/rc.local) • Turns out that the limit is also built into select(). There is a limit of 1024 file descriptors in the FD SET that is given to select. This limit is built into a binary library that python uses to do a select. So, we can’t easily change it for a work-around. • DONE: Fix free_resources, free_sp_resources, free_fp_resources confusion in usage, etc. • DONE: Add some directions on adding SPPmon monitoring entries • DONE: Make up solution worksheets. • DONE: Jyoti is adding feature to allow user to add label to SPP • DONE: Add slide info on tgit and how it works so they know it just sends pkt to server. • DONE: Change _PORT in configureRouter.sh to _IFN to agree with get_ifaces • _PORT_10 becomes _IFN_2 _PORT_9 becomes _IFN_1 _PORT_8 becomes _IFN_0 • DONE: Add a worksheet for doing the setup_fp_tunnel, write_fltr stuff at the end so they have to write the values down on paper before going to the configureRouter.sh. And tie it in to the previous filter and its result.