How to HTTP proxy to forward to Nomad service running on the same host only?

I have 100 servers all running Nomad and Consul and Fabio.

When I run a service, this service can start on any machine. That service, registers a service in Consul through Nomad job specification service block and registers it with tag in the Consul. Consul resolves the to the host. Then the urlprefix- prefix is picked up by fabio listening on port 80 and 443 and redirects to specific port on the specific machines localhost to dynamic port assigned by Nomad.

This works fine for a single service. If there are two or more services running, Consul by DNS resolves round-robin to one of the hosts, and that is great. Fabio however, still resolves round-robin to one of the hosts. So, if a service is running on host1:1234 and host2:2345, then DNS of a resolves to host1, but Fabio running on host1 forwards the request roiund-robin to host1 _or host2. That is undesired and causes pointless network usage. If a connection was made to host1 the connection should be served from a service running on host1.

This is the current connection diagram:

The conections between host1 and host2 are not desired. The proxy - fabio in this case - should forward only to services running on localhost. Client is able to connect to any host1 and host2, and the proxy service should only forward the connection to the service running locally.

What tools and what configuration should I use in an N-to-N connected network of hosts, so that a service DNS name resolved by Consul is forwarded to a service running on the same host?

Is this possible with traefik? If so, what is the configuration to make it happen? Assuming I have 100 machines running Nomad and Consul and traefik, what service tags and traefik configuration should I use to forward the requests only on the machine they are connected to?