diff --git a/doc/html/faq.shtml b/doc/html/faq.shtml
index a03c62a7d577a61e1f31cc9eb832e35abe5ab43d..2c613b7beb54dfaa8464465cf41086de964adf1b 100644
--- a/doc/html/faq.shtml
+++ b/doc/html/faq.shtml
@@ -1639,8 +1639,8 @@ instead of the correct address and prevent communications between nodes.
 The solution is to either remove this line or configure a different NodeAddr
 that is known by your other nodes.</p>
 
-<p>The TopologyParam=NoInAddrAny configuration parameter is subject to this
-same problem, which can also be addressed by removing actual node
+<p>The CommunicationParameters=NoInAddrAny configuration parameter is subject to
+this same problem, which can also be addressed by removing actual node
 name from the "127.0.1.1" as well as the "127.0.0.1"
 addresses in the /etc/hosts file.  It is ok if they point to
 localhost, but not the actual name of the node.</p>
diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5
index f6962fcc5a9987ef98c6994836fba751ad7d07ff..e2e94df82da7fa30c5681a004f052489d3254601 100644
--- a/doc/man/man5/slurm.conf.5
+++ b/doc/man/man5/slurm.conf.5
@@ -388,6 +388,21 @@ in some databases, any upper case letters in the name will be silently mapped
 to lower case. In order to avoid confusion, it is recommended that the name
 be lower case.
 
+.TP
+\fBCommunicationParameters\fR
+Comma separated options identifying communication options.
+.RS
+.TP 15
+\fBNoCtldInAddrAny\fR
+Used to directly bind to the address of what the node resolves to running
+the slurmctld instead of binding messages to any address on the node,
+which is the default.
+.TP
+\fBNoInAddrAny\fR
+Used to directly bind to the address of what the node resolves to instead
+of binding messages to any address on the node which is the default.
+This option is for all daemons/clients except for the slurmctld.
+.RE
 
 .TP
 \fBCompleteWait\fR
@@ -3833,16 +3848,6 @@ Comma separated options identifying network topology options.
 Optimize allocation for Dragonfly network.
 Valid when TopologyPlugin=topology/tree.
 .TP
-\fBNoCtldInAddrAny\fR
-Used to directly bind to the address of what the node resolves to running
-the slurmctld instead of binding messages to any address on the node,
-which is the default.
-.TP
-\fBNoInAddrAny\fR
-Used to directly bind to the address of what the node resolves to instead
-of binding messages to any address on the node which is the default.
-This option is for all daemons/clients except for the slurmctld.
-.TP
 \fBTopoOptional\fR
 Only optimize allocation for network topology if the job includes a switch
 option. Since optimizing resource allocation for topology involves much higher
diff --git a/src/common/read_config.c b/src/common/read_config.c
index 984a7a42dc42ed9ebc20448a218887dbc764b486..ca0cca3c60fb1364abaf46abc2f8a8d73c96962c 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -4780,6 +4780,20 @@ _validate_and_set_defaults(slurm_ctl_conf_t *conf, s_p_hashtbl_t *hashtbl)
 		conf->wait_time = DEFAULT_WAIT_TIME;
 
 	(void) s_p_get_string(&conf->topology_param, "TopologyParam", hashtbl);
+	if (conf->topology_param) {
+		/* Move legacy settings over to new spot */
+		char *legacy_var = "NoInAddrAny";
+		if (xstrcasestr(conf->topology_param, legacy_var) &&
+		    !xstrcasestr(conf->comm_params, legacy_var))
+			xstrfmtcat(conf->comm_params, "%s%s",
+				   conf->comm_params ? "," : "", legacy_var);
+
+		legacy_var = "NoCtldInAddrAny";
+		if (xstrcasestr(conf->topology_param, legacy_var) &&
+		    !xstrcasestr(conf->comm_params, legacy_var))
+			xstrfmtcat(conf->comm_params, "%s%s",
+				   conf->comm_params ? "," : "", legacy_var);
+	}
 
 	if (!s_p_get_string(&conf->topology_plugin, "TopologyPlugin", hashtbl))
 		conf->topology_plugin = xstrdup(DEFAULT_TOPOLOGY_PLUGIN);
diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index c96e008cf285793e7eb6bdedcf2608721e54aa27..d33ccc4fd043778c302d5669af7a060df5d500f7 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -5137,7 +5137,7 @@ extern void slurm_setup_sockaddr(struct sockaddr_in *sin, uint16_t port)
 		 * want to get just any address.  This is the case on
 		 * a Cray system with RSIP.
 		 */
-		char *topology_params = slurm_get_topology_param();
+		char *comm_params = slurm_get_comm_parameters();
 		char *var;
 
 		if (run_in_daemon("slurmctld"))
@@ -5145,8 +5145,7 @@ extern void slurm_setup_sockaddr(struct sockaddr_in *sin, uint16_t port)
 		else
 			var = "NoInAddrAny";
 
-		if (topology_params &&
-		    xstrcasestr(topology_params, var)) {
+		if (xstrcasestr(comm_params, var)) {
 			char host[MAXHOSTNAMELEN];
 
 			if (!gethostname(host, MAXHOSTNAMELEN)) {
@@ -5158,7 +5157,7 @@ extern void slurm_setup_sockaddr(struct sockaddr_in *sin, uint16_t port)
 		} else
 			s_addr = htonl(INADDR_ANY);
 
-		xfree(topology_params);
+		xfree(comm_params);
 	}
 
 	sin->sin_addr.s_addr = s_addr;