I have a problem in which I cannot access a server using its public name from the same network as the server. Access to the server works fine from the internet.
Reading up on this problem, I've ran across such things as hairpin NAT, loopback NAT, split DNS, editing hosts files, etc.
My network has a SMC 8013WG-CCR (Comcast) cable modem connected to a Linksys WRT54G2. As I understand, the router is supposed to handle this sort of loopback (by leaving the security option "Filter Internet NAT Redirection" disabled), but the connection between these two devices is a secondary LAN, so I don't think the router "knows" what the proper public IP address is.
The easiest solution would be to edit the hosts files of all the computers in the network, but many are notebook computers which will need to access the server both on the LAN and externally.
The server is Windows Server 2012, so I could set it up as the internal DNS server but I don't have enough experience with this to really understand how it would interact with the router, DHCP, etc.
I am prepared to purchase a new router if I need something with greater capability. It appears from my research that most IT admins prefer to solve this problem with split DNS rather than hairpin NAT. I understand the concept of hairpin NAT more clearly than split DNS. It seems to me that the router just needs to provide LAN clients with the local IP of the server when clients use the public name (sub.domain.com). Isn't that just an entry in a local DNS cache? Is that what split DNS does?
What would be a good solution to implement this fix for a small business?