Traffic Jam, a "Swiss Army Knife" Lab Tool in the ATC
In this ATC Insight
Summary
Traffic Jam has evolved over the years and it not only is an impairment generator, but it can be a utility used in lab environments to enable services. These services can be deployed quickly, and are quite scalable as there are no licensing or cumbersome setups required. Traffic Jam was built with open source components.
In this ATC Insight, we explore what it can do in terms of its features and what's under the hood to make it go. We also look at the tool's physical and logical design. Traffic Jam is also very scalable in terms of where it can be deployed and we discuss this as well. Finally, we look at some of the use cases we have used Traffic Jam in for countless lab efforts by the ATC Lab Services team over the years.
ATC Insight
Traffic Jam can be deployed a router or service in just about any place in an environment. When designing your topology think of how you want to position it.
In the example below, we need Traffic Jam to serve as a WAN router to route packets from point A to point B. The below diagrams depict how Traffic Jam could be inserted into a topology. In this topology we have Traffic Jam inserted between two switches and traffic routing from one switch to the other must traverse Traffic Jam. We also have a connection to the ATC, this is typically for management but can also be used as a routed interface so that external resources can access networks that reside behind Traffic Jam.
Physical Design
Traffic Jam is running on a compute host that has ESXi installed. Connected to the compute host is the lab infrastructure and the ATC infrastructure. The ESXi vSwitches provide the connectivity to integrate the physical infrastructure with the virtual infrastructure.
In this example a Cisco Catalyst 9500 switch (named ISP) is used to interconnect the lab infrastructure to Traffic Jam on the compute host. This switch is layer 2 only and VLANs are used to logically connect the infrastructure.
Logical Design
Logically Traffic Jam appears to be directly connected to the lab infrastructure and to the ATC infrastructure. In this example Traffic Jam is BGP peering with the Cisco Catalyst 9300 switches that are to the north and south of it. For management purposes and to potentially provide connectivity to external resources Traffic Jam has an interface on an ATC network and a default route pointing towards the ATC.
Features of ATC Traffic Jam (What it Can Provide You)
User Interfaces
- Web UI (with support for dark mode)
- REST API
- CLI
Interface Types
- Ethernet
- 802.1q VLAN
- Bridge
- Loopback
Route Filtering
- Prefix Lists
Routing Protocols
- BGP (out of the box)
- EIGRP
- ISIS
- OSPF
- Static (out of the box)
Routing Segmentation
- VRF
Overlays
- GRE
- VXLAN
- EVPN (Centralized Routing Model)
Services
- DHCP Server
- DNS Server
- Impairments (bidirectional)
- Delay
- Jitter
- Loss
- Duplication
- Corruption
- Reorder
- By Destination Network
- By Destination Port
- By Source Network
- By Source Port
- NAT
- Destination
- 1-to-1
- Port Forward
- Source
- 1-to-1
- Masquerade (aka Overload)
- Destination
Under The Hood
These are the components that make Traffic Jam go!

OS: Ubuntu 18.04
REST API: Flask
Web UI: Vue
IP Routing Protocol Suite: FRRouting
Impairment: tcconfig
Realtime Performance Monitoring: netdata
Deployment Options
Traffic Jam is highly scalable and can be deployed on several common platforms. Here are the most common platform options that Traffic Jam can be deployed on today:
- ESXi 5.5-6.0
- ESXi 6.5-6.7
- vCenter
- vCloud
- Vagrant
- EVEng
Specific ATC Lab Services Use Cases we have used Traffic Jam for
- SD-WAN Lab Use Case
- Traffic Impairment in order to test true "Brownout" conditions that negatively impact circuit and path performance
- Traffic Impairments to test Forward Error Correction or "FEC" abilities when connectivity is not optimal and Mean Opinion Score is evaluated
- Ability to see failover and specific traffic traverse specific interfaces via Traffic Jam Dashboards
- Proximity or Delay Use Case
- Traffic Jam can be used to mimic the delay parameters between sites and data centers to better represent real distance scenarios for tests
- NAT
- We have used Traffic Jam in labs when we need to do Network Address Translation to connect our lab sandbox to the Internet where true or live SaaS applications need to be accessed
- 0365 connectivity from a branch in our lab
- Testing direct internet drains with content filtering solutions like ZScaler
- Allows for cloud connectivity for labs containing management and orchestration tools sourced in the cloud
- VRF
- We have used VRF feature in Traffic Jam when we need to simulate end-to-end segmentation much like MPLS in some of our labs
- Routing Protocols
- Most often, the labs we create have used BGP as the main routing protocol of choice, especially when Traffic Jam is deployed as a WAN specific router. We have used ISIS in the past as well.
- Interface Types
- The most often used interface type for Traffic Jam consumption in the lab is Ethernet. We normally do not get requests to run in a Bridge or 802.1q VLAN scenario.
Test Plan
This is a quick depiction of the Traffic Jam Testing Tool from the Dashboard Look built on open source tool Netdata.
Configuring the ATC Traffic Jam testing tool is very easy. The management pane on the left side of the dashboard does it all.
All of the features discussed earlier in this ATC Insight are configured in this management pane. Everything from interface configuration, VRF configuration, IP addressing, Route advertisement, and Service creation like DHCP or DNS Server are covered in this management section.