Background: I'm essentially re-creating Back To My Mac.

I have a VPN set-up on my VPS, handing out addresses in the 10.x.y.0/24 range, with BIND running and accessible at 10.x.y.1.

There's a zone named xyz with updates enabled. The SOA/NS records for xyz indicate a globally-resolvable name, dns.xyz-public.com, which resolves to 10.x.y.1. (i.e. the address can only contacted within the VPN.)

When I configure Dynamic DNS (through Sharing: "Use dynamic global hostname"), I set my hostname to mylaptop.xyz, set credentials, and voilà; mylaptop appears in the zone!

... only, it's added with the IP address as seen by the public internet, not as seen in the VPN. I had assumed that, given the DNS update was happening via a local address, the IP address that corresponded would be used, but it would appear OS X is determining its own public IP address itself before publishing it to DNS.

Is there any way to work around this?

  • I've realised there's a workaround/hack: I'm replacing BIND anyway (because it doesn't support DNS-LLQ/DNS-UL on non-OS X), so I could just have it ignore the A record's payload published by clients and replace it with the source address of the UDP packet. – Ashe Nov 2 '15 at 13:09
  • If you found an answer please post it as an answer with some background explanation and not as a comment so I can up-vote it ;-) – klanomath Nov 2 '15 at 14:15
  • @klanomath: it's not an answer, it's a hack extremely specific to my circumstances (which would apply to no-one actually wanting an answer to this question). People do not typically replace BIND with a custom implementation. – Ashe Nov 2 '15 at 20:51

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.