I'm setting up a new Server 2012 R2-based RDS deployment publishing desktops to users based in three geographically distinct sites. All users need access to the same applications and resources.
Is it possible to have RDS direct users to a specific session host depending on their client IP address or AD site? This would enable me to have a couple of RD session host servers at each site and have the users connect to a host local to them, rather than over a slow WAN link to the main office.
I can't find a way of doing this, and it may not be possible, but any advice is gratefully received.
As far as out of the box is concerned it's not possible, it uses round robin DNS to direct users to session hosts and that's about as far as the network management goes - If you have a load balancer at hand you could configure virtual IP addresses for specific session hosts and route to those hosts based on IP. That's at least how I remember it.
this might be of help https://www.haproxy.com/doc/aloha/7.0/deployment_guides/microsoft_remote_desktop_services.html
F5 have similar guides
Yes and no.
If you take a look at the following link you can see that using DNS round robin on xp sp3 and above will select the DNS record result in a different way. Using netmask ordering.
So effectively machines in one site will 'use' the server in the same site if the principles from the link are followed.
So yes DNS can play it's part, but if the host machines are domain joined you will have issues as they obviously can't have the same name and certificates etc will not match the DNS record etc.
As @Rob-d also points out in the comments, the Broker would have a problem doing this. You would need a full deployment at each location. You could point your DNS entry at the Broker and this would then send sessions to each session host only in the site.