Support Support Downloads Knowledge Base Juniper Support Portal Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

[QFX] Example: Correct hashing of GTP traffic across aggregated links



Article ID: KB32647 KB Last Updated: 20 Jul 2018Version: 1.0

Regular Juniper hashing is per flow, which is traffic with the same source and destination IP address and port. Although GPRS tunneling protocol (GTP) or General Packet Radio Service (GPRS) traffic uses the same source and destination IP address and the same source and destination port information, it needs to be hashed across multiple links so that the aggregated links are used and traffic is distributed intelligently.

This article explains how to hash GTP or GPRS traffic across multiple links.



If hashing for GTP (GPRS) traffic is not performed correctly, traffic may be impacted because it will pass through just one link in the aggregated bundle.



Normal hashing is based on source and destination addresses and source and destination ports. If these are the same, this is considered to be one “flow” and traffic is sent across just one link in the bundle. For more information about hashing, refer to KB22943 - Hashing algorithm for link aggregation groups (LAGs) on EX Series switches.

GTP (GPRS) traffic, however, needs to be based on the tunnel ID that is part of the GTP (GPRS) header. This tunnel can be located anywhere within the header. Therefore, setting the header offset helps determine the correct tunnel ID. For more information, see GPRS Tunneling Protocol (GTP) Overview.



Most traffic has the GTP header offset (or "flags" within the GPRS tunneling protocol) set to 50 or 0x32. However, if your traffic is set differently, the following command would be required to direct the traffic to the appropriate tunnel ID:

set forwarding-options enhanced-hash-key family inet gtp-tunnel-endpoint-identifier
set forwarding-options enhanced-hash-key hash-mode gtp-header-offset 

In the following example, the GTP header offset is being set to 48.

GPRS Tunneling Protocol

  Flags: 0x30                               <<<<<<<<<<<<< = 48
        001. .... = Version: GTP release 99 version (1)
        ...1 .... = Protocol type: GTP (1)
        .... 0... = Reserved: 0
        .... .0.. = Is Next Extension Header present?: No
        .... ..0. = Is Sequence Number present?: No
        .... ...0 = Is N-PDU number present?: No
    Message Type: Echo request (0x01)
    Length: 70
    TEID: 0x11111111
    Unknown extension header
        [Expert Info (Warning/Protocol): Unknown extension header]
            [Unknown extension header]
            [Severity level: Warning]
            [Group: Protocol]

To set the required GTP header offset:

set forwarding-options enhanced-hash-key hash-mode gtp-header-offset 48

This knob is available for Junos OS releases 14.1X53-D47, 15.1X53-D234, 17.3R3, and 17.4R2.


Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search