SCTP Multihoming Heartbeat ACK Behavior

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

 



Hello everyone!

We are having some issues regarding SCTP multihoming
and we would like to ask your opinion on this matter. 
We have two RHEL6.4 (2.6.32-358.el6.x86_64, lksctp-tools
-1.0.10-5(64 bit)) machines connected by two L2 switch 
and a L3 switch (please see "Environment Setup" below). 
When we execute SCTP connection (using multihoming) between 
the two machines, the following behavior occurred:

      CLIENT           L2 and L3         SERVER      
Secondary Primary           |      Primary Secondary 
    |        |              |          |       |     
    |        |              |          |       |     
    |        |INIT-INIT_ACK |          |       |     
    |        |<-------------|--------->|       |     
    |        |COOKIE_ECHO-COOKIE_ACK   |       |     
    |        |              |          |       |     
    |        |<-------------|--------->|       |     
    |        |HB/HB_ACK     |          |       |     
    |        |              |          |       |     
    |<-------|--------------|----------|       |     
    |        |              |       HB |       |     
    |        |--------------|--------->|       |     
    |        |HB_ACK        |          |       |     
    |        |        :     |          |       |     
    |        |        :     |          |       |     

INIT/INIT_ACK handshake occurred in the primary 
path of both machines which is expected. When a 
Primary path sends HEARTBEAT to another Primary, 
HEARTBEAT_ACK was returned to the sender. But 
when a Primary path sends HEARTBEAT to a 
Secondary path, the HEARTBEAT_ACK chunk was sent 
by the Primary path. We expect that the 
HEARTBEAT_ACK would come from the Secondary.

[Questions]
1. Is this a normal behavior with regards to SCTP multihoming? 
2. Is the SCTP kernel module has something to do with this behavior? 
3. Is there a solution to force Client to use its Secondary path in 
   sending the HEARTBEAT_ACK chunk to Server's primary?

Environment Setup:

    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  

Route Setup:

---------- CLIENT ----------
# ip rule show
0:	from all lookup local 
197:	from all to 172.168.39.91 lookup rt2 
198:	from 172.168.39.91 lookup rt2 
199:	from all to 172.168.39.92 lookup rt3 
200:	from 172.168.39.92 lookup rt3 
32766:	from all lookup main 
32767:	from all lookup default 

# ip route show table rt2
172.168.40.0/24 dev eth0  scope link  src 172.168.39.91 
172.168.39.0/24 dev eth0  scope link  src 172.168.39.91 

# ip route show table rt3
172.168.40.0/24 dev eth1  scope link  src 172.168.39.92 
172.168.39.0/24 dev eth1  scope link  src 172.168.39.92 

# ip route show table main
192.168.40.0/24 dev eth1  proto kernel  scope link  src 192.168.40.212 

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

---------- SERVER ----------
# ip rule show
0:	from all lookup local 
197:	from all to 172.168.40.93 lookup rt2 
198:	from 172.168.40.93 lookup rt2 
199:	from all to 172.168.40.94 lookup rt3 
200:	from 172.168.40.94 lookup rt3 
32766:	from all lookup main 
32767:	from all lookup default 

# ip route show table rt2
172.168.40.0/24 dev eth0  scope link  src 172.168.40.93 
172.168.39.0/24 dev eth0  scope link  src 172.168.40.93 

# ip route show table rt3
172.168.40.0/24 dev eth1  scope link  src 172.168.40.94 
172.168.39.0/24 dev eth1  scope link  src 172.168.40.94 

# ip route show table main
192.168.40.0/24 dev eth1  proto kernel  scope link  src 192.168.40.127 

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1


We are hoping for your kind response and thank you in advance!

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




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

  Powered by Linux