Currently, the monitor attempts to only use server id:s when building the replication topology. This has the weakness that the id:s cannot be used or trusted in any situation where MaxScale was started when a server was already down.
Example: If master (e.g. server1) is down when MaxScale starts, and a slave claims that it is replicating from server1's host:port, MaxScale cannot assume that the slave is actually replicating from server1. This is because hostnames may not be unique, the hostnames seen by the backends may be different from the ones seen by MaxScale. This complicates cluster detection quite a bit.
In practice however, such setups are rare. Failover/switchover use the hostnames in MaxScale configuration when issuing CHANGE MASTER TO-commands, so any exotic network configuration is already incompatible with cluster manipulation features.
For these reasons, a monitor option which allows MaxScale to assume that hostnames/IPs are unique and consistent is required. This setting would be on by default and a requirement for any cluster operations.