Configuring SCTP Multi-homing

The device supports the Stream Control Transmission Protocol (SCTP) transport-layer protocol (according to RFC 4960 "Stream Control Transmission Protocol"), which ensures reliable, in-sequence transport of messages (data) between two endpoints. SCTP also provides multi-homing support for SIP signaling (i.e., SIP over SCTP) of calls (according to RFC 4168 "The Stream Control Transfer Protocol (SCTP) as a Transport for SIP").

In SCTP with multi-homing, the device acts as the local SCTP endpoint while the SIP proxy (Proxy Set) acts as the remote SCTP endpoint. These endpoints can provide one or a list of IP addresses (and SCTP port) through which they can be reached (connection path) and from which it will originate SCTP messages. The primary path is the destination and source address that will be put into an SCTP packet outbound to the peer endpoint, by default. The device supports up to two local IP addresses (IP Interfaces) per SIP Interface (i.e., local SCTP endpoint), where one is configured as the primary address and the other as the secondary address. For the remote SCTP endpoint (i.e., proxy), the device supports multiple IP addresses. A single SCTP port number is used for all the addresses at the endpoint. Each SIP Interface creates its own SCTP association (identified by an Association ID) with the proxy, which can include multiple paths.

SCTP also provides path management functionality, which monitors reachability of the SCTP endpoints (IP addresses), using heartbeats. For a list of the SCTP parameters, see SCTP Parameters.

The main benefit of SCTP with multi-homing is that it provides redundancy capabilities. It prevents a single point of failure, by re-routing packets to an alternative path (address) in the event of a network failure and thereby, maintaining SIP sessions between the endpoints.

Configuration of SCTP with mutli-homing is explained using the following example, where both SCTP endpoints use two IP addresses:

SCTP with Multi-Homing (Example)

To configure SCTP with multi-homing (based on example):
1. Configure a SIP Interface (local SCTP endpoint) for SCTP multi-homing:
a. Open the SIP Interfaces table (see Configuring SIP Interfaces).
b. In the 'SCTP Port' field, enter the device's listening port for SCTP traffic (e.g., 5060).
c. From the 'Network Interface' drop-down list, select an IP Interface for the primary local SCTP address (e.g., 10.55.2.20).
d. (Optional) From the 'SCTP Secondary Network Interface' drop-down list, select an IP Interface for the secondary local SCTP address (e.g., 10.55.3.21).
e. Configure the other parameters of the SIP Interface, as needed.

Both IP addresses of the SIP Interface can reside in the same subnet.

2. Configure a Proxy Set with the addresses and SCTP port of the SIP proxy (remote SCTP endpoint). The device initiates SCTP association with these addresses.
a. Open the Proxy Sets table (see Configuring Proxy Sets), and then add a Proxy Set.
b. Select the new Proxy Set in the table, and then click the Proxy Address link to open the Proxy Address table.
c. Add two IP addresses with an SCTP port number (e.g., "10.169.0.50:5060" and "10.169.1.51:5060"), and choose the SCTP transport protocol ('Transport Type' parameter configured to SCTP).

You must configure all the addresses of the Proxy Set with the same SCTP port number (e.g., 5060).

3. Configure a static route per address of the Proxy Set. In our example, you need to configure the following static routes:
a. Open the Static Routes table (see Configuring Static IP Routes).
b. Add two static routes:
'Destination' = 10.169.0.0; 'Prefix Length' = 24; 'Ethernet Output Device' = VLAN 200; 'Gateway' = 10.55.2.254
'Destination' = 10.169.1.0; 'Prefix Length' = 24; 'Ethernet Output Device' = VLAN 300; 'Gateway' = 10.55.3.254

You also need to configure a static route per address of the Proxy Set when SCTP is the transport protocol even though multi-homing is not implemented.

4. Configure SCTP settings (see e SCTP Parameters).

Once you have configured SCTP with multi-homing, you can use the CLI for the following:

View the status of the local SCTP endpoint (i.e., device) and the SCTP association with the remote endpoint (i.e., proxy):
show sctp connections
---------------------------------------------------------------------
Association #1
Type: SERVER
State: LISTEN
Local Addresses: 10.55.3.80, 10.55.2.80
Local Port: 5060
---------------------------------------------------------------------
Association #2
Type: CLIENT
State: ESTABLISHED
Local Addresses: 10.55.3.80, 10.55.2.80
Local Port: 50226
Remote Addresses Configured State
10.55.1.100:5060 Yes INACTIVE - Primary
10.55.0.100:5060 Yes ACTIVE – Secondary

"Association #1" is the local SCTP endpoint and "Association #2" is the SCTP association with the proxy. If the 'Configured' column for a remote address displays "No", add this address to the Proxy Set and add a static route to the address.

View statistics (e.g., SCTP packets) of all SCTP associations:
show sctp statistics
MIB according to RFC 3873:
discontinuity.sec = 1547641112, discontinuity.usec = 169612, currestab = 3, activeestab = 2
restartestab = 0, collisionestab = 0, passiveestab = 1, aborted = 1
shutdown = 0, outoftheblue = 0, checksumerrors = 0, outcontrolchunks = 248438
outorderchunks = 1769, outunorderchunks = 349601, incontrolchunks = 243466, inorderchunks = 1769
inunorderchunks = 466146, fragusrmsgs = 0, reasmusrmsgs = 0, outpackets = 302051, inpackets = 306499
input statistics:
recvpackets = 306499, recvdatagrams = 306499, recvpktwithdata = 281264, recvsacks = 241804, recvdata = 467915
recvdupdata = 6, recvheartbeat = 828, recvheartbeatack = 826, recvecne = 0, recvauth = 1
recvauthmissing = 0, recvivalhmacid = 0, recvivalkeyid = 0, recvauthfailed = 0, recvexpress = 467914
recvexpressm = 0, recv_spare = 0, recvswcrc = 301493, recvhwcrc = 5006
output statistics:
sendpackets = 302051, sendsacks = 246385, senddata = 351370, sendretransdata = 75
sendfastretrans = 0, sendmultfastretrans = 0, sendheartbeat = 1210, sendecne = 0
sendauth = 0, senderrors = 0, send_spare = 0, sendswcrc = 297046, sendhwcrc = 5005
...