<div dir="ltr"><div><div><div>That is correct, as I have not setup the TSIG keys yet. <br><br></div>Also,
 I am still a bit confused on how this code should be implemented in my 
conf file. In the example you posted that refers back to the link, where
 would I place it in the context of my views on the master? Do I only 
need that one stanza on the master and why in the linked doc does it 
show it listed under the internal view? If that's the designated 
external key should that be placed in the external view and not the 
internal? And why does the internal view in the linked doc show both the
 external key and a "mykey" in the internal view while only showing one 
for the external view? Exactly how many keys do I need here? <br><br></div>Lets
 say my master server IP is 25.25.25.25 and my slave is 26.26.26.26. 
Using my config from my first email and your code from your reply (lets 
use only the part from the linked doc you wrote) can you provide a 
modified view for internal and external for both the master and slave 
server?<br><br></div>Sorry for all the questions, its just that I'm very new to this view thing, as you might have guessed:)</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 18, 2016 at 9:50 PM, Mathew Ian Eis <span dir="ltr"><<a href="mailto:Mathew.Eis@nau.edu" target="_blank">Mathew.Eis@nau.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">







<div bgcolor="white" link="blue" vlink="purple" lang="EN-US">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">I think you are pretty close. One detail that you appear to be missing are is in the linked document:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">server 10.0.1.1 {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">/* Deliver notify messages to external view. */<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">keys { external-key; };<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">};<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Your slaves should have a similar statement in each view with the IP of the master and the relevant key for that view.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Two other things we have learned in deploying this:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">* It is helpful to change your allow-transfer section to be key-based per-view instead of IP based to save you from accidental zone transfers when other configuration errors are made.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">* The match-clients rule can be prepended with a key/!key set to prevent accidental communication on that view when using keys; e.g.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">        match-clients {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                # key matching rules<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                key admin-internal;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                !key admin-external;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                key slave-internal;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                !key slave-external;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                # ip/acl matching rules<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">                internal-ips;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">        };<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:Calibri;color:black">Mathew Eis<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:Calibri;color:black">Northern Arizona University<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:Calibri;color:black">Information Technology Services</span><span style="font-size:11.0pt;font-family:Calibri"><u></u><u></u></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-family:Calibri;color:black">From: </span>
</b><span style="font-family:Calibri;color:black">bind-users <<a href="mailto:bind-users-bounces@lists.isc.org" target="_blank">bind-users-bounces@lists.isc.<wbr>org</a>> on behalf of Brian Pugh <<a href="mailto:project722@gmail.com" target="_blank">project722@gmail.com</a>><br>
<b>Date: </b>Thursday, August 18, 2016 at 7:15 PM<br>
<b>To: </b>"<a href="mailto:bind-users@lists.isc.org" target="_blank">bind-users@lists.isc.org</a>" <<a href="mailto:bind-users@lists.isc.org" target="_blank">bind-users@lists.isc.org</a>><br>
<b>Subject: </b>DNS views setup help<u></u><u></u></span></p>
</div><div><div class="h5">
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I am running bind 9.8.2 on a pair of RHEL 6 DNS servers.. One server is the master, one is the slave. My goal is to setup 2 views so that our internal folks can resolve hostnames to internal IP's while still
 allowing our external customers to resolve from the outside. Both of these servers are external facing and have only one public IP each. First of all I would like to know if what I am trying to achieve is even possible with my current setup. What we have are
 internal users that are trying to access internal resources via a domain name that only exist in our external DNS. We do not have an internal zone for this domain or a inside DNS server that we can point them to in order to get a result for the query. So that
 leaves us looking at views for the solution. <br>
<br>
To be more precise, this is what is happening now. <u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Internal client > looks up host that's actually on the internal network but resolves to an external IP. The problem with this is 2 fold.
<u></u><u></u></p>
</div>
<p class="MsoNormal">1) DNS returns an external IP<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">2) Since the resource is internal, the traffic flow to the outside and back in happens on the same outside interface, which results in a hairpin, which we do not allow.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Now, what I was told is that a DNS view type solution would not be applicable to the hairpin. My understanding is that internal clients query the server already to get results for external IP, so if we had a
 zone file in a view that had internal mappings, this would work and the internal user could access the resource since they are now being pointed to an internal IP.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">So what I want to do is setup an "internal" view for the zone in question that points to a db file with the internal IP of that host, and an external view for everyone else.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">My questions is:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">1) Would DNS views work for my use case now that my server layout has been described?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">If so I need help in setting up TSIG because in my test lab everything seems to work except that on my slave server my zone in "view A" is being updated with the data from the master server from "view B". And
 view B seems to be in sync on both servers, although it seems when I update zone files I have to restart instead of a reload to get the zones to update. Even then, that does not always work. There is a link I found online that says TSIG would be the solution
 for this but it gives very little details on what the config is doing, so I do not know how to make TSIG work in my environment. This is the link I found:<br>
<br>
<a href="https://kb.isc.org/article/AA-00295/0/How-do-I-share-a-dynamic-zone-between-multiple-views-.html" target="_blank">https://kb.isc.org/article/AA-<wbr>00295/0/How-do-I-share-a-<wbr>dynamic-zone-between-multiple-<wbr>views-.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Here are the relavent parts to my config as it stands now from the master.
<br>
<br>
acl internal {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">1.2.3.4; // public IP coming from the inside users<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">};<br>
<br>
acl external {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">5.6.7.8; // everyone else<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">9.10.11.12;; // everyone else<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">};<br>
<br>
view "insideview" {<br>
      match-clients { internal; };<br>
<br>
      zone"<a href="http://example.com" target="_blank">example.com</a>" IN {<br>
      type master;<br>
      file "/var/named/<a href="http://db.exampleinside.com" target="_blank">db.exampleinside.<wbr>com</a>"; // this db file will be shown to the clients in the internal ACL and map back to internal IP's<br>
};<br>
};<br>
          <br>
view "extview" {<br>
      match-clients { external; };<br>
<br>
zone"<a href="http://example.com" target="_blank">example.com</a>" IN {<br>
      type master;<br>
      file "/var/named/<a href="http://db.exampleoutside.com" target="_blank">db.exampleoutside.<wbr>com</a>";<br>
};<u></u><u></u></p>
</div>
<p class="MsoNormal">The conf from the slave is identical to the above. Can anyone help me by showing me what a TSIG config would look like for my environemnt?<u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</div></div></div>
</div>

</blockquote></div><br></div>