Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation

Understanding High-End SRX Series Devices Architecture and Flow Processing

This topic introduces the architecture for the high-end SRX Series devices and uses it as a model to explain IP version 6 (IPv6) processing. Flow processing is similar on branch SRX Series and J Series devices

High-end SRX Series Services Gateway devices include I/O cards (IOCs) and Services Processing Cards (SPCs) that each contain processing units that process a packet as it traverses the device. These processing units have different responsibilities.

  • A Network Processing Unit (NPU) runs on an IOC. An IOC has one or more NPUs. An NPU processes packets discretely and performs basic flow management functions.

    When an IPv6 packet arrives at an IOC, the packet flow process begins.

    • The NPU performs the following IPv6 sanity checks for the packet:
      • For the IPv6 basic header, it performs the following header checks:
        • Version. It verifies that the header specifies IPv6 for the version.
        • Payload length. It checks the payload length to ensure that the combined length of the IPv6 packet and the Layer 2 header is shorter than the Layer 2 frame length.
        • Hop limit. It checks to ensure that the hop limit does not specify 0 (zero).
        • Address checks. It checks to ensure that the source IP address does not specify ::0 or FF::00 and that the destination IP address does not specify ::0 or ::1.
      • The NPU performs IPv6 extension header checks, including the following:
        • Hop-by-hop options. It verifies that this is the first extension header to follow the IPv6 basic header.
        • Routing extension. It verifies that there is only one routing extension header.
        • Destination options. It verifies that no more than two destination options extension headers are included.
        • Fragment. It verifies that there is only one fragment header.

        Note: The NPU treats any other extension header as a Layer 4 header.

      • The NPU performs Layer 4 TCP, UDP, and ICMP6 protocol checks, including the following:
        • UDP. It checks to ensure that IP Payload Length packets, other than a first-fragment packet, are at least 8 bytes long.
        • TCP. It checks to ensure that IP Payload Length packets, other than a first-fragment packet, are at least 20 bytes long.
        • ICMPv6. It checks to ensure that IP Payload Length packets, other than a first-fragment packet, are at least 8 bytes long.
    • If the packet specifies a TCP or a UDP protocol, the NPU creates a tuple from the packet header data using the following information:
      • Source IP address
      • Destination IP address
      • Source port
      • Destination port
      • Protocol
      • Virtual router identifier (VRID)

        The device looks up the VRID from a VRID table.

    • For Internet Control Message Protocol version 6 (ICMPv6) packets, the tuple contains the same information as used for the TCP and the UDP search key, except for the source and destination port fields. The source and destination port fields are replaced with the following information extracted from the ICMPv6 packet:
      • For ICMP error packets: The pattern "0x00010001"
      • For ICMP information packets: The type, or code, field identifier
    • For packets with an Authentication Header (AH) or an Encapsulating Security Payload (ESP) header, the search key is the same as that used for the TCP and the UDP tuple, except for the source and destination port fields. In this case, the security parameter index (SPI) field value is used instead of the source and destination ports.
    • If a session exists for the packet’s flow, the NPU sends the packet to the SPU that manages the session.
    • If a matching session does not exist,
      • The NPU sends the packet information to the central point, which creates a pending session.
      • The central point selects an SPU to process the packet and create sessions for it.
      • The SPU then sends session creation messages to the central point and the ingress and egress NPUs, directing them to create a session for the packet flow.
  • A central point, which can run on a dedicated SPU, or share the resources of one if there is only one SPU. A central point takes care of arbitration and allocation of resources, and it distributes sessions in an intelligent way. The central point assigns an SPU to be used for a particular session when the SPU processes the first packet of its flow.
    • Juniper Networks SRX5000 line devices have at least two SPUs. If an SRX5000 line device has only two SPUs, one acts in combination (combo mode) serving as both the central point and the SPU.
    • For SRX3000 line devices, you have the option to use Extreme mode to turn the central point into a full central point and disable combo mode.
  • One or more SPUs that run on a Services Processing Card (SPC). All flow-based services for a packet are executed on a single SPU, within the context of a session that is set up for the packet flow.

    The SPC for SRX5000 line devices has two SPUs. The SPC for SRX3000 line devices has one SPU.

    Several SPCs can be installed in a chassis.

    Primarily, an SPU performs the following tasks:

    • It manages the session and applies security features and other services to the packet.
    • It applies packet-based stateless firewall filters, classifiers, and traffic shapers.
    • If a session does not already exist for a packet, the SPU sends a request message to the NPU that performed the search for the packet’s session, to direct it to add a session for it.

These discrete, cooperating parts of the system store the information identifying whether a session exists for a stream of packets and the information against which a packet is matched to determine if it belongs to an existing session.

Published: 2014-10-19