I have a query regarding sctp multihoming behavior.
I have setup a multihomed association and this is my
Host_A (IP a): Local single
Host_B (IP b(Primary), IP c(secondary)): Remote
During Heartbeat I see that even though the Heart beat req
is to the secondary ip of Host_B, the Host_B uses its primary ip as source when
sending back the Heartbeat Ack.
Ie Host_A (IP a)
--------HEART_BEAT_REQ-----------> Host_B(IP c)
Host_A (IP a)<--------- HEART_BEAT_ACK---------- Host_B(IP b)
also during data exchange I observed that even when the data
is sent to the secondary ip of Host_B, the SACK is being sent back from the
primary ip of Host_B.
Host_A (IP a)
--------DATA_MSG-----------> Host_B(IP c)
Host_A (IP a)<--------- SACK------------------- Host_B(IP b)
Is this the expected behavior, shouldn’t the node use
the same ip on which it received the data or Heart_beat_req on while sending
back the responses(Heart_beat_ack or SACK).
Due to this behavior if the primary ip of an endpoint fails
the association goes down as the node will not be able to transmit any
Heartbeat_Req or Heartbeat_Ack.
On Host_A I blocked the incoming packets which has Host_B(IP
b) as source and I expected Host_B to retry using its secondary ip addr, but I
observed that even the retries from Host_B uses its primary ip .
Does this mean that an endpoint always uses its primary-ip
while sending packets, but might receive packets on primary or secondary-ip?