1 / 61

GEC7: SPP Tutorial

GEC7: SPP Tutorial. 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

janine
Download Presentation

GEC7: SPP Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GEC7: SPP Tutorial John DeHartComputer Science & EngineeringWashington Universitywww.arl.wustl.edu

  2. 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

  3. 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

  4. 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.

  5. 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)

  6. 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

  7. 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

  8. 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

  9. 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, …)

  10. 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

  11. User: gec01 • SPP Host: spphost1.arl.wustl.edu • SPP Host login id: gec01 • SPP Host password: GEC7User01 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_01 • Private Key: ~/.ssh/gec01_id_rsa • Passphrase: GEC7 User 01 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec01_id_rsa wupl_GEC7_01@sppkans1.arl.wustl.edu • Neighbor User: gec01

  12. User: gec02 • SPP Host: spphost2.arl.wustl.edu • SPP Host login id: gec02 • SPP Host password: GEC7User02 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_02 • Private Key: ~/.ssh/gec02_id_rsa • Passphrase: GEC7 User 02 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec02_id_rsa wupl_GEC7_02@sppwash1.arl.wustl.edu • Neighbor User: gec01

  13. User: gec03 • SPP Host: spphost3.arl.wustl.edu • SPP Host login id: gec03 • SPP Host password: GEC7User03 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_03 • Private Key: ~/.ssh/gec03_id_rsa • Passphrase: GEC7 User 03 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec03_id_rsa wupl_GEC7_03@sppsalt1.arl.wustl.edu • Neighbor User: gec04

  14. User: gec04 • SPP Host: spphost4.arl.wustl.edu • SPP Host login id: gec04 • SPP Host password: GEC7User04 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_04 • Private Key: ~/.ssh/gec04_id_rsa • Passphrase: GEC7 User 04 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec04_id_rsa wupl_GEC7_04@sppkans1.arl.wustl.edu • Neighbor User: gec03

  15. User: gec05 • SPP Host: spphost5.arl.wustl.edu • SPP Host login id: gec05 • SPP Host password: GEC7User05 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_05 • Private Key: ~/.ssh/gec05_id_rsa • Passphrase: GEC7 User 05 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec05_id_rsa wupl_GEC7_05@sppwash1.arl.wustl.edu • Neighbor User: gec06

  16. User: gec06 • SPP Host: spphost6.arl.wustl.edu • SPP Host login id: gec06 • SPP Host password: GEC7User06 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_06 • Private Key: ~/.ssh/gec06_id_rsa • Passphrase: GEC7 User 06 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec06_id_rsa wupl_GEC7_06@sppsalt1.arl.wustl.edu • Neighbor User: gec05

  17. User: gec07 • SPP Host: spphost1.arl.wustl.edu • SPP Host login id: gec07 • SPP Host password: GEC7User07 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_07 • Private Key: ~/.ssh/gec07_id_rsa • Passphrase: GEC7 User 07 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec07_id_rsa wupl_GEC7_07@sppkans1.arl.wustl.edu • Neighbor User: gec08

  18. User: gec08 • SPP Host: spphost2.arl.wustl.edu • SPP Host login id: gec08 • SPP Host password: GEC7User08 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_08 • Private Key: ~/.ssh/gec08_id_rsa • Passphrase: GEC7 User 08 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec08_id_rsa wupl_GEC7_08@sppwash1.arl.wustl.edu • Neighbor User: gec07

  19. User: gec09 • SPP Host: spphost3.arl.wustl.edu • SPP Host login id: gec09 • SPP Host password: GEC7User09 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_09 • Private Key: ~/.ssh/gec09_id_rsa • Passphrase: GEC7 User 09 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec09_id_rsa wupl_GEC7_09@sppsalt1.arl.wustl.edu • Neighbor User: gec10

  20. User: gec10 • SPP Host: spphost4.arl.wustl.edu • SPP Host login id: gec10 • SPP Host password: GEC7User10 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_10 • Private Key: ~/.ssh/gec10_id_rsa • Passphrase: GEC7 User 10 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec10_id_rsa wupl_GEC7_10@sppkans1.arl.wustl.edu • Neighbor User: gec09

  21. User: gec11 • SPP Host: spphost5.arl.wustl.edu • SPP Host login id: gec02 • SPP Host password: GEC7User02 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_02 • Private Key: ~/.ssh/gec02_id_rsa • Passphrase: GEC7 User 02 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec11_id_rsa wupl_GEC7_11@sppwash1.arl.wustl.edu • Neighbor User: gec12

  22. User: gec12 • SPP Host: spphost6.arl.wustl.edu • SPP Host login id: gec12 • SPP Host password: GEC7User12 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_12 • Private Key: ~/.ssh/gec12_id_rsa • Passphrase: GEC7 User 12 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec12_id_rsa wupl_GEC7_12@sppsalt1.arl.wustl.edu • Neighbor User: gec11

  23. User: gec13 • SPP Host: spphost1.arl.wustl.edu • SPP Host login id: gec13 • SPP Host password: GEC7User13 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_13 • Private Key: ~/.ssh/gec13_id_rsa • Passphrase: GEC7 User 13 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec13_id_rsa wupl_GEC7_13@sppkans1.arl.wustl.edu • Neighbor User: gec14

  24. User: gec14 • SPP Host: spphost2.arl.wustl.edu • SPP Host login id: gec14 • SPP Host password: GEC7User14 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_14 • Private Key: ~/.ssh/gec14_id_rsa • Passphrase: GEC7 User 14 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec14_id_rsa wupl_GEC7_14@sppwash1.arl.wustl.edu • Neighbor User: gec13

  25. User: gec15 • SPP Host: spphost3.arl.wustl.edu • SPP Host login id: gec15 • SPP Host password: GEC7User15 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_15 • Private Key: ~/.ssh/gec15_id_rsa • Passphrase: GEC7 User 15 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec15_id_rsa wupl_GEC7_15@sppsalt1.arl.wustl.edu • Neighbor User: gec16

  26. User: gec16 • SPP Host: spphost4.arl.wustl.edu • SPP Host login id: gec16 • SPP Host password: GEC7User16 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_16 • Private Key: ~/.ssh/gec16_id_rsa • Passphrase: GEC7 User 16 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec16_id_rsa wupl_GEC7_16@sppkans1.arl.wustl.edu • Neighbor User: gec15

  27. User: gec17 • SPP Host: spphost5.arl.wustl.edu • SPP Host login id: gec17 • SPP Host password: GEC7User17 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_17 • Private Key: ~/.ssh/gec17_id_rsa • Passphrase: GEC7 User 17 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec17_id_rsa wupl_GEC7_17@sppwash1.arl.wustl.edu • Neighbor User: gec18

  28. User: gec18 • SPP Host: spphost6.arl.wustl.edu • SPP Host login id: gec18 • SPP Host password: GEC7User18 • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • Slice: wupl_GEC7_18 • Private Key: ~/.ssh/gec18_id_rsa • Passphrase: GEC7 User 18 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec18_id_rsa wupl_GEC7_18@sppsalt1.arl.wustl.edu • Neighbor User: gec17

  29. User: gec19 • SPP Host: spphost1.arl.wustl.edu • SPP Host login id: gec19 • SPP Host password: GEC7User19 • SPP: sppkans1.arl.wustl.edu (64.57.23.178) (KANS) • Slice: wupl_GEC7_19 • Private Key: ~/.ssh/gec19_id_rsa • Passphrase: GEC7 User 19 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec19_id_rsa wupl_GEC7_19@sppkans1.arl.wustl.edu • Neighbor User: gec20

  30. User: gec20 • SPP Host: spphost2.arl.wustl.edu • SPP Host login id: gec20 • SPP Host password: GEC7User20 • SPP: sppwash1.arl.wustl.edu (64.57.23.194) (WASH) • Slice: wupl_GEC7_20 • Private Key: ~/.ssh/gec20_id_rsa • Passphrase: GEC7 User 20 • 1 space after each of GEC7 and User • To ssh into your slice: • ssh –i ~/.ssh/gec20_id_rsa wupl_GEC7_20@sppwash1.arl.wustl.edu • Neighbor User: gec19

  31. User: gec00 (Extra user, just in case) • Slice: wupl_GEC7_00 • Private Key: ~/.ssh/gec00_id_rsa • Passphrase: GEC7 User 00 • 1 space after each of GEC7 and User • SPP: sppsalt1.arl.wustl.edu (64.57.23.210) (SALT) • SPP Host: spphost1.arl.wustl.edu • SPP Host login id: gec00 • SPP Host password: GEC7User00 • To ssh into your slice: • ssh –i ~/.ssh/gec00_id_rsa wupl_GEC7_00@sppsalt1.arl.wustl.edu

  32. Diagram of Your Network spphost# Control Processor (GPE) MetaRouter Control NPE MetaRouter FastPath Connectivity to Neighbor Rtr PlanetLab Host PlanetLab Host

  33. Background • We will use the terms “Meta-Interface” and “UDP Tunnel” interchangeably at times. • A Meta-Interface is defined by a SPP IP Address and UDP Port • Queues are bound to a Meta-Interface. • There can be many queues bound to a Meta-Interface. • For our examples later we will have just one queue per meta-interface • Filters in our Meta-Router route packets from one Meta-Interface to another. • Filters are specific to a Meta-Interface. • Filters have three parts: • Key (type, rxmi, daddr, saddr, dport, sport, proto) • type=0: Normal • type=1: Bypass, used for packets coming from the slow_path which have already been classified. • Mask • Result (daddr, dport, qid, stats_index) • The qid identifies the outgoing MI since queues are bound to MIs • The (daddr, dport) pair defines the other end of the MI for outgoing pkt. • The stats_index allows us to monitor the number of packets forwarded by this filter.

  34. Background (Continued) • Utilities and Daemons: • scfg: Slice Config • Generic: Not specific to any Meta-Router • Add/remove meta interfaces (udp tunnels) • Bind queues to meta interfaces • Set queue parameters. • ip_fpd: ipv4 fastpath daemon • Specific to the IPv4 Meta-Router • Create fast path • Process local delivery and exception packets • ip_fpc: ipv4 fastpathconfig • Specific to the IPv4 Meta-Router • Add filters to fast path meta router • sliced: slice daemon • Generic: Not specific to any Meta-Router • Process monitoring requests • Scripts • configureRouter.sh • Builds the fast path and configures it. • Uses a lot of shell variables (may be confusing) • teardownRouter.sh

  35. Meta Router • You will be working with an IPv4 Meta-Router • Your meta-router will route based on the fields in the MN Packet Hdr • Meta-Routers have Interfaces, called Meta-Interfaces • Packets arrive at a Meta-Interface encapsulated in a UDP Tunnel UDP/IP Tunnel Hdr MN Packet Hdr (IPv4 Hdr in this case) UDP/IP Payload (MN Packet) MN Packet Payload (IPv4 Pkt payload in this case)

  36. What we are going to do today: ping pingit spphost# Control Processor (GPE) MR Control Pingit MI TG Src MI Neighbor Rtr Meta-interface NPE MR FastPath PlanetLab Host TG Dst MI Ping the SPP PlanetLab Host Ping the Meta-Router Route Traffic through Meta-Router Route Traffic to/from neighbor Meta-Router

  37. Addressing in your Meta-Network ping pingit spphost# 10.10.#.17 (GPE) MR Control 10.10.#.1 Control Processor Pingit MI TG Src MI Neighbor Rtr Meta-interface NPE MR FastPath PlanetLab Host 10.10.#.2 TG Dst MI Where # is replaced by the number From your user id. Example for user gec07: 10.10.7.1 (MR Address) 10.10.7.17 (Pingit host) 10.10.7.2 (TG Src PL Host) 10.10.7.3 (TG Dst PL Host) PlanetLab Host 10.10.#.3

  38. Current SPP Network 64.57.23.210 64.57.23.178 10.1.1.1 10.1.1.2 KANS SALT • Each SPP has 3 Public Internet2 Interfaces. • Each SPP has 2 internal interfaces to each other SPP. 64.57.23.214 10.1.2.2 64.57.23.182 10.1.2.1 64.57.23.186 64.57.23.218 10.1.7.2 10.1.3.1 10.1.8.2 10.1.4.1 10.1.7.1 10.1.3.2 10.1.4.2 10.1.8.1 WASH 64.57.23.194 64.57.23.202 64.57.23.198

  39. scfg –cmdget_ifaces [wupl_GEC7_01@kans_spp ~]$ scfg --cmdget_ifaces Interface list: [ifn 0, type "inet", linkBW 1000000Kbps, availBW 864488Kbps, ipAddr 64.57.23.178] [ifn 1, type "inet", linkBW 1000000Kbps, availBW 869360Kbps, ipAddr 64.57.23.182] [ifn 2, type "inet", linkBW 1000000Kbps, availBW 869360Kbps, ipAddr 64.57.23.186] [ifn 3, type "p2p", linkBW 1000000Kbps, availBW 869360Kbps, ipAddr 10.1.1.1] [ifn 4, type "p2p", linkBW 1000000Kbps, availBW 869296Kbps, ipAddr 10.1.2.1] [ifn 5, type "p2p", linkBW 1000000Kbps, availBW 869360Kbps, ipAddr 10.1.3.1] [ifn 6, type "p2p", linkBW 1000000Kbps, availBW 869296Kbps, ipAddr 10.1.4.1] • ifn: interface number • type: • inet: Internet • p2p: Point to Point • linkBW: total bandwidth on the link (1Gb/s) • availBW: total bandwidth currently available • ipAddr: This interface’s address on this SPP

  40. Meta Interfaces (UDP Tunnels) SALT TG Src MI Neighbor Rtr Meta-interface TG Dst MI This Meta-Interface defined as: 64.57.23.214/21003 SALT_SPP_IFN_1="64.57.23.214" … SPP_IFN_1=$SALT_SPP_IFN_1 … SPP_TGSRC_MI_IPADDR=$IP_RTR_PORT_9 … SPP_TGSRC_MI_PORT=21003 scfg--cmdsetup_fp_tunnel --fpid 0 --bw 10000 --ipaddr $SPP_TGSRC_MI_IPADDR --port $SPP_TGSRC_MI_PORT From configureRouter.sh which we will be using later.

  41. Meta Interfaces (UDP Tunnels) SALT TG Src MI Neighbor Rtr Meta-interface TG Dst MI This Meta-Interface defined as: 64.57.23.218/21003 SALT_SPP_IFN_2="64.57.23.218" … SPP_IFN_2=$SALT_SPP_IFN_2 … SPP_TGDST_MI_IPADDR=$SPP_IFN_2 … SPP_TGDST_MI_PORT=21003 scfg--cmdsetup_fp_tunnel --fpid 0 --bw 10000 --ipaddr $SPP_TGDST_MI_IPADDR --port $SPP_TGDST_MI_PORT From configureRouter.sh which we will be using later.

  42. Filters SALT TG Src MI Filter Neighbor Rtr Meta-interface This adds a filter to the SRC MI to route packets to the DST MI TG Dst MI ip_fpc--cmdwrite_fltr --fpid 0 --fid $FID \ --key_type 0 --key_rxmi $MID_SRC \ --key_daddr $ HOST_TGDST_MN_ADDR \ --key_saddr 0 --key_sport 0 --key_dport 0 --key_proto 0 \ --mask_daddr 0xFFFFFFFF --mask_saddr 0 --mask_sport 0 \ --mask_dport 0 --mask_flags 0 \ --txdaddr $HOST_TGDST_IPADDR \ --txdport $HOST_TGDST_PORT –qid $QID_DST_MI --sindx $FID Key Mask Result

  43. Filters (continued) SALT TG Src MI Filter Neighbor Rtr Meta-interface Key matches on DST MetaNet Address TG Dst MI ip_fpc--cmdwrite_fltr --fpid 0 --fid $FID \ --key_type 0 --key_rxmi $MID_SRC \ --key_daddr $HOST_TGDST_MN_ADDR \ --key_saddr 0 --key_sport 0 --key_dport 0 --key_proto 0 \ --mask_daddr0xFFFFFFFF --mask_saddr 0 --mask_sport 0 \ --mask_dport 0 --mask_flags 0 \ --txdaddr $HOST_TGDST_IPADDR \ --txdport $HOST_TGDST_PORT –qid $QID_DST_MI --sindx $FID Key Mask Result

  44. Filters (continued) SALT TG Src MI Filter Neighbor Rtr Meta-interface qid is bound to Router DST MI That is what gets packet to go OUT that MI TG Dst MI ip_fpc--cmdwrite_fltr --fpid 0 --fid $FID \ --key_type 0 --key_rxmi $MID_SRC \ --key_daddr $ HOST_TGDST_MN_ADDR \ --key_saddr 0 --key_sport 0 --key_dport 0 --key_proto 0 \ --mask_daddr 0xFFFFFFFF --mask_saddr 0 --mask_sport 0 \ --mask_dport 0 --mask_flags 0 \ --txdaddr $HOST_TGDST_IPADDR \ --txdport $HOST_TGDST_PORT –qid $QID_DST_MI --sindx $FID Key Mask Result

  45. Filters (continued) SALT TG Src MI Filter Neighbor Rtr Meta-interface Addr/Port in Result are for host at other end of that tunnel. Addr is what gets the Internet to deliver packet to end host and port gets the host to deliver to application TG Dst MI ip_fpc--cmdwrite_fltr --fpid 0 --fid $FID \ --key_type 0 --key_rxmi $MID_SRC \ --key_daddr $HOST_TGDST_MN_ADDR \ --key_saddr 0 --key_sport 0 --key_dport 0 --key_proto 0 \ --mask_daddr 0xFFFFFFFF --mask_saddr 0 --mask_sport 0 \ --mask_dport 0 --mask_flags 0 \ --txdaddr $ HOST_TGDST_IPADDR \ --txdport $ HOST_TGDST_PORT –qid $QID_DST_MI --sindx $FID Key Mask Result

  46. You will add… SALT TG Src MI Filter Neighbor Rtr Meta-interface Filter TG Dst MI New Meta-Interface to connect your router to a neighbor router. New Filter to direct traffic from your SRC to their DST New Filter to direct traffic from their SRC to your DST

  47. Directions for Hands On Exercises • Note your User id: gec## • Note your SPP • Open THREE windows • ssh to your spp host in EACH window • Window 1: ping • First, ping your SPP (refer to your “User: gec##” page for your SPP) • ping sppkans1.arl.wustl.edu OR sppwash1.arl.wustl.edu OR sppsalt1.arl.wustl.edu • Run pingit • cd GEC7 • ./pingit • Notice the UDP Port number that it reports. • But don’t “press any key to continue” yet.

  48. Directions for Hands On Exercises (continued) • Window 2: ssh to slice on your assigned SPP • ssh -i ~/.ssh/gec##_id_rsa wupl_GEC7_##@<spp> • Also show on your “User: gec##” page • Ping something back on your campus that your firewalls will allow you to ping… • Or ping something on our campus: • > ping drn06.arl.wustl.edu • See what interfaces your SPP has: • >scfg --cmdget_ifaces • TWO DASHES before cmd!! • cdHandsOnSession/UserScripts/User_##/ • ./configureRouter.sh <udpport from pingit> • Now, just for practice, tear down the router: • ./teardownRouter.sh • Then re-run the configureRouter.sh script • On your laptop, start SPPMon.jar • Load monitoring file • Under File menu select Open • Double Click on GEC7 • Double Click on User##.exp • Go back to ‘pingit’ window (Window 1) and hit Enter • You should see the monitoring graph counting the ping requests and responses. • Try it multiple times if you like.

  49. Directions for Hands On Exercises (continued) • Window 3: Traffic Generator • Run the traffic generator: • cd GEC7 • ./tgit • Notice the values that it reports for • Number of packets • Packet per second rate • Packet payload length • Destination address • tgit is actually a script that runs a java app on your spphost. The java app sends a request to a server on the TG SRC host asking it to start a traffic generator. • Look at monitoring graph to see the tgpkts being counted. • Look at the command line arguments for tgit: • ./tgit --help • Try running tgit and change the parameters of the traffic. • Leave the destination address the same as original run reported.

  50. Directions for Hands On Exercises (continued) • Now lets pair up with another user • gec01 – gec02 • gec03 – gec04 • Etc… • Before editing the configureRouter.sh script, fill in the work sheets on the following pages • We want to add a new meta-interface to connect your two routers • Then add the necessary filters to be able to send traffic across both routers

More Related