The Samba-Bugzilla – Bug 11898
SMB3 multichannel implementation needs integration with CTDB (public addresses)
Last modified: 2017-08-03 08:26:10 UTC
If CTDB public addresses (or externally managed virtual/floating IP addresses) are used for multi-channel, then there is the risk of creating a multi-channel session that spans multiple cluster nodes. This is due to the fact that the smb client is not aware that it is talking to a multi-host setup. This situation is something that needs to be prevented by all means, since at least currently the implementation of multichannel in samba is based on the principle that all connections of one multichannel session end up in a single smbd process. Otherwise, data corruption is possible due to lack of coordination.
There are several possible approaches, not completely mutually exclusive:
First is to prevent connections to a different host to be successful in sesion bind.
Second is to change samba to not hand out certain (the floating) addresses in the network_interface_info response if asked on a non-floating IP. On the other hand, if network_interface_info comes in via a floating IP, then only give back this single IP.