Is it possible to prevent Docker from registering itself on the DNS of a network in Swarm?

I want to create a common backend overlay network for Kafka where other services can join the network to connect to the Kafka server.

However, I want to avoid name clashes so I only want to be able to connect to the Kafka service by name, but do not allow anyone else to register their name on the network’s DNS so if there is a clash it won’t matter.

For example I want to have services defined like this

    kafka   zipkin
      |       |
=================== backend overlay network
    |           |
 service     service
  • kafka is in the kafka-service stack.
  • zipkin is in the management stack.
  • service is in the app-stack-1 stack. service can access kafka and zipkin by name, but not service in app-stack-2
  • service is in the app-stack-2 stack. service can access kafka and zipkin by name, but not service in app-stack-1

Is that possible in Docker Swarm?