You really haven't provided any detail as to your actual master DNS configuration (nor even what DNS server you are using), nor exact details about how you configured the Linode DNS manager side. So it's hard to say what might be amiss.
Broadly, to master to your own domain:
- Configure your Linode appropriately (DNS server install, master domain, etc...). Permit zone transfers to Linode ns#.linode.com nameservers. Optionally, depending on server, enable slave notifications.
- Add the domains to the Linode DNS manager as slave zones. You add the IP address of your own master machine(s) here, not the IP addresses of Linode nameservers.
You cover many of those points, but it's not completely clear which side you are doing which steps on. It would help if you were to show explicit Linode DNS Manager and local nameserver configurations. You also have 3 nameservers defined for your domain, and it's not clear which (or all) you are pointing Linode to as master?
Note that you are not able to restrict the set of Linode nameservers. Once you have a slave domain, your master will receive periodic requests (even if you don't notify them) from all Linode nameservers. Of course, you can reject some.
Some nameservers will only notify slaves that exist as NS records for the affected domain, and at the moment you only have NS records for ns[012].htservices.co.uk - the Linode servers should still eventually pick up the domain based on polling but it might take much longer.
To your tests:
Quote:
;; WARNING: recursion requested but not available
would seem to indicate that ns1.linode.com sees the domain as external (which if it was a slave for of course it would not be)
Probably not so much external as simply not yet something it is authoritative for. That could be due to yet having a successful master transfer, or it could be something amiss with the basic entry. Showing your Linode DNS manager pages would be helpful.
Quote:
the master is working and answering queries. I can query it directly or via google's dns
Well, it shows Google got it somehow, but not directly how the master is doing. Plus since Google will support recursion, it's not really that helpful for this particular issue. I'd probably stick with direct queries to the master and to Linode.
Assuming the basic master/client is correct on both sides, I'd then recommend tracing the network traffic to your master nameserver (and/or watching its logs for slave requests). Maybe you're firewalled, or maybe the master is opting to reject transfers for some reason.
In terms of timing, it'll take up to 15 minutes for the initial slave domain entry to enter the Linode nameservers, but after that notification based changes will be reflected in real time, or based on periodic queries the Linode nameservers will do to the master per the SOA record values. I'm not sure what the default polling interval is prior to the first successful retrieval.
Even if you've got the master messed up, as long as you have the master IP address in Linode's DNS manager as a slave zone, you should see periodic attempts from each Linode nameserver to retrieve the zone arriving at the master IP address.
-- David