DNS round robin on source/dest

We use Qumulo enterprise NASes in our environment and the standard strategy for normal usage is to use DNS round robin for load balancing among the cluster nodes.

When we run rclone against the cluster, all traffic hits just one node. Presumably rclone does a DNS lookup against the cluster hostname and just uses the first IP that is returned.

Is there any possibility rclone could be enhanced to support this situation, so it would utilize more than just one IP in the returned DNS query?

RClone is just using GO net DNS resolver and your OS is caching / storing it most likely.

Yeah, but it would be nice if it did more intelligent name resolution... if multiple IPs are returned, maybe rclone could load balance among them...

rclone does not implement DNS load balancing logic. It uses Go’s standard net/http + net.Dialer stack for connections, so hostname resolution and address selection behavior come from Go and the system resolver. Any distribution across multiple DNS A/AAAA records depends on the resolver’s ordering/rotation and on connection reuse (keep-alives), not on rclone.

In my experience, most use a load balancer and don’t rely on DNS for this. Here’s a good DNS example as well:

If example.com returns multiple IPs, rclone doesn’t pick-and-choose to balance. What happens is whatever Go + the resolver + the HTTP transport do:

  • IP order usually comes from DNS/resolver (some resolvers rotate, some don’t).

  • Go will try addresses until one works (and does Happy Eyeballs behavior when IPv6+IPv4 are involved).

  • HTTP keep-alives mean you often won’t see balancing anyway: once rclone has a working TCP/TLS connection in the pool, it will reuse it and keep hitting the same upstream IP until the connection expires or breaks. (That’s how HTTP clients avoid being slow and terrible.)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.