Practical Guidelines
Here are the guidelines for implementing security capabilities over an InfiniBand network. It is preferred that these conf_file configurations will be set before running the Subnet Manager.
Apply a subnet partitioning solution (PKEY) per tenant:
UFM nodes are, by default, defined as full members of the default PKEY.
Define all end nodes as limited members on the default PKEY. In UFM, set the following flags in the cfg (MngNetwork section).
default_membership = limited
Configure the required subnet partitioning to use UFM as defined in the UFM user manual. Alternatively, you can use the REST API for configuration. For additional information please see Appendix Partitioning: General guidelines
Enable InfiniBand keys for every class in use:
SM MADs (SMPs) – enable mkey_per_port as defined in the UFM user manual. This key can be enabled via UFM cfg, or via SM opensm.conf:
Enable:
cfg->m_key_per_port =
true
/ opensm.conf->m_key_per_port =true
cfg->global_m_key_seed = <set random value> / opensm.conf-> m_key = <set random value>Other configurations:
conf->m_key_lease_period
60
m_key_protection_level2
Notem_key_protection_level 2
: This is the recommended default configuration, in case m_key is enabled, SM will set this value to 2.SM to generate random value for key:
cfg->global_m_key_seed =
0xFFFFFFFFFFFFFFFF
/ opensm.conf->m_key =0xFFFFFFFFFFFFFFFF
Tools (MFT) MADs – enable vs_key_per_port. To do so, you should set the following flags in conf:
Enable:
vs_key_enable
2
key_mgr_seed = <set random value> (this
step is not must,if
not done – SM will consider m_key seedfor
this
key as well.Other configurations:
vs_key_lease_period
60
(recommendeddefault
configuration) vs_key_ci_protect_bits1
(recommendeddefault
configuration)SM to generate random value for key:
key_mgr_seed =
0xFFFFFFFFFFFFFFFF
Node2Node (pFRN) MADs – enable n2n_key. To do so, you should set the following flags in conf:
Enable:
n2n_key_enable
2
key_mgr_seed = <set random value> (this
step is not a must,if
not done – SM will consider m_key seedfor
this
key as well.Notekey_mgr_seed:
This step is not a must, if not done – SM will consider m_key seed for this key as well.Other configurations:
n2n_key_lease_period
60
(recommendeddefault
configuration) n2n_key_protect_bit1
(recommendeddefault
configuration)SM to generate random value for key:
key_mgr_seed =
0xFFFFFFFFFFFFFFFF
Congestion control (CC) MADs – enable cc_key. To do so, you should set the following flags in conf:
Enable:
cc_key_enable
2
key_mgr_seed = <set random value> (this
step is not must,if
not done – SM will consider m_key seedfor
this
key as well.Notekey_mgr_seed:
This step is not a must, if not done – SM will consider m_key seed for this key as well.Other configurations:
cc_key_lease_period
60
(recommendeddefault
configuration) cc_key_protect_bit1
(recommendeddefault
configuration)SM to generate random value for key:
key_mgr_seed =
0xFFFFFFFFFFFFFFFF
Aggregation Manager (AM) MADs – enable AM_Key and JobKey. To do so, you should set the following flags in cfg:
Enable:
ib_am_key <set random value>
NoteWhen am_Key is enabled, JobKey is also enabled. JobKey value is randomly generated regardless of AM_Key value.
Other configurations:
ib_am_key_protect_lease_period
300
(recommendeddefault
configuration) ib_am_key_protect_bit1
(recommendeddefault
configuration)AM to generate random value for key:
ib_am_key =
0xFFFFFFFFFFFFFFFF
SA MADs – enable the option to randomize SA_KEY. can be enabled via UFM cfg, or via SM opensm.conf:
cfg->randomize_sa_key =
true
/ opensm.conf->sa_key = <set random value>
Enable periodic MAD key update – set the following flag in conf:
periodic_key_update <non-zero value>
- this value is indicating the period of time (in minutes) for key update flow.Recommended value is 24 hours (1440/0x5A0 minutes).
Minimum value is 10 minutes (any value below it will be addressed as 10 minutes).
This configuration will affect any per-class key that is enabled.
In case this feature is enabled, key seed (
global_m_key_seed/mkey, key_mgr_seed
) will be addresses as0xFFFFFFFFFFFFFFFF
, meaning that SM will randomly generate the keys.
Enable the following SM Security features:
SM_KEY random value – enable the option to randomize SM_KEY. To do so, you should set the following flags in conf:
sm_key = <set random value>
Allowed_sm_guids – enable the option to set list of GUIDs of devices that are allowed to run SM in the subnet (active and standby). To do so, you should set the following flags in conf:
allowed_sm_guids
0
–do
not allow any other SM allowed_sm_guids <GUID A>,<GUID B>, … – specify allowed SM GUIDs
Enable the following SA security features: These features are in the conf file.
Enhanced SA security model – operational limitations, as defined in the UFM User Manual. Recommended values are based on common usage of SA.
Disable the ability to send proxy SA requests (only when not required), as defined in the UFM User Manual.
Set a limitation for the amount of registration requests to the SA, as defined in the UFM User Manual. Default configurations are meaningful and should fit all use cases.
UFM supports the option to create a physical-virtual GUID mapping by sending the physical and virtual GUID list, as defined in the UFM Enterprise REST API Guide.
UFM supports the option to manage static topology configurations, as defined in the UFM Enterprise REST API Guide.
Enable SMP blocker feature (only when relevant):
SMP blocker configuration should be set for every non-SM host.
SMP blocker feature is enabled by sending the following command – “sudo mlxconfig -d <device> s SM_DISABLE =1”.
SMP blocker feature is disabled by sending the following command – “sudo mlxconfig -d <device> s SM_DISABLE =0”.
SMP blocker feature state can be queried by sending the following command - “sudo mlxconfig -d <device> q SM_DISABLE”