Implementing QoS in Juniper SRX 210
There are a lot of implementing QOS scenarios and I won't tell you about all. Depending on configuration we can apply different types of classifiers, policing, simple filters and so on. I just wanna show you the config for SRX 210 when it's required to prioritize voice over data traffic and due to configuration there is no possibility to apply MF classifiers, filters, policers.
Forwarding Classes
Step 1: Define egress queues for voice, data, best-effort, network-control:
root# set class-of-service forwarding-classes queue 0 voice-class
root# set class-of-service forwarding-classes queue 1 data-class
root# set class-of-service forwarding-classes queue 2 best-effort
root# set class-of-service forwarding-classes queue 3 network-control
Classification BA Classifiers
Step 1: Enter into COS classifiers hierarchy, and create classification profile based on DSCP:
root# edit class-of-service classifiers dscp traffic_classifiers
Step 2: Import default code-points defined by SRX to avoid defining all QoS code-points:
root# set import default
Step 3: Assign forwarding classes to a packet loss priority and DSCP code-points:
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000001
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000010
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000011
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000100
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000101
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000110
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000111
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001000
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001001
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001011
set class-of-service classifiers dscp traffic_classifiers forwarding-class data-class loss-priority high code-points 101110
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class network-control loss-priority low code-points 111000
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class network-control loss-priority low code-points 110000
Scheduling
Step 1: Create scheduler profile for network-control, voice, data, and best-effort. Buffer size, queue priority and transmit-rate can be defined within each profile:
root# set class-of-service schedulers nc_scheduler shaping-rate 1m
root# set class-of-service schedulers nc_scheduler buffer-size percent 5
root# set class-of-service schedulers nc_scheduler priority strict-high
root# set class-of-service schedulers voice_scheduler shaping-rate 1m
root# set class-of-service schedulers voice_scheduler buffer-size percent 5
root# set class-of-service schedulers voice_scheduler priority strict-high
root# set class-of-service schedulers data_scheduler transmit-rate percent 15
root# set class-of-service schedulers data_scheduler buffer-size percent 35
root# set class-of-service schedulers data_scheduler priority low
root# set class-of-service schedulers be_scheduler transmit-rate remainder
Step 2: Create an access and uplink scheduler-map profile, apply the scheduler to the appropriate egress queue:
root# set class-of-service scheduler-maps access_scheduler forwarding-class voice-class scheduler voice_scheduler
root# set class-of-service scheduler-maps access_scheduler forwarding-class data-class scheduler data_scheduler
root# set class-of-service scheduler-maps access_scheduler forwarding-class best-effort scheduler be_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class voice-class scheduler voice_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class data-class scheduler data_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class best-effort scheduler be_scheduler
Step 3: Apply the classifier profile and scheduler map profile to an interface. This should be done on both user-facing and uplink ports:
root# set class-of-service interfaces fe-0/0/2 scheduler-map access_scheduler
root# set class-of-service interfaces fe-0/0/2 unit 0 classifiers dscp traffic_classifiers
root# set class-of-service interfaces fe-0/0/3 scheduler-map uplink_scheduler
root# set class-of-service interfaces fe-0/0/3 unit 0 classifiers dscp traffic_classifiers
Forwarding Classes
Step 1: Define egress queues for voice, data, best-effort, network-control:
root# set class-of-service forwarding-classes queue 0 voice-class
root# set class-of-service forwarding-classes queue 1 data-class
root# set class-of-service forwarding-classes queue 2 best-effort
root# set class-of-service forwarding-classes queue 3 network-control
Classification BA Classifiers
Step 1: Enter into COS classifiers hierarchy, and create classification profile based on DSCP:
root# edit class-of-service classifiers dscp traffic_classifiers
Step 2: Import default code-points defined by SRX to avoid defining all QoS code-points:
root# set import default
Step 3: Assign forwarding classes to a packet loss priority and DSCP code-points:
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000001
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000010
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000011
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000100
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000101
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000110
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 000111
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001000
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001001
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class voice-class loss-priority low code-points 001011
set class-of-service classifiers dscp traffic_classifiers forwarding-class data-class loss-priority high code-points 101110
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class network-control loss-priority low code-points 111000
root# set class-of-service classifiers dscp traffic_classifiers forwarding-class network-control loss-priority low code-points 110000
Scheduling
Step 1: Create scheduler profile for network-control, voice, data, and best-effort. Buffer size, queue priority and transmit-rate can be defined within each profile:
root# set class-of-service schedulers nc_scheduler shaping-rate 1m
root# set class-of-service schedulers nc_scheduler buffer-size percent 5
root# set class-of-service schedulers nc_scheduler priority strict-high
root# set class-of-service schedulers voice_scheduler shaping-rate 1m
root# set class-of-service schedulers voice_scheduler buffer-size percent 5
root# set class-of-service schedulers voice_scheduler priority strict-high
root# set class-of-service schedulers data_scheduler transmit-rate percent 15
root# set class-of-service schedulers data_scheduler buffer-size percent 35
root# set class-of-service schedulers data_scheduler priority low
root# set class-of-service schedulers be_scheduler transmit-rate remainder
Step 2: Create an access and uplink scheduler-map profile, apply the scheduler to the appropriate egress queue:
root# set class-of-service scheduler-maps access_scheduler forwarding-class voice-class scheduler voice_scheduler
root# set class-of-service scheduler-maps access_scheduler forwarding-class data-class scheduler data_scheduler
root# set class-of-service scheduler-maps access_scheduler forwarding-class best-effort scheduler be_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class voice-class scheduler voice_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class data-class scheduler data_scheduler
root# set class-of-service scheduler-maps uplink_scheduler forwarding-class best-effort scheduler be_scheduler
Step 3: Apply the classifier profile and scheduler map profile to an interface. This should be done on both user-facing and uplink ports:
root# set class-of-service interfaces fe-0/0/2 scheduler-map access_scheduler
root# set class-of-service interfaces fe-0/0/2 unit 0 classifiers dscp traffic_classifiers
root# set class-of-service interfaces fe-0/0/3 scheduler-map uplink_scheduler
root# set class-of-service interfaces fe-0/0/3 unit 0 classifiers dscp traffic_classifiers
Comments