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

You must log in to answer this question.

Browse other questions tagged .