So, 172.17.0.0 is the docker vlan?
If you setup an overlay network, you would still need something to forward/proxy requests from outside to inside. So if you want to hit 172.17.0.5 and your client only has routing information to get to 172.17.0.1 then that machine needs to have routing setup on it with ipv4 forwarding and iptables masquerade.
If you setup the overlay network, you could use docker-compose to bring up an nginx proxy and configure it to proxy requests to 172.17.0.5 (or whatever ip/service is on the overlay network).
I think this is more easily solved with regular networking. On the client you tell it that any request for 172.17.0.0 should route through 0.1 GW. On the GW, forward packets, and use iptables to do nat / masquerade from the 172.17 interface to the subnet.
You can really only talk to swarm overlay networks if you are another swarm (or compose) service running on a node that is part of the swarm. ( i think ) and they have to be attachable overlay networks (just a flag, not a big deal). If they’re not attachable then only service launched with docker stack deploy can use them.