Stream Control Transmission Protocol (SCTP) is a transport layer protocol similar to TCP. It provides an alternate transport layer. It is used for transporting various signaling protocols over IP networks in telecommunication.

SCTP Supports the following features.

  • Multi-streaming: Enables data delivery in multiple and independent streams.

  • Multi-homing: Operates over multiple layer-3 endpoints while retaining the same layer-4 association.

Note:

This feature is under tech preview for VMware NSX Advanced Load Balancer 22.1.3.

Use Cases and Application

  • Kubernetes natively supports SCTP for services, POD, and endpoints. CNFs running in k8s clusters can be load-balanced using an SCTP load-balancer endpoint.

  • Load balancing 5G Core functions, where diameter or SS7 protocols use SCTP as transport layer protocol. For example,

    • Access and Mobility Management function - NAS Termination

    • Session Management Function (SMF)

    • User plane function (UPF): QoS and forwarding

    • Policy Control Function (PCF)

  • HSS (Home Subscriber Server) SCTP [For example, load-balancing SDP (Service Delivery Platform)

NSX Advanced Load Balancer Support for SCTP Network Profile

Starting with release 22.1.3, the NSX Advanced Load Balancer introduces an additional network profile named SCTP-Proxy-Profile, in addition to the existing TCP and UDP Network profiles. Users will be able to configure this profile to load balance based on SCTP associations.

Users get a configurable profile for SCTP proxy. Various streams and different SCTP parameters can be tweaked in this profile to serve various use-cases.

Configuring SCTP Proxy Network Profile

  1. Navigate to Templates > ProfilesTCP/UDP.

  2. Click CREATE to open NEW TCP/UDP PROFILE.

  3. Under the General tab, enter Name and Description.



  4. Select SCTP Proxy as Type.

  5. Under SCTP Proxy, select the SCTP Proxy Profile Parameters check box. The following additional fields are displayed. Enter values for the fields.

    1. Number of Streams. The default value is 10.

    2. Receive Window. The default value is 256.

    3. Heartbeat Interval. The default value is 30.

    4. Max Retransmissions Init Chunks. The default value is 8.

    5. Reset Timeout. The default value is 0.

    6. Cookie Expiration Timeout. The default value is 60.

    7. Idle Timeout. The default value is 0.

    8. Max Retransmissions Association. The default value is 10.

  6. Under Role-Based Access Control (RBAC), add Key & Values.

  7. Click Save.

Configuring SCTP Health Monitors

  1. Navigate to Templates > Health Monitors.

  2. Click Create to open CREATE HEALTH MONITOR.

  3. Under the General tab, enter Name and Description.



  4. Enter values for the following fields:

    1. Type - Select SCTP.

    2. Is Federated - deselected by default.

    3. Send Interval. The default value is 10.

    4. Successful Checks. The default value is 2.

    5. Receive Timeout. The default value is 4.

    6. Failed Checks. The default value is 2.

  5. SCTP - enter a value for Health Monitor Port.

  6. Under Client Request Header, enter User Input and Converted Value Preview as required. Enter an appropriate send string applicable to the server application. This request will be sent to the server immediately after completing the SCTP handshake. The maximum allowable size for the request length is 1024 bytes.

  7. Under Server Response Data, enter User Input and Converted Value Preview as required. Enter the expected response from the server. NSX Advanced Load Balancer checks to see if the Server Response data is contained within the first 512 bytes of data returned from the server.

  8. Under Role-Based Access Control (RBAC), add Key & Values.

  9. Click Save.

Configuring SCTP Virtual Services

  1. Navigate to Applications > Virtual Services.

  2. Click edit icon to open the existing virtual services.

  3. In the Settings tab, enter details in the fields as shown below:



  4. Under VIP Address, select the desired VS VIP.

  5. Select System-SCTP-Proxy from TCP/UDP Profile.

  6. Select System-L4-Application from Application Profile.

  7. Under Pool, select sctp-vs2-Pool from Pool.

  8. Click Save.

Supported Features

The following features are supported in SCTP Phase 1:

  • SCTP proxy profile

  • Legacy HA (Active / Standby) Support

  • VMware Cloud

  • Preserve client IP

  • Auto gateway

  • L4 connection logs and metrics

  • L4 Policy

Note:

AKO support for creating SCTP Virtual Service and other SCTP objects in K8s clusters will be available starting AKO 1.9.1. For more information, see SCTP support in AKO for L4 services in the Avi Kubernetes Operator Guide.

Limitations

The following features are not supported in SCTP Phase 1:

  • SCTP fast path

  • Enhanced HA (limited Support)

  • AWS, GCP, Azure, and OpenStack

  • SCTP multihoming

  • IPV6

  • Multi VRF

  • RSS, TSO, and GRO

  • No Specific metrics and connection log corresponding to SCTP

  • Custom SNAT

  • Network security policy

  • DataScript policies

  • Shared VIP

  • Pool sharing

  • Configuring Port Ranges: When System-SCTP-Proxy TCP/UDP Profile is selected as network profile for virtual services, a port range cannot be specified under Service Ports. If a port range is configured, only the first port within the specified range handles traffic.