Skip to content

Traffic Shaping Configuration

Dashboard Location: Security and SD-WAN > Configure > SD-WAN & Traffic Shaping

Network Traffic Management and Optimization

Section titled “Network Traffic Management and Optimization”

Traffic Shaping configuration in Meraki appliances provides administrators with comprehensive bandwidth management and quality of service capabilities, enabling intelligent traffic prioritization, application-aware bandwidth allocation, uplink optimization, and performance class management. This functionality supports enterprise network optimization, business-critical application prioritization, bandwidth utilization control, and network performance enhancement through granular traffic control policies and dynamic bandwidth allocation based on application requirements and network conditions.

Diagram

appliance (meraki.domains.organizations.networks)

Section titled “appliance (meraki.domains.organizations.networks)”
NameTypeConstraintMandatoryDefault Value
traffic_shapingClass[traffic_shaping]No

traffic_shaping (meraki.domains.organizations.networks.appliance)

Section titled “traffic_shaping (meraki.domains.organizations.networks.appliance)”
NameTypeConstraintMandatoryDefault Value
global_bandwidth_limitsClass[global_bandwidth_limits]No
custom_performance_classesList[custom_performance_classes]No
rulesClass[rules]No
uplink_bandwidth_limitsClass[uplink_bandwidth_limits]No
uplink_selectionClass[uplink_selection]No
vpn_exclusionsClass[vpn_exclusions]No

global_bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping)

Section titled “global_bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
limit_upIntegermin: 0, max: 1000000No
limit_downIntegermin: 0, max: 1000000No

custom_performance_classes (meraki.domains.organizations.networks.appliance.traffic_shaping)

Section titled “custom_performance_classes (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
nameStringmin: 1, max: 127No
max_latencyIntegermin: 1, max: 1000No
max_jitterIntegermin: 1, max: 1000No
max_loss_percentageIntegermin: 1, max: 100No

rules (meraki.domains.organizations.networks.appliance.traffic_shaping)

Section titled “rules (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
rulesList[rules]No
default_rulesBooleantrue, falseNo

Section titled “uplink_bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
wan1Class[wan1]No
wan2Class[wan2]No
cellularClass[cellular]No

Section titled “uplink_selection (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
default_uplinkChoicewan1, wan2No
wan_traffic_uplink_preferencesList[wan_traffic_uplink_preferences]No
vpn_traffic_uplink_preferencesList[vpn_traffic_uplink_preferences]No
active_active_auto_vpnBooleantrue, falseNo
load_balancingBooleantrue, falseNo
failover_and_failback_immediateBooleantrue, falseNo

vpn_exclusions (meraki.domains.organizations.networks.appliance.traffic_shaping)

Section titled “vpn_exclusions (meraki.domains.organizations.networks.appliance.traffic_shaping)”
NameTypeConstraintMandatoryDefault Value
customList[custom]No
major_applicationsListString[min: 1, max: 127]Yes

rules (meraki.domains.organizations.networks.appliance.traffic_shaping.rules)

Section titled “rules (meraki.domains.organizations.networks.appliance.traffic_shaping.rules)”
NameTypeConstraintMandatoryDefault Value
nameStringmin: 1, max: 127Yes
definitionsList[definitions]Yes
per_client_bandwidth_limitsClass[per_client_bandwidth_limits]No
dscp_tag_valueIntegermin: 0, max: 63No
priorityChoicelow, normal, highNo

Section titled “wan1 (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_bandwidth_limits)”
NameTypeConstraintMandatoryDefault Value
limit_upIntegermin: 0, max: 1000000No
limit_downIntegermin: 0, max: 1000000No

Section titled “wan2 (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_bandwidth_limits)”
NameTypeConstraintMandatoryDefault Value
limit_upIntegermin: 0, max: 1000000No
limit_downIntegermin: 0, max: 1000000No

Section titled “cellular (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_bandwidth_limits)”
NameTypeConstraintMandatoryDefault Value
limit_upIntegermin: 0, max: 1000000No
limit_downIntegermin: 0, max: 1000000No

Section titled “wan_traffic_uplink_preferences (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection)”
NameTypeConstraintMandatoryDefault Value
nameStringmin: 1, max: 127Yes
traffic_filtersList[traffic_filters]Yes
preferred_uplinkChoicewan1, wan2Yes

Section titled “vpn_traffic_uplink_preferences (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection)”
NameTypeConstraintMandatoryDefault Value
nameStringmin: 1, max: 127Yes
traffic_filtersList[traffic_filters]Yes
preferred_uplinkChoicebestForVoIP, defaultUplink, loadBalancing, wan1, wan2Yes
fail_over_criterionChoicepoorPerformance, uplinkDownNo
performance_classClass[performance_class]No

custom (meraki.domains.organizations.networks.appliance.traffic_shaping.vpn_exclusions)

Section titled “custom (meraki.domains.organizations.networks.appliance.traffic_shaping.vpn_exclusions)”
NameTypeConstraintMandatoryDefault Value
protocolChoiceany, dns, icmp, tcp, udpYes
destinationAnyString[matches: ^(([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])\.)+[a-zA-Z]{2,}$] or IPNo
portAnyInteger[min: 1, max: 65535] or String[matches: `(?:[1-9][0-9]3[1-5][0-9]46[0-4][0-9]3

definitions (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules)

Section titled “definitions (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules)”
NameTypeConstraintMandatoryDefault Value
typeChoiceapplication, applicationCategory, host, ipRange, localNet, portYes
valueStringmin: 1, max: 127Yes

per_client_bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules)

Section titled “per_client_bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules)”
NameTypeConstraintMandatoryDefault Value
settingsChoicenetwork default, ignore, customNo
bandwidth_limitsClass[bandwidth_limits]No

Section titled “traffic_filters (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.wan_traffic_uplink_preferences)”
NameTypeConstraintMandatoryDefault Value
typeChoicecustomYes
valueClass[value]Yes

Section titled “traffic_filters (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.vpn_traffic_uplink_preferences)”
NameTypeConstraintMandatoryDefault Value
typeChoiceapplication, applicationCategory, customYes
valueClass[value]Yes

Section titled “performance_class (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.vpn_traffic_uplink_preferences)”
NameTypeConstraintMandatoryDefault Value
typeChoicebuiltin, customYes
builtin_performance_class_nameChoiceVoIPNo
custom_performance_class_nameStringNo

bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules.per_client_bandwidth_limits)

Section titled “bandwidth_limits (meraki.domains.organizations.networks.appliance.traffic_shaping.rules.rules.per_client_bandwidth_limits)”
NameTypeConstraintMandatoryDefault Value
limit_upIntegermin: 0, max: 1000000No
limit_downIntegermin: 0, max: 1000000No

Section titled “value (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.wan_traffic_uplink_preferences.traffic_filters)”
NameTypeConstraintMandatoryDefault Value
protocolChoiceany, icmp6, tcp, udpNo
sourceClass[source]Yes
destinationClass[destination]Yes

Section titled “value (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.vpn_traffic_uplink_preferences.traffic_filters)”
NameTypeConstraintMandatoryDefault Value
idStringmin: 1, max: 127No
protocolChoiceany, icmp, icmp6, tcp, udpNo
sourceClass[source]No
destinationClass[destination]No

Section titled “source (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.wan_traffic_uplink_preferences.traffic_filters.value)”
NameTypeConstraintMandatoryDefault Value
portAnyInteger[min: 0, max: 65535] or String[matches: `(?:[1-9][0-9]3[1-5][0-9]46[0-4][0-9]3
cidrStringRegex: ^(?i:any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?)(,(any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?))*$No
vlanAnyInteger[min: 1, max: 4094] or String[matches: `(?:[1-9][1-9][0-9][1-9][0-9]2
hostIntegermin: 1, max: 254No

Section titled “destination (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.wan_traffic_uplink_preferences.traffic_filters.value)”
NameTypeConstraintMandatoryDefault Value
portAnyInteger[min: 0, max: 65535] or String[matches: `(?:[1-9][0-9]3[1-5][0-9]46[0-4][0-9]3
cidrStringRegex: ^(?i:any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?)(,(any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?))*$No

Section titled “source (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.vpn_traffic_uplink_preferences.traffic_filters.value)”
NameTypeConstraintMandatoryDefault Value
portAnyInteger[min: 0, max: 65535] or String[matches: `(?:[1-9][0-9]3[1-5][0-9]46[0-4][0-9]3
cidrStringRegex: ^(?i:any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?)(,(any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?))*$No
networkStringmin: 1, max: 127No
vlanAnyInteger[min: 1, max: 4094] or String[matches: `(?:[1-9][1-9][0-9][1-9][0-9]2
hostIntegermin: 1, max: 254No

Section titled “destination (meraki.domains.organizations.networks.appliance.traffic_shaping.uplink_selection.vpn_traffic_uplink_preferences.traffic_filters.value)”
NameTypeConstraintMandatoryDefault Value
portAnyInteger[min: 0, max: 65535] or String[matches: `(?:[1-9][0-9]3[1-5][0-9]46[0-4][0-9]3
cidrStringRegex: ^(?i:any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?)(,(any|(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?))*$No
networkStringmin: 1, max: 127No
vlanAnyInteger[min: 1, max: 4094] or String[matches: `(?:[1-9][1-9][0-9][1-9][0-9]2
hostIntegermin: 1, max: 254No
fqdnStringmin: 1, max: 1024No

Example-1: Basic traffic shaping with bandwidth limits and application-based rules. Note that wan_traffic_uplink_preferences should not be used together with sdwan_internet_policies as they share the same API data and can override each other.

meraki:
domains:
- name: !env domain
administrator:
name: !env org_admin
organizations:
- name: !env org
networks:
- name: !env network_name
product_types:
- appliance
- camera
- switch
- wireless
- cellularGateway
appliance:
traffic_shaping:
global_bandwidth_limits:
limit_up: 10000
limit_down: 10000
custom_performance_classes:
- name: Radius
max_latency: 30
max_jitter: 30
max_loss_percentage: 5
rules:
default_rules: false
rules:
- name: Rule 01
definitions:
- type: applicationCategory
value: "meraki:layer7/category/24"
- type: application
value: meraki:layer7/application/332
- type: application
value: meraki:layer7/application/2249
- type: application
value: meraki:layer7/application/351
- type: application
value: meraki:layer7/application/2248
- type: application
value: meraki:layer7/application/2542
per_client_bandwidth_limits:
settings: custom
bandwidth_limits:
limit_up: 1000
limit_down: 1000
dscp_tag_value: 18
priority: high
- name: Rule 02
definitions:
- type: applicationCategory
value: "meraki:layer7/category/24"
- type: application
value: meraki:layer7/application/332
per_client_bandwidth_limits:
settings: ignore
dscp_tag_value: 18
priority: high
- name: Rule 03
definitions:
- type: host
value: google.com
- type: ipRange
value: 158.43.128.0/24
- type: localNet
value: 192.168.0.0/16
- type: port
value: "161"
per_client_bandwidth_limits:
settings: custom
bandwidth_limits:
limit_up: 1000
limit_down: 1000
dscp_tag_value: 18
priority: high
uplink_bandwidth_limits:
wan1:
limit_up: 700000
limit_down: 700000
wan2:
limit_up: 700000
limit_down: 700000
uplink_selection:
default_uplink: wan1
active_active_auto_vpn: true
load_balancing: true
failover_and_failback_immediate: true

Example-2: VPN traffic steering configuration with application-aware routing and performance classes for optimizing VPN traffic flow across different uplinks.

meraki:
domains:
- name: !env domain
administrator:
name: !env org_admin
organizations:
- name: !env org
networks:
- name: !env network_name
product_types:
- appliance
- camera
- switch
- wireless
- cellularGateway
appliance:
traffic_shaping:
custom_performance_classes:
- name: Radius
max_latency: 30
max_jitter: 30
max_loss_percentage: 5
uplink_selection:
default_uplink: wan1
vpn_traffic_uplink_preferences:
- name: policy 1
preferred_uplink: wan1
traffic_filters:
- type: application
value:
id: meraki:layer7/application/375
- type: "custom"
value:
protocol: any
source:
port: any
cidr: any
destination:
port: any
cidr: any
fail_over_criterion: poorPerformance
performance_class:
type: builtin
builtin_performance_class_name: VoIP
- name: policy 2
preferred_uplink: wan1
traffic_filters:
- type: application
value:
id: meraki:layer7/application/4
- type: "custom"
value:
protocol: any
source:
port: any
cidr: any
destination:
port: any
cidr: any
fail_over_criterion: poorPerformance
performance_class:
type: builtin
builtin_performance_class_name: VoIP
- name: policy 3
preferred_uplink: wan2
traffic_filters:
- type: applicationCategory
value:
id: meraki:layer7/category/3
- type: "custom"
value:
protocol: any
source:
port: any
cidr: any
destination:
port: any
cidr: any
fail_over_criterion: poorPerformance
performance_class:
type: custom
custom_performance_class_name: Radius

Example-3: Spoke VPN exclusions configuration for hub-and-spoke topologies. This allows specific applications to bypass the VPN tunnel and go directly to the internet, reducing latency for cloud services while maintaining security for internal traffic. Please note this can only be utilised with spoke networks.

meraki:
domains:
- name: !env domain
administrator:
name: !env org_admin
organizations:
- name: !env org
networks:
- name: !env network_name
product_types:
- appliance
- camera
- switch
- wireless
- cellularGateway
appliance:
traffic_shaping:
vpn_exclusions:
custom:
- name: VPN Exclusion 01
protocol: tcp
destination: zoom.us
port: 443
- name: VPN Exclusion 02
protocol: tcp
destination: office365.com
port: 443
major_applications:
- Zoom
- Webex