The Cyberinfrastructure Lab at the University of South Carolina (CI Lab @ USC) is a virtual platform deployed for cybertraining purposes. Current training labs include network tools and protocols (e.g., Mininet, Netem, TCP congestion control), perfSONAR, Zeek / Bro, and others.

To access the virtual laboratory:
1. Fill out the form requesting access to CI Lab [docx] (you will receive a username and password within 24 hours). Send the form to gomezgaj@email.sc.edu
2. Access the CI Lab at https://netlab.cec.sc.edu. For a CI Lab user guide, click here [pdf].

Virtual labs are described below.

Virtual Labs on P4 Programmable Data Planes: Applications, Stateful Elements, and Custom Packet Processing

The labs provide a hands-on experience on P4 programmable data plane advanced topics using the Behavioral Model version 2 (BMv2) software switch. The lab series explains topics that include metadata, registers, counters, meters, advanced parsing, and others.

Lab 1Introduction to Mininet
Lab 2Introduction to P4 and BMv2
Lab 3P4 Program Building Blocks
Lab 4Defining and Processing Custom Headers
Lab 5Monitoring the Switchs's Queue using Standard Metadata
Lab 6Collecting Queueing Statistics using a Header Stack
Lab 7Measuring Flow Statistics using Direct and Indirect Counters
Lab 8Rerouting Traffic using Meters
Lab 9Storing Arbitrary Data using Registers
Lab 10Calculating Packets Interarrival Times using Hashes and Registers
Lab 11Generating Notification Messages using Digests
Lab ManualsP4 (BMv2) Advanced Lab Series (PDF)

Virtual Labs on P4 Programmable Data Plane Switches (BMv2)

The labs provide a hands-on experience on P4 programmable data plane switches using the Behavioral Model version 2 (BMv2) software switch. The lab series explains topics that include parsing, match-action tables, checksum verification, and others.

Lab 1Introduction to Mininet
Exercise 1Building a Basic Topology
Lab 2Introduction to P4 and BMv2
Exercise 2Compiling and Running a P4 Program
Lab 3P4 Program Building Blocks
Lab 4Parser Implementation
Exercise 3Parsing UDP and RTP
Lab 5Introduction to Match-action Tables (Part 1)
Lab 6Introduction to Match-action Tables (Part 2)
Exercise 4Implementing NAT using Match-action Tables
Lab 7Populating and Managing Match-action Tables at Runtime
Exercise 5Configuring Match-action Tables at Runtime
Lab 8Checksum Recalculation and Packet Deparsing
Exercise 6Building a Packet Reflector
Lab ManualsP4 (BMv2) Lab Series (PDF)

Virtual Labs on Network Tools and Protocols (NTP)

The NTP labs provide detailed, hands-on experience with tools and protocols needed for emulation of wide area networks (WANs), performance measuring, configuring congestion control protocols, enhancement of TCP throughput using pacing, and other topics.
Lab 1Introduction to Mininet
Exercise 1Building a Basic Topology
Lab 2Introduction to Iperf3
Lab 3Emulating WAN with NETEM I: Latency, Jitter
Lab 4Emulating WAN with NETEM II: Packet Loss, Duplication, Reordering, and Corruption
Lab 5Setting WAN Bandwidth with Token Bucket Filter (TBF)
Exercise 2Emulating a Wide Area Network (WAN)
Problem 1Troubleshooting a WAN
Lab 6Understanding Traditional TCP Congestion Control (HTCP, Cubic, Reno)
Lab 7Understanding Rate-based TCP Congestion Control (BBR)
Lab 8Bandwidth-delay Product and TCP Buffer Size
Exercise 3Tuning TCP and Switch’s Buffer Size
Exercise 4Running tests with Competing TCP Flows and Different Congestion Control Algorithms
Lab 9Enhancing TCP Throughput with Parallel Streams
Exercise 5Enhancing the Aggregate TCP Throughput with Parallel Streams
Problem 2Enhancing TCP Throughput
Lab 10Measuring TCP Fairness
Exercise 6RTT Unfairness
Problem 3Minimizing the Unfairness
Lab 11Router's Buffer Size
Lab 12TCP Rate Control with Pacing
Exercise 7Setting the Pacing Rate
Lab 13Impact of MSS on Throughput
Lab 14Router's Bufferbloat
Exercise 8Router’s Bufferbloat
Lab 15Analyzing the Impact of Hardware Offloading on TCP Performance
Lab 16Random Early Detection
Lab 17Stochastic Fair Queueing
Lab 18Controlled Delay (CoDel) Active Queue Management
Lab 19Proportional Integral Controller-Enhanced (PIE)
Lab 20Classifying TCP traffic using Hierarchical Token Bucket (HTB)
Lab ManualsNTP Lab Series (PDF)

Virtual Labs on Network Management

The labs provide a hands-on experience on network management and monitoring tools and protocols. Topics include monitoring using NetFlow, sFlow, IPFIX, and visualization using Grafana.

Lab 1Introduction to Mininet
Lab 2Introduction to NetFlow
Lab 3Introduction to IPFIX
Lab 4Introduction to sFlow
Lab 5Collecting and processing NetFlow, IPFIX and sFlow data using Nfdump
Lab 6Filtering and formatting data using Nfdump
Lab 7Collecting and Visualizing sFlow data using GoFlow and Grafana
Lab 8Collecting and Visualizing NetFlow data using GoFlow and Grafana
Lab ManualsNetwork Management Series (PDF)

Virtual Labs on Software Defined Networking (SDN)

This lab series provides a detailed, hands-on experience to the new emerging networking paradigm, Software Defined Networking (SDN). The manual provides a thorough understanding for administering SDN networks using ONOS controller, demonstrating the available applications supported by ONOS, as well as leveraging their full capabilities.
Lab 1Introduction to Mininet
Lab 2Legacy Networks: BGP Example as a Distributed System and Autonomous Forwarding Decisions
Lab 3 Early efforts of SDN: MPLS Example of a Control Plane that Establishes Semi-static Forwarding Paths
Lab 4Introduction to SDN
Exercise 1SDN Network Configuration
Lab 5Configuring VXLAN to Provide Network Traffic Isolation
Exercise 2Configuring VXLAN
Lab 6Introduction to OpenFlow
Exercise 3OpenFlow Protocol Management
Lab 7Routing within an SDN network
Lab 8Interconnection between Legacy Networks and SDN Networks
Exercise 4 Incremental Deployment of SDN Networks within Legacy Networks
Lab 9Configuring Virtual Private LAN Service (VPLS)
Lab 10Applying Equal-cost Multi-path Protocol (ECMP) within SDN networks
Lab ManualsSDN Lab Series (PDF)

Virtual Labs on OSPF

This lab series is an introduction to the Open Shortest Path First (OSPF) routing protocol. The labs provide an overview of OSPF behavior and configuration through hands-on activities and exercises.
Lab 1Introduction to Mininet
Lab 2Introduction to FRR
Lab 3Configuring Single-Area OSPFv2
Lab 4Configuring Multi-Area OSPFv2
Exercise 1 Configuring Multi-Area OSPFv2
Lab 5Configuring OSPFv2 with Default Route
Lab 6OSPFv2 Virtual Link
Exercise 2 Configuring OSPFv2 Virtual Link
Lab 7OSPFv2 Authentication
Lab 8Setting OSPFv2 Route Cost
Lab 9Configuring Multi-Area OSPFv3
Exercise 3 Configuring Multi-Area OSPFv3
Lab 10Configuring Dual Stack OSPF Routing
Lab ManualsOpen Shortest Path First (OSPF) Lab Series (PDF)

Virtual Labs on Introduction to BGP

This lab series provides a detailed, hands-on experience to understand and configure Border Gateway Protocol (BGP), adjust its attributes, and control network traffic on the Internet.
Lab 1Introduction to Mininet
Lab 2Introduction to Free Range Routing (FRR)
Lab 3Introduction to BGP
Lab 4Configure and Verify EBGP
Exercise 1BGP Configuration
Lab 5BGP Authentication
Lab 6Configure BGP with Default Route
Lab 7Using AS_PATH BGP Attribute
Exercise 2Controlling Traffic using BGP AS_PATH Attribute
Lab 8Configuring IBGP and EBGP Sessions, Local Preference, and MED
Lab 8.1Configuring OSPF, IBGP and EBGP Sessions, Local Preference, and MED
Exercise 3Steering Traffic using BGP Local Preference Attribute
Lab 9IBGP, Next Hop and Full Mesh Topology
Lab 10BGP Route Reflection
Exercise 4BGP Next Hop Attribute and Route Reflection
Lab ManualsIntroduction to BGP Lab Series (PDF)

Virtual Labs on MPLS and Advanced BGP Topics

This lab series provides a detailed hands-on experience to understand advanced BGP features such as multiprotocol BGP. The labs also cover attacks that exploit BGP vulnerabilities such as BGP hijacking, IP spoofing, and their mitigation technique. Additionally, the lab series cover topics that include Label Distribution Protocol (LDP), Multiprotocol Label Switching (MPLS), Virtual Routing Forwarding (VRF), and Ethernet VPN.
Lab 1Configuring Multiprotocol BGP
Lab 2IP Spoofing and Mitigation Techniques
Lab 3BGP Hijacking
Lab 4Introduction to MPLS
Lab 5Label Distribution Protocol (LDP)
Lab 6Virtual Routing and Forwarding (VRF)
Lab 7MPLS Layer 3 VPN using MP-BGP
Lab 8Ethernet VPN (EVPN) using MP-BGP
Lab 9Introduction to Segment Routing over IPv6 (SRv6)
Exercise 1MPLS Layer 3 VPN using MP-BGP
Exercise 2Configuring Segment Routing over IPv6 (SRv6)
Lab ManualsMPLS and Advanced BGP Topics Lab Series (PDF)

Virtual Labs on Open Virtual Switch (OVS)

This lab series provides a detailed, hands-on experience to understand and configure Open Virtual Switch (OVS).
Lab 1Introduction to Linux Namespaces and Open vSwitch
Lab 2Introduction to Mininet
Lab 3Introduction to Open vSwitch
Lab 4Open vSwitch Flow Table
Exercise 1OpenFlow Basic Operations
Lab 5Implementing Routing in Open vSwitch
Lab 6Implementing Routing using Multiple Flow Tables
Exercise 2Implement Routing using Multiple Flow Tables
Lab 7Configuring Stateless Firewall using ACLs
Lab 8Configuring Stateful Firewall using Connection Tracking
Exercise 3Configuring Stateless and Stateful Firewalls in Open vSwitch
Lab 9Quality of Service (QoS)
Exercise 4Configuring Quality of Service (QoS)
Lab 10Open vSwitch Database Management Protocol (OVSDB)
Lab 11Open vSwitch Kernel Datapath
Lab 12Implementing Virtual Local Area Network (VLANs) in Open vSwitch
Lab 13VLAN trunking in Open vSwitch
Exercise 5 Configuring Virtual Local Area Network (VLAN)
Lab 14Configuring GRE Tunnel
Lab 15Configuring IPsec Tunnel
Lab ManualsOVS Lab Series (PDF)

Virtual Labs on perfSONAR

The perfSONAR labs provide hands-on lab experience using emulated multi-domain networks. Labs include configuration details required for accurate performance measurement, regular testing, monitoring and debugging using dashboard, limiting access and testing against perfSONAR nodes, web administration and others.
Lab 1Configuring Administrative Information Using perfSONAR Toolkit GUI
Lab 2PerfSONAR Metrics and Tools
Lab 3Configuring Regular Tests Using perfSONAR GUI
Lab 4Configuring Regular Tests Using pScheduler CLI Part I
Lab 5Configuring Regular Tests Using pScheduler CLI Part II
Lab 6Bandwidth-delay Product and TCP Buffer Size
Lab 7Configuring Regular Tests Using a pSConfig Template
Lab 8perfSONAR Monitoring and Debugging Dashboard
Lab 9pSConfig Web Administrator
Lab 10Configuring pScheduler Limits
Lab ManualsperfSONAR Lab Series (PDF)

Virtual Labs on Zeek/Bro

The Zeek / Bro labs provide hands-on lab experience on Bro Intrusion Detection System (IDS). Labs demonstrate Bro capabilities such as parsing Zeek files, capturing and analyzing network attacks such as scanner traffic, DoS and DDoS, and more.
Lab 1Introduction to the Capabilities of Zeek
Lab 2An Overview of Zeek Logs
Lab 3Parsing, Reading and Organizing Zeek Log Files
Lab 4Generating, Capturing and Analyzing Network Scanner Traffic
Lab 5Generating, Capturing and Analyzing DoS and DDoS-centric Network Traffic
Lab 6Introduction to Zeek Scripting
Lab 7Introduction to Zeek Signatures
Lab 8Advanced Zeek Scripting for Anomaly and Malicious Event Detection
Lab 9Profiling and Performance Metrics of Zeek
Lab 10Application of the Zeek IDS for Real-Time Network Protection
Lab 11Preprocessing of Zeek Output Logs for Machine Learning
Lab 12Developing Machine Learning Classifiers for Anomaly Inference and Classification
Lab ManualsZeek/Bro Lab Series (PDF)