Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Example: Limiting Egress Traffic on an Interface Using Port Shaping for CoS

date_range 19-Feb-21

This example shows how using port shaping as a form of class of service (CoS) enables you to limit traffic on an interface, so that you can control the amount of traffic passing through the interface.

Requirements

To verify this procedure, this example uses a traffic generator. The traffic generator can be hardware-based or it can be software running on a server or host machine.

The functionality in this procedure is widely supported on devices that run Junos OS. The example shown here was tested and verified on MX Series routers running Junos OS Release 10.4.

Overview

The purpose of this example is to demonstrate how port shaping enables you to shape the traffic passing through an interface to a rate that is less than the line rate for that interface. When you configure port shaping on an interface, you are essentially specifying a value that indicates the maximum amount of traffic that can pass through the interface. This value must be less than the maximum bandwidth for that interface. When you configure port shaping, you can specify either the maximum rate at which traffic can pass through the interface or as a percentage of the bandwidth of the interface.

In this example the port shaping is done on Device R1. The information required for implementing port shaping on Device R2 is not included in this example. However, you can use the port shaping information in Device R1 (making changes for the interfaces used) and apply it to Device R2 to achieve port shaping on Device R2.

Topology

This example uses the topology in Figure 1.

Figure 1: Port Shaping ScenarioPort Shaping Scenario

Configuration

Procedure

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Device R1 Using Only Class of Service

content_copy zoom_out_map
set interfaces ge-2/0/5 description to-Host
set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30
set interfaces ge-2/0/8 description to-R2
set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30
set interfaces lo0 unit 0 description looback-interface
set interfaces lo0 unit 0 family inet address 192.168.13.1/32
set class-of-service interfaces ge-2/0/8 shaping-rate 160k
set protocols ospf area 0.0.0.0 interface ge-2/0/5.0 passive
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-2/0/8.0

Device R1 Using Traffic Control Profiles and Class of Service

content_copy zoom_out_map
set interfaces ge-2/0/5 description to-Host
set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30
set interfaces ge-2/0/8 description to-R2
set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30
set interfaces lo0 unit 0 description looback-interface
set interfaces lo0 unit 0 family inet address 192.168.13.1/32
set class-of-service traffic-control-profiles output shaping-rate 160k
set class-of-service traffic-control-profiles output shaping-rate burst-size 30k
set class-of-service interfaces ge-2/0/8 output-traffic-control-profile output
set protocols ospf area 0.0.0.0 interface ge-2/0/5.0 passive
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-2/0/8.0

Device R2

content_copy zoom_out_map
set interfaces ge-2/0/7 description to-Host
set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.2/30
set interfaces ge-2/0/8 description to-R1
set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.2/30
set interfaces lo0 unit 0 description looback-interface
set interfaces lo0 unit 0 family inet address 192.168.14.1/32
set protocols ospf area 0.0.0.0 interface ge-2/0/7.0 passive
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-2/0/8.0

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For instructions on how to do that, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

You can configure port shaping on network interfaces, aggregated Ethernet interfaces (also known as link aggregation groups (LAGs)), and loopback interfaces.

To configure Device R1:

  1. Configure the device interfaces.

    content_copy zoom_out_map
    [edit]
    user@R1# set interfaces ge-2/0/5 description to-Host
    user@R1# set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30
    user@R1# set interfaces ge-2/0/8 description to-R2
    user@R1# set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30
    user@R1# set interfaces lo0 unit 0 description looback-interface
    user@R1# set interfaces lo0 unit 0 family inet address 192.168.13.1/32
    
  2. Configure port shaping using only class of service.

    content_copy zoom_out_map
    [edit]
    user@R1# set class-of-service interfaces ge-2/0/8 shaping-rate 160k
    
  3. Configure port shaping using traffic control profiles and class of service.

    Note:

    If you configure a fixed shaping rate, you can configure an optional burst size in bytes. If you configure the shaping rate as a percentage, the burst-size option is not allowed.

    content_copy zoom_out_map
    [edit]
    user@R1# set class-of-service traffic-control-profiles output shaping-rate 160k
    user@R1# set class-of-service traffic-control-profiles output shaping-rate burst-size 30k
    user@R1# set class-of-service interfaces ge-2/0/8 output-traffic-control-profile output
    
  4. Configure OSPF.

    content_copy zoom_out_map
    [edit]
    user@R1# set protocols ospf area 0.0.0.0 interface ge-2/0/5.0 passive
    user@R1# set protocols ospf area 0.0.0.0 interface lo0.0 passive
    user@R1# set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
    

Step-by-Step Procedure

To configure Device R2:

  1. Configure the device interfaces.

    content_copy zoom_out_map
    [edit interfaces]
    set interfaces ge-2/0/7 description to-Host
    set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.2/30
    set interfaces ge-2/0/8 description to-R1
    set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.2/30
    set interfaces lo0 unit 0 description looback-interface
    set interfaces lo0 unit 0 family inet address 192.168.14.1/32
    
  2. Configure OSPF.

    content_copy zoom_out_map
    [edit ]
    user@R1# set protocols ospf area 0.0.0.0 interface ge-2/0/7.0 passive
    user@R1# set protocols ospf area 0.0.0.0 interface lo0.0 passive
    user@R1# set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
    

Results

From configuration mode, confirm your configuration by entering the show interfaces , show class-of-service, and show protocols ospf commands. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

Results for R1

content_copy zoom_out_map
user@R1# show interfaces
ge-2/0/5 {
    description to-Host;
    unit 0 {
        family inet {
            address 172.16.70.2/30;
        }
    }
}
ge-2/0/8 {
    description to-R2;
    unit 0 {
        family inet {
            address 10.50.0.1/30;
        }
    }
}
lo0 {
    unit 0 {
        description looback-interface;
        family inet {
            address 192.168.13.1/32;
        }
    }
}

Configuring Port Shaping Using only Class-of-Service

content_copy zoom_out_map
user@R1# show class-of-service
interfaces {
    ge-2/0/8 {
        shaping-rate 160k;
    }
}

Configuring Port Shaping Using Traffic Control Profiles and Class of Service

content_copy zoom_out_map
user@R1# show class-of-service
traffic-control-profiles {
    output {
        shaping-rate 160k burst-size 30k;
    }
}
interfaces {
    ge-2/0/8 {
        output-traffic-control-profile output;
    }
}
content_copy zoom_out_map
user@R1# show protocols ospf
area 0.0.0.0 {
    interface ge-2/0/5.0 {
        passive;
    }
    interface lo0.0 {
        passive;
    }
    interface ge-2/0/8.0;
}

If you are done configuring Device R1, enter commit from configuration mode.

Results for R2

content_copy zoom_out_map
user@R2# show interfaces
ge-2/0/7 {
    description to-Host;
    unit 0 {
        family inet {
            address 172.16.80.2/30;
        }
    }
}
ge-2/0/8 {
    description to-R1;
    unit 0 {
        family inet {
            address 10.50.0.2/30;
        }
    }
}
lo0 {
    unit 0 {
        description looback-interface;
        family inet {
            address 192.168.14.1/32;
        }
    }
}
content_copy zoom_out_map
user@R2# show protocols ospf
area 0.0.0.0 {
    interface ge-2/0/7.0 {
        passive;
    }
    interface lo0.0 {
        passive;
    }
    interface ge-2/0/8.0;
}

If you are done configuring Device R2, enter commit from configuration mode.

Verification

Confirm that the configuration is working properly.

Clearing the Counters

Purpose

Confirm that the interface counters are cleared.

Action

On Device R1, run the clear interfaces statistics ge-2/0/8 command to reset the interface statistics to 0.

content_copy zoom_out_map
user@R1> clear interfaces statistics ge-2/0/8

Sending TCP Traffic into the Network and Monitoring the Port Shaping

Purpose

Make sure that the traffic is rate-limited on the output interface (ge-2/0/8) on Device R1 by sending traffic into the network using the host connected to Device R1.

Action

  1. Use a traffic generator to send several continuous streams of TCP packets with a source port of 80.

    The -s flag sets the source port. The -k flag causes the source port to remain steady at 80 instead of incrementing. The -d flag sets the packet size. The -c flag sets the packet count to be sent.

    The destination IP address of 172.16.80.1 represents a user that is downstream of Device R2. The user has requested a webpage from the host (the webserver emulated by the traffic generator), and the packets are sent in response to the request.

    Note:

    Remember in this example the port shaping has been set to 160 Kbps.

    content_copy zoom_out_map
    [user@host]#  hping 172.16.80.1 -s 80 -k -d 1500 -c 20 &
     hping 172.16.80.1 -s 80 -k -d 1500 -c 20 &
    .
    .
    .
  2. On Device R1, check the interface counters by using the show interfaces extensive ge-2/0/8 command.

    content_copy zoom_out_map
    user@R1> show interfaces extensive ge-2/0/8
      Queue counters:       Queued packets  Transmitted packets      Dropped packets
        0                            17244                 3741            13470
        1                               13                   13                0
        2                                0                    0                0
        3                           149363               149363                0
      Queue number:         Mapped forwarding classes
        0                   best-effort
        1                   expedited-forwarding
        2                   assured-forwarding
        3                   network-control

Meaning

In the output you can see that 13470 packets have been dropped. These are the packets that exceeded the 160 Kbps shaping rate configured on ge-2/0/8.

footer-navigation