Re: SCTP Multihoming Heartbeat ACK Behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04 Jul 2014, at 12:33, Winston V. Tizon <wtizon@xxxxxxxxxxx> wrote:

> On Tue, 1 Jul 2014 07:20:01 -0400
> Neil Horman <nhorman@xxxxxxxxxxxxx> wrote:
>> Actually, its quite the opposite, this confirms that the sctp protocol is
>> functioning normally.  RFC 4960 says this about HB_ACK's:
>> 
>> 3.3.6.  Heartbeat Acknowledgement (HEARTBEAT ACK) (5)
>> 
>>   An endpoint should send this chunk to its peer endpoint as a response
>>   to a HEARTBEAT chunk (see Section 8.3).  A HEARTBEAT ACK is always
>>   sent to the source IP address of the IP datagram containing the
>>   HEARTBEAT chunk to which this ack is responding.
>> 
>> The only thing that a peer has to do regarding a HB frame is sent an HB_ACK to
>> the source ip address of the corresponding HB frame (in this case172.168.39.4),
>> which we do my recording the inbound transport that the HB frame arrived on.
>> The source address selection is made during L3 packet routing, which, according
>> to sctp_transport_route is made by querying the route tables.
>> 
>> The only thing thats a bit odd is the fact your not taking what is likely the
>> selected source address from the default route.  That usually indicates that
>> you're using path mtu features, and you're routing based on a locally selected
>> source and destination address.
>> 
>> The point however is, that a transport is only defined by a destination address
>> within an association, not by a source and a destination, the source address
>> selection is made by the local peer, and should not be relevant to the peer
>> receiving the data.
>> 
>> Neil
>> 
> TO: Neil, Daniel, Michael
> 
> Thank you very much for your answers. I misunderstood the SCTP RFC statement 
> regarding reply Chunks in a multi-homed association. I thought reply 
> chunks should be sent always to the same path from where DATA or Control 
> chunks were received.
> 
> I'm sorry if I haven't explained yet the other details of our problem using 
> the following  "Environment Setup" below.
> 
>    CLIENT                        SERVER     
> 172.168.39.91                172.168.40.93  
> +-----------+    +------+    +-----------+  
> |       eth0|----|  L2  |----|eth0       |  
> |           |    +------+    |           |  
> |           |       |        |           |  
> |           |  +----------+  |           |  
> |           |  |    L3    |  |           |  
> |           |  +----------+  |           |  
> |           |       |        |           |  
> |           |    +------+    |           |  
> |       eth1|----|  L2  |----|eth1       |  
> +-----------+    +------+    +-----------+  
> 172.168.39.92                172.168.40.94  
> 
> Our problem goes like this. Normal sequence is shown in "[NORMAL]" sequence.
> While our problem started when we've performed "[ABNORMAL]"sequence below.
> 
> [NORMAL]
> 
>      SERVER           L2 and L3         CLIENT      
> Secondary Primary           |      Primary Secondary 
>    |        |              |          |       |     
>    |        |              |          |       |     
>    |        |INIT-INIT_ACK |          |       |     
>    |        |<-------------|--------->|       |     
>    |        |COOKIE_ECHO-COOKIE_ACK   |       |     
>    |        |              |          |       |     
>    |        |<-------------|--------->|       |     
>    |        |HB/HB_ACK     |          |       |     
>    |        |              |          |       |     
>    |<-------|--------------|----------|       |     
>    |        |              |       HB |       |     
>    |        |--------------|--------->|       |     
>    |        |HB_ACK        |          |       |     
>    |        |        :     |          |       |     
>    |        |        :     |          |       |     
> 
> [ABNORMAL]
> 
>      SERVER           L2 and L3         CLIENT
> Secondary Primary           |      Primary Secondary 
>    |        |              |          |       |     
>    |        |              |          |       |     
>    |        |INIT-INIT_ACK |          |       |     
>    |        |<-------------|--------->|       |     
>    |        |COOKIE_ECHO-COOKIE_ACK   |       |     
>    |        |              |          |       |     
>    |        |<-------------|--------->|       |     
>    |        |HB/HB_ACK     |          |       |     
>    |        |              |          |       |     
>    |<-------|--------------|----------|       |     
>    |        |              |       HB |       |     
>    |        |---->X        |          |       |     
>    |        |HB_ACK        |          |       |     
>    |        |        :     |          |       |     
>    |<-------|--------------|----------|       |     
>                  ABORT
> 
> X  -> LAN cable unplug, cannot send HB_ACK to Client
> 
> Based on what happened in our environment, the Client sent ABORT chunk to 
> Secondary IP address of Server causing this path to be closed. 
> 
> We don't want this to happen in our environment.
> 
> It would be of great help to us if you have any idea on how we could 
> solve question #3 below.
> 
> [Question]
> 3. Is there a solution to force Server to use its Secondary path in 
>   sending the HEARTBEAT_ACK chunk to Client's primary?   
It is always difficult to have multiple addresses in the same network
configured on a host. I guess you problems go away if you use

   CLIENT                        SERVER     
172.168.39.91                172.168.39.93  
+-----------+    +------+    +-----------+  
|       eth0|----|  L2  |----|eth0       |  
|           |    +------+    |           |  
|           |       |        |           |  
|           |  +----------+  |           |  
|           |  |    L3    |  |           |  
|           |  +----------+  |           |  
|           |       |        |           |  
|           |    +------+    |           |  
|       eth1|----|  L2  |----|eth1       |  
+-----------+    +------+    +-----------+  
172.168.40.92                172.168.40.94  

assuming all masks being 255.255.255.0

Best regards
Michael
> 
> Wins
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux