OK,

1. The sceniario:

For the clients: 192.168.1/24:
        nfs.mydomain -> 192.168.127.1
        printer.mydomain -> 192.168.1.1
        ldap.mydomain -> 172.16.1.16
        ...

For the clients: 10/8:
        nfs.mydomain -> 10.10.10.10
        printer.mydomain -> 10.10.1.1
        ldap.mydomain -> 172.16.1.17
        ...

For client with public IPs all obowe addresses should not be resolved.


2. A single server setup (fragments of the /etc/named.conf):

view private1 {
        match clients { 192.168.1/24; };
        zone "mydomain" in {
                type master;
                file "mydomain-private1.zone";
        };
};

view private2 {
        match clients { 10/8; };
        zone "mydomain" in {
                type master;
                file "mydomain-private2.zone";
        };
};

view public {
        match clients { any; };
        zone "mydomain" in {
                type master;
                file "mydomain-public.zone";
        };
};


3. Now imagine that in addition to that Primary NS I have my own Secondary NS that uses the same configuration (three views) and two external Secondary NS, not managed by me that should use only mydomain-public.zone for all queries. The problem is how to define zone transfers (that my Secondary can distinguish there are three separate zone description files for mydomain). AFAIK that's the point the TSIG keys come into play..?

Best regards,
Marek

On 4/14/25 10:34 PM, Greg Choules wrote:
Hi.
That KB article shows you how to use TSIG keys as a view selector for zone transfer.

If you want a single DNS server to give different answers to the same question based on client IP then you *could* (though I'm NOT recommending this, especially since it will be deprecated at some point) use "sortlist".

Or you will have to have multiple versions of that name, each in a separate zone, each associated with a different view. Maintaining multiple versions will be a big overhead and, IMHO, this way madness lies. If it were my network I'd advise the team who designed this application to rethink their delivery mechanism. so that the requirement for one_name == multiple IPs goes away.
/soapbox

If you absolutely *must* do this, some actual examples would help please, rather than generalisations.

Cheers, Greg


On Mon, 14 Apr 2025 at 20:05, Marek Kozlowski <m.kozlow...@mini.pw.edu.pl <mailto:m.kozlow...@mini.pw.edu.pl>> wrote:

    :-)

    Till now I've been using sth. like this for a single private and a
    single public views:

    https://kb.isc.org/docs/aa-00851 <https://kb.isc.org/docs/aa-00851>

    For my clients I provided information on all my resources and recursive
    resolution, for external ones - about my public hosts and no recursive
    resolution. Trivial.

    But there is a new concept:

    For some reasons (its not my decision) workstations cloned from a
    single
    image (precisely: a few images of Windows, Linux and other systems)
    connected to different subnets should refer to different hosts for
    numerous services based on their CIDR prefixes. Don't ask me why not
    use
    /etc/hosts nor distribute parameters via DHCP - it's not my decision. I
    am responsible, as a DNS server administrator, for providing different
    answers to queries about A records based on client's IP (CIDR prefix).
    That is what views can do.

    Defining views for a single DNS server itself is trivial. The
    problem is
    setting up zone transfers of different zone description files (from
    different views) between many name servers. In my case:

    Zone description files from public view should be transferred from
    Primary to all three Secondary DNS servers (I'm supervising only two of
    them). All zone description files from all private views should be
    transferred from my Primary to my (internal) Secondary (into respective
    views) and NOT to external secondaries.

    AFAIK such a configuration of view transfers requires TSIGs for
    avoiding
    zone transfer overwriting.

    Best regards,
    Marek

    On 4/14/25 5:27 PM, Greg Choules wrote:
     > Hi Marek.
     > Please can you show the config that used to work?
     > Please can you also explain why it is desired to create more views?
     > Maybe give an example of what you're trying to achieve.
     >
     > In general, matching views is done top down - test clients
    against the
     > criteria in the first view. If they don't match, try the next
    view etc.
     >
     > "match-clients" is used to test whether the source address of the
    client
     > falls within the range allowed by the address match list specified.
     > "match-destinations" is used to test the destination address the
     > incoming query was sent to. It is not unusual to have a server
    listen-on
     > several addresses, each for a different set of clients.
     > Both of the above can be used together to make view selection even
     > tighter - clients must match against both their source address
    AND the
     > address they sent the query to.
     >
     > Keys - as criteria for matching views - are typically used between
     > servers for zone transfers. For example if your primary server has
     > multiple views and secondary servers must be directed to a
    specific view
     > for a given zone, keys can be set up at both ends so that the
    secondary
     > includes the key for a zone when making its transfer request and the
     > primary uses that to select the correct zone from the appropriate
    view.
     > End clients/stub resolvers don't typically use keys.
     >
     > I hope this helps.
     > Cheers, Greg
     >
     >
     > On Mon, 14 Apr 2025 at 14:12, Marek Kozlowski
     > <m.kozlow...@mini.pw.edu.pl <mailto:m.kozlow...@mini.pw.edu.pl>
    <mailto:m.kozlow...@mini.pw.edu.pl
    <mailto:m.kozlow...@mini.pw.edu.pl>>> wrote:
     >
     >     :-)
     >
     >     There are 4 name servers for my domain: two internal ones (my
    CIDR,
     >     managed by me) and two external ones (foreign IP, I have no
     >     administrative privileges).
     >
     >     I've been using two views: the private one (for my clients,
    served
     >     by my
     >     servers) and a public one (for remote clients, served by all
    four name
     >     servers). It used to work :-)
     >
     >     Now it's desired to create multiple different private views
    served
     >     by my
     >     name servers (one view for clients from each subnet of my
    network)
     >     and a
     >     single public view (the same as till now) and I'm getting a bit
     >     confused
     >     with keys and "match-clients" directives...
     >
     >     Any example, link, general formula or some smart how-to, or
    anything
     >     welcome...
     >
     >     Thanks a lot!
     >     Best regards,
     >     Marek
     >
     >     --
     >     Visit https://lists.isc.org/mailman/listinfo/bind-users
    <https://lists.isc.org/mailman/listinfo/bind-users> <https://
     > lists.isc.org/mailman/listinfo/bind-users <http://lists.isc.org/
    mailman/listinfo/bind-users>> to unsubscribe from this list
     >
     >     ISC funds the development of this software with paid support
     >     subscriptions. Contact us at https://www.isc.org/contact/
    <https://www.isc.org/contact/> <https://
     > www.isc.org/contact/ <http://www.isc.org/contact/>> for more
    information.
     >
     >
     >     bind-users mailing list
     > bind-users@lists.isc.org <mailto:bind-users@lists.isc.org>
    <mailto:bind-users@lists.isc.org <mailto:bind-users@lists.isc.org>>
     > https://lists.isc.org/mailman/listinfo/bind-users <https://
    lists.isc.org/mailman/listinfo/bind-users> <https://
     > lists.isc.org/mailman/listinfo/bind-users <http://lists.isc.org/
    mailman/listinfo/bind-users>>
     >




--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to