oh my lawd oh my god what oh my dear friends what does the following mean: "Then tweak internal DNS server" could there be a little more elobration on that point - thank you my dear friends. i am in great pain, in agony, i'm on fire like the fat guy who ate at lazarus' table and is now burning in the lake of sulphur i suppose i shall continue to burn until i fix this masquarading issue and I want to spare you all my agony with clearer explanations: which i will do once i work out how to do it all.
Then tweak internal DNS server
You can either tweak all PCs in your intranet by editing hosts files which can override the data returned from DNS server.
Or you can tweak your DNS server (or forwarder) to return the internal server IP instead of the public one.
Let's say your external dns name for your Moodle server was moodle.my-school.edu and your internal dns domain was my-school.local. Internaly your moodle server would respond to server-name.my-school.local with it's internal IP address. What we want is for it to respond with it's internal IP address from inside your network to moodle.my-school.edu.
So the "tweak" would be to create the my-school.edu zone on your internal dns servers and then create an a-record in that zone called moodle which points to the internal ip address of your moodle server. This would get the result we wanted.
The potential gotcha here is if you also have a website configured at www.my-school.edu which is not hosted on your internal LAN... You would then need to add the external IP address for teh server hosting your website as an a record with name www (and possible as the root of the zone too if your website is configured to respond to calls without www).