Re: How to restrict SCTP abort during a process crash

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

 



On Wed, Dec 13, 2017 at 02:58:34PM +0800, Xin Long wrote:
> On Wed, Dec 13, 2017 at 12:50 PM, Ashok Kumar <svashok79@xxxxxxxxx> wrote:
> > Thanks Neil for the suggestion. Yes, it sounds to be a bad hack, but
> > we will give it a try. Meanwhile, if you can think of some other
> > solution please let me know.
> 
> Not sure if your SCTP server app running as a systemd service,
> if yes, just add it to the 'After =', then let systemd insert the
> iptables rule before killing your sctp process.
> 
> # cat /etc/systemd/system/sctp_no_abort.service
> [Unit]
> Description=SCTP No Abort Send When Shutdown
> After=shutdown.target reboot.target halt.target
> 
> [Service]
> Type=oneshot
> ExecStart=/bin/true
> ExecStop=/usr/bin/bash -c "iptables -A OUTPUT -p sctp -j DROP"
> RemainAfterExit=yes
> 
> [Install]
> WantedBy=multi-user.target
> 
This would work for some packets, but those queued and sent by a timer might
make it out.

Neil

> 
> 
> 
> >
> > Thanks,
> > Ashok
> >
> > On Wed, Dec 13, 2017 at 12:02 AM, Neil Horman <nhorman@xxxxxxxxxxxxx> wrote:
> >> On Tue, Dec 12, 2017 at 10:21:31PM +0530, Ashok Kumar wrote:
> >>> Hi,
> >>>
> >>>
> >>>
> >>> We are using LKSCTP in our LTE product (HeNBGW). We have
> >>> high-availability support also in our product. In case of any failure
> >>> on active VM, standby VM will take over active role and all the SCTP
> >>> associations will be moved to that new active VM. The associations
> >>> should be moved transparent to the peers (a kind of SCTP reset before
> >>> SCTP heartbeat expires on the peer nodes).
> >>>
> >>>
> >>>
> >>> But the problem that we face is that when a process crashes on active
> >>> VM, the LKSCTP stack immediately sends SCTP abort to the peers for all
> >>> associations before the system goes down completely. This creates
> >>> confusion with the peers. Is there any way to avoid sending SCTP abort
> >>> message in this scenario? If yes, please let us know how to do the
> >>> same? If it needs LKSCTP kernel code change, please give pointers on
> >>> what and where to change.
> >>>
> >>>
> >>>
> >>> P.S: We tried to block the abort messages by dynamically using
> >>> IPtables through signal handler (for signal 11 and 6). But this did
> >>> not work.
> >>>
> >>>
> >>>
> >>> A quick response will be highly appreciated.
> >>>
> >> You're not going to be able to reliably block ABORTS, or any packet only on a
> >> crash condition, just because the stack has points that operates asynchronously
> >> to the process.
> >>
> >> About the closest thing that I could think of would be to write a custom
> >> iptables rule to match on ABORT packets and send them to the NFQUEUE target.
> >> Write a userspace handler process for queue targeted packets which in turn just
> >> holds the abort packet for at least one cluster live heartbeat time (I'm
> >> assuming here that, being a clustered system it has some sort of liveness
> >> check).  Doing this hold may allow the cluster to shift to the new vm in a
> >> failure situation before your queue handler process releases any abort packets
> >> that it has, while in the event there is no failover, it will just release the
> >> abort a little late.
> >>
> >> I can't really recommend that approach mind you (its a horrid hack, and will
> >> likely cause other protocol issues), but its all I can think of at the moment.
> >>
> >> Regards
> >> Neil
> >>
> >>>
> >>>
> >>> Thanks,
> >>>
> >>> Ashok
> >>> --
> >>> 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
> 
--
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