<div dir="ltr"><div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><br></div></div></div></div></div></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 6, 2020 at 3:28 PM Grant Taylor via bind-users <<a href="mailto:bind-users@lists.isc.org">bind-users@lists.isc.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 5/6/20 11:38 AM, Sten Carlsen wrote:<br>
> I have been doing that for quite some time without knowing it should be <br>
> difficult.<br>
<br>
I'm not saying that it should be difficult.  I'm asking what people <br>
think the proper method is.<br>
<br>
> I have a domain (in the mail address) which is properly delegated to <br>
> servers and signed. Internally in house I have a number of other <br>
> internal both hosts and one subdomain.<br>
<br>
It looks like your domain is delegated to Gratis DNS servers and that <br>
they resolve specific records to your external IP.<br>
<br>
I'm not seeing a delegation beyond that.  But that could simply be <br>
because I don't know what name to query.  (AXFRs are properly refused.)<br>
<br>
> The internal versions have RFC1812 IPs and the outside ones have public IPs.<br>
> <br>
> Both sides are signed by the same key.<br>
> <br>
> The way this is organised is that I use two views, one internal and one <br>
> external, I set both to be signed using:<br>
> <br>
> options {<br>
> directory "/var/named/data";<br>
> auth-nxdomain no;<br>
> dnssec-enable yes;<br>
> dnssec-validation auto;<br>
> allow-query { any; };<br>
> allow-transfer { any; };<br>
> listen-on-v6  { any; };<br>
> sig-validity-interval 30 20;<br>
> dnssec-loadkeys-interval 60;<br>
> };<br>
> <br>
> Never caused any problems. The downside is that I use views and have to <br>
> manage both sides.<br>
<br>
Your scenario, presuming I understand it correctly, does not match what <br>
I'm asking about.<br>
<br>
I'll try to restate.<br>
<br>
I want <a href="http://example.net" rel="noreferrer" target="_blank">example.net</a> to:<br>
  - Follow all standard DNS best practices.<br>
  - Delegate <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> to <something> using the same standard DNS <br>
best practices.<br>
  - <something>, which is publicly accessible, to host the public <br>
version of the <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> zone.<br>
  - <something(Else)>, which is not publicly accessible, to host the <br>
private version of the <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> zone.<br>
<br>
I want clients on the Internet, e.g. you, to be able to "dig +trace a <br>
<a href="http://host.lab1.example.net" rel="noreferrer" target="_blank">host.lab1.example.net</a>" and get a proper DNS delegation chain from root <br>
zone through net zone through example zone to lab1 zone on the external <br>
publicly accessible DNS servers.<br>
<br>
I want clients in the lab to be able to do the same "dig +trace a <br>
<a href="http://host.lab1.example.net" rel="noreferrer" target="_blank">host.lab1.example.net</a>" and get a proper DNS delegation chain from root <br>
zone through net zone through example zone to lab1 zone on the internal <br>
private accessible DNS servers.<br>
<br>
The difference is that the external publicly accessible lab1 DNS server <br>
is a separate server from the internal private accessible lab1 DNS <br>
server.  Separate in the sense that external can be a zone on a VPS <br>
server and the internal being an isolated VM in the lab.  More <br>
specifically, external public and internal private are NOT even remotely <br>
the same system thus can't use views or multiple instances of BIND.<br>
<br>
E:  "." ({a..m}.<a href="http://root-servers.net" rel="noreferrer" target="_blank">root-servers.net</a>) -> "net." ({a..m}.<a href="http://root-servers.net" rel="noreferrer" target="_blank">root-servers.net</a>) -> <br>
"<a href="http://example.net" rel="noreferrer" target="_blank">example.net</a>." (ns{1,2}.<a href="http://example.net" rel="noreferrer" target="_blank">example.net</a>) -> <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> <br>
(extns{1,2}.<a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a>)<br>
I:  "." ({a..m}.<a href="http://root-servers.net" rel="noreferrer" target="_blank">root-servers.net</a>) -> "net." ({a..m}.<a href="http://root-servers.net" rel="noreferrer" target="_blank">root-servers.net</a>) -> <br>
"<a href="http://example.net" rel="noreferrer" target="_blank">example.net</a>." (ns{1,2}.<a href="http://example.net" rel="noreferrer" target="_blank">example.net</a>) -> <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> <br>
(intns{a,b}.<a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a>)<br>
<br>
As I type the previous lines, I think that the delegation from <br>
<a href="http://example.net" rel="noreferrer" target="_blank">example.net</a> to <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> will need to be to the same named & <br>
addressed servers.  However, the external and internal servers for <br>
<a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> are completely different systems and could easily be in <br>
different parts of the Internet / country / world.<br>
<br>
The only way that I see how to make this work is to anycast the names <br>
and IPs of the name servers that <a href="http://lab1.example.net" rel="noreferrer" target="_blank">lab1.example.net</a> is delegated to.  One <br>
anycast instance being external publicly accessible and the other <br>
anycast instance being internal private accessible.<br>
<br>
I don't see another way to delegate the same zone to different (sets of) <br>
name servers without using anycast.  Hence my email to the list asking <br>
if anyone had any suggestions.<br>
<br>
<br>
<br>
-- <br>
Grant. . . .<br>
unix || die<br></blockquote><div><br></div><div>Good questions.  I think one possibility (to avoid anycast) is to have an internal and external view for the "<a href="http://example.net">example.net</a>" zone, so it can delegate the lab zones to different servers internally and externally.  But that can make the "<a href="http://example.net">example.net</a>" zone harder to manage.<br></div><div>It would be easier to have a split view for "<a href="http://split.example.net">split.example.net</a>" and lab zones "lab#.<a href="http://split.example.net">split.example.net</a>", if the extra level was acceptable.</div><div><br></div><div>-- </div><div>Bob Harold</div><div><br></div></div></div>